61

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

Народ, может кто подскажет, как расшифровать эти временные ссылки, если это возможно:

+ открыть спойлер

5LnrmJwjxp7x8Z_W9ub_DA,1467182593/Grajdanka.3.HDRip.2016.flv
DpELwSm2u1oIZN8zWo1v9w,1467182593/Grajdanka.3.HDRip.2016.mp4
G0QInOhNM1OrYtYRbi-WaA,1467182950/Grajdanka.3.HDRip.2016.flv
X-jI5vZpmU2hkyeKsVg54w,1467182950/Grajdanka.3.HDRip.2016.mp4


Td_r_XkMT32V_O-aGmBugg,1467183464/Grajdanka.3.HDRip.2016.flv
8ScdGgCsRQ4Zo3hDSvsyTQ,1467183464/Grajdanka.3.HDRip.2016.mp4
YbTwt4fSphMv0H9gZKpu8Q,1467183465/Grajdanka.3.HDRip.2016.flv
bARsG7g2LY8sMRIQhDAX6Q,1467183465/Grajdanka.3.HDRip.2016.mp4

62

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

DreamerAG пишет:

Народ, может кто подскажет, как расшифровать эти временные ссылки, если это возможно:

А они зашифрованы?
Откуда ссылки?

Sony Bravia KDL-32CX523

63

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

Вторая часть кода очевидна:
http://savepic.ru/10281581.png

64

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

kinokrad.net
http://cdn.kinokrad.net/files/Td_r_XkMT … p.2016.flv
хочу понять, как могут они формироваться. я имею ввиду код "Td_r_XkMT32V_O-aGmBugg", какое его назначение, просто рандомная метка или осмысленная.

65

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

Ну это очевидно, как то, что и первая часть - хеш.
Хеш в ссылках формируется из названия, timestamp, каких-то ещё данных (например IP, если нужно привязать к нему) и соли (небольших данных, которые знает только серверная часть).
Именно по этому хешу на сервере проверяется доступность и правильность ссылки. Обеспечивается её "временность".
Зачем это "расшифровывать"? (это сильно вероятно невозможно и не нужно) Так работает сервер и только такие ссылки понимает.

Sony Bravia KDL-32CX523

66

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

привязка по IP точно есть

67

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

Хеш может формироваться как угодно. Как душа программиста пожелает. Берёт стандартную быструю  хеш функцию, а на вход посылается микс из данных (название, время, IP, соль...).

Sony Bravia KDL-32CX523

68

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

Я особо не надеялся, что удастся расшифровать и использовать.
Думал если узнаю как он формируется, смогу генерировать ссылки от другого IP.
Но даже если это просто метка ассоциированная с IP, то это уже не возможно.

69

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

Всё это (заморочка) изза ограничений XMLHttpRequest (allow-control-allow-origi), особенно для Android.
Придется, наверное, писать прогу, не знаю как правильно обозвать, прокси.

Вот коды какие я обычно использую. но для Android'а это не подходит.

+ открыть спойлер

prx.php

<?php
$url = $_GET['q'];
$cnt = file_get_contents($url);
header('Access-Control-Allow-Origin: *');
echo $cnt;
?>
+ открыть спойлер

prx.py

#!/bin/python
# coding: utf8
from fnty import *
import urllib

print "Content-type: text/html\r\n"

QRS = getQRS()

lnk = urllib.unquote(QRS['q'])

f = urllib.urlopen(lnk)
myfile = f.read()
print myfile
+ открыть спойлер

prxs.py

#!/bin/python
# coding: utf8
import socket
import urllib

print "runing"

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(("", 1236))
sock.listen(1)

hdrtpl = '\
HTTP/1.1 200 OK\r\n\
Server: OwnHands/0.1\r\n\
Content-Type: text/html\r\n\r\n'.encode()

while True:
    conn, addr = sock.accept()
    try:
        url = conn.recv(1024).decode().split("\r\n")[0].split(" ")[1]
    except:
        print("ErrorDataDecode")
        print(conn.recv(1024))
    
    d = url.find('http://')
    if d != -1:
        lnk = url[d:]
        print url
        print lnk
        f = urllib.urlopen(lnk)
        myfile = f.read()
        conn.send(hdrtpl+myfile)#"<center><H1>Hellow!</H1></center>".encode())
    
    conn.close()

Прошу прощения за возможный оффтоп

70

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

DreamerAG пишет:

Всё это (заморочка) изза ограничений XMLHttpRequest (allow-control-allow-origi), особенно для Android.

А что за заморочка, что именно вы делаете? На Андроиде не хочет воспроизводить ссылки на видео или получить их или что-то ещё?

Sony Bravia KDL-32CX523

71

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

В HTML/JS загружаю страницу где ссылка закодирована для Uppod. но так как моя страничка находится не на оригинальном сайте браузер не принимает страницу с ссылкой. на компе ещё можно как-то решить, через swf, или с помощью расширения браузера, или какой нибудь проксирующей проги/скрипта. А вот на андроиде встроенных возможностей я не вижу.

72

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

DreamerAG, тут скорее всего нужно разобраться с дополнительными HTTP заголовками и куками, которые нужны для отдачи таких ссылок.
А вообще, если работа идёт через браузер, то да, все проблемы с защитой от XSS у вас будут всегда. Даже swf не поможет, потому как Adobe Flash тоже поддерживает все веб стандарты защит как и браузеры. Т.е. если на стороне сервера запрещают получать контент с чужих доменов, то вы его оттуда можете и не получить.
В общем-то, такая защита как раз для этого и была придумана, чтобы можно было защитить свой контент от отображения в чужих страницах.

Sony Bravia KDL-32CX523

73 (2016.06.30 00:03:15 отредактировано DreamerAG)

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

У меня crossxhr.swf работает на Iron Chromium 37.0.2000.0 (0), а так же расширение Allow-Control-Allow-Origin
Но это не перспективно, т.к. Google "отошел" от Adobe Flash к HTML5.

74 (2016.07.13 20:38:33 отредактировано ruslachka)

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

ruslachka пишет:

Помогите плиз переделать вот этот код дешифровки с php на js.

    // Раскодируем данные зашифрованных json данных
    $a = str_split('i9DBzZT640N5JmMRuoLcn3Isk=');
    $b = str_split('lGbU8Y7xXtawWyvg2QHeVfpd1r');

    for ($i=0; $i<count($a); $i++) {
      $data = str_replace($b[$i], "__"  , $data);
      $data = str_replace($a[$i], $b[$i], $data);
      $data = str_replace("__"  , $a[$i], $data);
      }
     return base64_decode($data);

P.S Вот что получилось,но полностью дешифровка не получается. После base64_decode получаются наполовину каракули.

  var Client_codec_a = ["i", "9", "D", "B", "z", "Z", "T", "6", "4", "0", "N", "5", "J", "m", "M", "R", "u", "o", "L", "c", "n", "3", "I", "s", "k", "="];
  var Client_codec_b = ["l", "G", "b", "U", "8", "Y", "7", "x", "X", "t", "a", "w", "W", "y", "v", "g", "2", "Q", "H", "e", "V", "f", "p", "d", "1", "r"];

  sData = sData['replace']("\n", "");

  for (i=0; i<Client_codec_a['length']; i++) {
    char1 = Client_codec_b[i];
    char2 = Client_codec_a[i];
    sData = sData['replace'](char1, "___");
    sData = sData['replace'](char2, char1);
    sData = sData['replace']("___", char2);
  }
  //alert(sData);
  base64_decode(sData);
  //alert(sData);
  return sData;

Ура получилось. Может кому пригодится.Тут код без функции base64_decode.

  var Client_codec_a = ["i", "9", "D", "B", "z", "Z", "T", "6", "4", "0", "N", "5", "J", "m", "M", "R", "u", "o", "L", "c", "n", "3", "I", "s", "k", "="];
  var Client_codec_b = ["l", "G", "b", "U", "8", "Y", "7", "x", "X", "t", "a", "w", "W", "y", "v", "g", "2", "Q", "H", "e", "V", "f", "p", "d", "1", "r"];

  sData = sData['replace']("\n", "");

  for (i = 0; i < Client_codec_a['length']; i++) {
    char1 = Client_codec_b[i];
    char2 = Client_codec_a[i];
    sData = sData['replace'](new RegExp(char1, 'g'), '___');
    sData = sData['replace'](new RegExp(char2, 'g'), char1);
    sData = sData['replace'](new RegExp("___", 'g'), char2);
  }
  base64_decode(sData);

75

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

ruslachka пишет:

Ура получилось. Может кому пригодится.Тут код без функции base64_decode.

С какого ресурса эта дешифровка подходит?

Sony Bravia KDL-32CX523

76

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

WendyH пишет:

С какого ресурса эта дешифровка подходит?

С видеохостинга http://kodik.top.

77

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

WendyH пишет:

Сам алгоритм уже несколько лет там один и тот же. Нужно только значения переменных client.codec_a и client.codec_b выковыривать. И да, к сожалению именно из swf файла.

при всём уважении к эксперту, позволю себе не согласиться с ним... для таких извращенцев как я есть и другие, теоретические методы...

===============================================================
теорема первая: для расшифровка не обязательно иметь swf-файл...

доказательства: представим две произвольные строки, заведомо известным нам методом с codec_a и codec_b...

допустим такие строки: строка 1: 121331221, строка 2: 212442112

представим что codec_a и codec_b мы пока не знаем...

+ открыть спойлер

codec_a=[1, 3]; codec_b=[2 4];

проведём попарное сравнение элементов, в поиске последовательности (выкидывая повторы, дополняя двухсторонние связи):

+ открыть спойлер

===шаг 1
выборка: ()
пара: 1=2

[1]21331221
[2]12442112

===шаг 2
выборка: ((1=2),)
пара: 2=1

1[2]1331221
2[1]2442112

===шаг 3
выборка: ((1=2)(2=1),)
пара: 1=2

12[1]331221
21[2]442112

===шаг 4
выборка: ((1=2)(2=1),)
пара: 3=4

121[3]31221
212[4]42112

===шаг 5
выборка: ((1=2)(2=1),(3=4))
пара: 3=4

1213[3]1221
2124[4]2112

===шаг 6
выборка: ((1=2)(2=1),(3=4))
пара: 1=2

12133[1]221
21244[2]112

===шаг 7
выборка: ((1=2)(2=1),(3=4))
пара: 2=1

121331[2]21
212442[1]12

===шаг 8
выборка: ((1=2)(2=1),(3=4))
пара: 2=1

1213312[2]1
2124421[1]2

===шаг 9
выборка: ((1=2)(2=1),(3=4))
пара: 1=2

12133122[1]
21244211[2]

т.к. строки одной длинны, проход в обратную сторону не требуется... на выходе:
имеем выборку - ((1=2)(2=1),(3=4))... берем только первые пары....

т.е. (1=2)(3=4)... соответственно codec_a=[1, 3]; codec_b=[2 4]; что и требовалось доказать....

*OK*

===============================================================
теорема вторая: мусор в строке как правило не сильно влияет на получение codec_a и codec_b...
(при достаточной длине строки, и достаточном количестве сравниваемых данных, конечно могут быть исключения)

доказательства: представим две произвольные строки, заведомо известным нам методом с codec_a и codec_b...

допустим такие строки: строка 1: 121331221, строка 2: 212442112 ...
дополним строку 2 мусором - новая строка 2: 212477742112 ..

представим что codec_a и codec_b мы пока не знаем...

+ открыть спойлер

codec_a=[1, 3]; codec_b=[2 4];

сново проведём попарное сравнение элементов, в поиске последовательности (выкидывая повторы, дополняя двухсторонние связи):

+ открыть спойлер

строка 1: 121331221
строка 2: 212477742ххх (конец отбрасываем)


===шаг 1
выборка: ()
пара: 1=2

[1]21331221
[2]12477742

===шаг 2
выборка: ((1=2),)
пара: 2=1

1[2]1331221
2[1]2477742

===шаг 3
выборка: ((1=2)(2=1),)
пара: 1=2

12[1]331221
21[2]477742

===шаг 4
выборка: ((1=2)(2=1),)
пара: 3=4

121[3]31221
212[4]77742

===шаг 5
выборка: ((1=2)(2=1),(3=4))
пара: 3=7

1213[3]1221
2124[7]7742

===шаг 6
выборка: ((1=2)(2=1),(3=4))
пара: 1=7

12133[1]221
21247[7]742

===шаг 7
выборка: ((1=2)(2=1),(3=4))
пара: 2=7

121331[2]21
212477[7]42

===шаг 8
выборка: ((1=2)(2=1),(3=4))
пара: 2=4

1213312[2]1
2124777[4]2

===шаг 9
выборка: ((1=2)(2=1),(3=4))
пара: 1=2

12133122[1]
21247774[2]

т.к. строки разной длинны, проход в обратную сторону требуется...

+ открыть спойлер

строка 1:      121331221
строка 2: xxx477742112 начало отбрасываем...

===шаг 10
выборка: ((1=2)(2=1),(3=4))
пара: 1=2

12133122[1]
47774211[2]

===шаг 11
выборка: ((1=2)(2=1),(3=4))
пара: 2=1

1213312[2]1
4777421[1]2

===шаг 12

выборка: ((1=2)(2=1),(3=4))
пара: 2=1

121331[2]21
477742[1]12

===шаг 13
выборка: ((1=2)(2=1),(3=4))
пара: 1=2

12133[1]221
47774[2]112

===шаг 14
выборка: ((1=2)(2=1),(3=4))
пара: 3=4

1213[3]1221
4777[4]2112

===шаг 15
выборка: ((1=2)(2=1),(3=4))
пара: 3=7

121[3]31221
477[7]42112

===шаг 16
выборка: ((1=2)(2=1),(3=4))
пара: 1=7

12[1]331221
47[7]742112

===шаг 17
выборка: ((1=2)(2=1),(3=4))
пара: 2=7

1[2]1331221
4[7]7742112

===шаг 18
выборка: ((1=2)(2=1),(3=4))
пара: 1=4

[1]21331221
[4]77742112


на выходе:
имеем выборку - ((1=2)(2=1),(3=4))... берем только первые пары....

т.е. (1=2)(3=4)... соответственно ((1=2)(3=4))==((1=2)(3=4))

codec_b=[1, 3]; codec_b=[2 4]; что и требовалось доказать....

*OK*

п.с. это только теоретические изыскания, не пинайте больно ногами))))

78 (2016.09.25 00:59:10 отредактировано baat)

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

теперь применим теории дедушки баата на практике...

1.) откроем ссылку на kinogo.club... например

kinogo.club/6243-bratya-iz-grimsbie-2016.html...

2.) из браузера, руками, вытянем прямую ссылку...
3.) далее закодируем эту ссылку в base64...
4.) после чего посмотрим код страницы... и найдём кусок зашифрованного послания... вот же оно... =)
5.) прочитаем послание которое нам оставили и найдём там следующий квест... :D
6.) вернёмся к зашифрованной нами ранее ссылки (пункт 2)... скопируем её...

+ открыть спойлер

http://rgho.st/8nBtsVTrj/image.png

7.) скопируем и вторую ссылку, высчитываем выборку... побочные символы (tQ3N) пока не удаляли...
8.) повторим поиск без побочных символов (tQ3N)... результат получаем тот же (может чуть другая последовательность быть, конечно)...

+ открыть спойлер

http://rgho.st/6Bxl7yxzm/image.png

а значит я был прав (хотя бы частично) в своих рассуждениях выше...

но хотелось бы, чтобы WendyH, подробно рассказал, как всё же без таких извращений codec_a и codec_b выковыривать, именно из swf файла...

если можно на том же примере kinogo.club/6243-bratya-iz-grimsbie-2016.html... чтобы смогли сравнить результаты... :[

79 (2016.09.25 11:38:05 отредактировано baat)

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

===============================================================
теорема третья(только придумал утром): мусор в строке как правило можно вычислить с той или иной долей вероятностей...
(особенно если мусор одним куском, это очень упрощает задачу)

доказательства: представим две произвольные строки, заведомо известным нам методом с codec_a и codec_b...

допустим такие строки: строка 1: 121331221, строка 2: 212442112...
дополним строку 2 мусором - новая строка 2: 212477742112 ..

codec_a и codec_b мы вычислили в прошлой теореме и теперь их точно знаем...

+ открыть спойлер

codec_a=[1, 3]; codec_b=[2 4];

зашифруем первую строку - строка 1: 121331221 => строка 1_1: 212442112...
на этот раз будем выкидывать поочередно кусок из испорченной второй строки (212477742112 ) и будем получать строку 2_2:

будем сравнивать строку 1_1 и строку 2_2 и считать количество совпадений:

+ открыть спойлер

===шаг 1

212442112
[212]477742112

212442112
477742112
----+++++ = 5

===шаг 2

212442112
2[124]77742112

212442112
277742112
+---+++++ = 6

===шаг 3

212442112
21[247]7742112

212442112
217742112
++--+++++ = 7

===шаг 4

212442112
212[477]742112

212442112
212742112
+++-+++++ = 8

===шаг 5

212442112
2124[777]42112

212442112
212442112
+++++++++ = 9

===шаг 6

212442112
21247[774]2112

212442112
212472112
++++-++++ = 8

===шаг 7

212442112
212477[742]112

212442112
212477112
++++--+++ = 7

===шаг 8

212442112
2124777[421]12

212442112
212477712
++++---++ = 6

===шаг 9

212442112
21247774[211]2

212442112
212477742
++++----+ = 5

===шаг 10

212442112
212477742[112]

212442112
212477742
++++----+ = 5

как видно на шаге 5 (2124[777]42112) наибольшее число совпадений, соответственно, т.к. длинна строки равна количеству совпадений, то со 100% уверенности можно утверждать, что 777, это мусор...

что и требовалось доказать...  *OK*

скажите такого на практике не будет?.. ну почему же...  *STOP*

в одном случае с вероятностью почти 91%...

+ открыть спойлер

http://rgho.st/67M8pzDMt/image.png

в другом случае вообще 100% вероятности (сам не ожидал такой точности) того, что это мусор...

+ открыть спойлер

http://rgho.st/7F8Hx82Pn/image.png

угадано верно... а значит теория работает...  \m\/

80

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

я наверное уже всех задолбан, ну у меня родилась ещё одна безумная теория (самая безумная и глупая)...

===============================================================
теорема четвёртая: что при составлении codec_a и codec_b... используют одни и те же символы, только в разной последовательности... допустим те, которые наиболее часто встречаются...

пересмотрел разные комбинации, приведённые в данной теме (например такая):

+ открыть спойлер

$codec_a = Array("l", "u", "T", "D", "Q", "H", "0", "3", "G", "1", "f", "M", "p", "U", "a", "I", "6", "k", "d", "s", "b", "W", "5", "e", "y", "=");
$codec_b = Array("w", "g", "i", "Z", "c", "R", "z", "v", "x", "n", "N", "2", "8", "J", "X", "t", "9", "V", "7", "4", "B", "m", "Y", "o", "L", "h");

и сравним со своей

+ открыть спойлер

$codec_a = Array("0", "1", "5", "6", "9", "a", "c", "D", "H", "N", "R", "t", "v", "w", "W", "Y", "Z", "8", "G", "I", "l", "p", "r", "T", "u", "...");
$codec_b = Array("b", "z", "m", "e", "J", "2", "3", "g", "i", "y", "o", "M", "L", "V", "x", "U", "k", "s", "d", "n", "4", "7", "=", "Q", "B","...");

обратил внимание, что у меня не хватает одного значения в каждом codec_*... а так же некоторые символы отсутствуют(не использованы)...
а именно... "f" "X" "h"

кривизна декодирования это подтверждала...

+ открыть спойлер

http://rgho.st/8vBC6zkQd/image.png

попробовал наугад подставить... из трёх значений не так уж много комбинаций выходит... но подставил первые попавшиеся...

+ открыть спойлер

$codec_a = Array("0", "1", "5", "6", "9", "a", "c", "D", "H", "N", "R", "t", "v", "w", "W", "Y", "Z", "8", "G", "I", "l", "p", "r", "T", "u", "f");
$codec_b = Array("b", "z", "m", "e", "J", "2", "3", "g", "i", "y", "o", "M", "L", "V", "x", "U", "k", "s", "d", "n", "4", "7", "=", "Q", "B","X");

и о чудо...

+ открыть спойлер

http://rgho.st/7BKqNRWfl/image.png

оно заработало?!!

а вы говорите плеер обязательно ковырять))))))

81

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

Я тут занялся проверкой этих теорем на практике. Тоже. И работаю пока над алгоритмом восстановления таблиц замен символов.
С учётом, что есть левые символы (мусор).
Ибо в вашем случае, результат сильно зависит от того, как близко от старта может быть этот мусор. Если он будет в начале строки - то, боюсь, результаты могут быть неправильные. Ибо первые четыре цифры будут заноситься как рабочие пары замен, а после них сплошное враньё в силу сдвига после мусора на его длину пар относительно верхнего символа от нижнего (частота неправильных пар может превышать правильные). Если вы поняли от чём я.
Хотя, я не знаю какой именно алгоритм для этого вы используете. Поэтому я сам решил его сделать насколько можно оптимальным. Потому как от него зависит результативность нахождения реальных пар замен.

Ваша идея заслуживает всяческих похвал. Я загорелся и пока сам не попробую создать такой хороший алгоритм и не отпишусь о результатах, толком ничего пока не скажу. А ответ о том как доставать эти значения пар замен символов из файла .swf я расскажу отдельным постом. Обещаю.

А пока у меня мысли такие. Я превознёс в вашу теорию ещё знание о том, что таблица замен всегда равна 26 символам в ширину. Символы никогда не повторяются и всегда взаимозаменяемы местами (a -> b   =   b -> a).
Т.к. возможный мусор не подчиняется правилам замен и после него бесполезно сравнивать символы строк (из-за сдвига), а мы ещё не вычислили какие именно символы являются мусором, то первый цикл идёт до первой ошибки (значение пары есть, но не совпадает с уже запомненным). И сразу начинается второй цикл, где мусор будет уже настолько дальше от конца, насколько близко была ошибка в первом цикле. Это должно исключить возможные неправильные пары.
Подсчёт количества встречаимости каждой пары подсчитывается обоими циклами отдельно и потом две собранные таблицы объединяются в одну с учётом этой встречаимости.

Заодно, после этих прогонов можно даже определить, какой мусор вставлен.
У меня пока один нерешённый вопрос: борьба с ложными найденными парами (найдено ложно-положительное совпадение). И пока, как я думаю, никак, кроме как обрабатывать сразу по несколько вариантов ссылок, чтобы статистически вычислить правильную таблицу.
Кстати, реальная таблица, найденная из файла swf (для сравнения):

0123456789WGXMHRUZID=NQVBL
bzaclmepsJxdftioYkngryTwuv
+ открыть спойлер

https://hms.lostcut.net/misc.php?action=pun_attachment&amp;item=1294&amp;download=0

Прикреплённые файлы сообщения

uppod_experiment1.png 41.46 kb, скачивалось 253 раза, начиная с 2016.09.25

Sony Bravia KDL-32CX523

82

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

WendyH пишет:

Я тут занялся проверкой этих теорем на практике. Тоже.

а я ради развлечения ещё на пару сайтах попробовал таблицу угадать...

в среднем минут 15-20 уходит на прогонку программой и анализа руками (перепроверки)...
но получилось угадать на двух сайтах из двух, на которых сегодня попробовал... =)

вопрос немного не по теме, как получить ссылку на kodik.top в зашифрованном виде? я не вижу вообще, где ссылка формируется...

83 (2016.09.27 12:47:11 отредактировано baat)

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

WendyH пишет:

Короче, вот такой скрипт на PHP получился:

+ открыть спойлер
<?php

$videoID = $_GET["id"];

$P_KEY = "-----BEGIN RSA PRIVATE KEY-----\r\nMIICXAIBAAKBgQDEmOXz8AzUVbQXktx6f7zpmHtd1fS1KgC1H66z9kiNJa5w1+rI\r\njwejtQ/7xunCEpicX80BVUkIo9DJCkAb4rxJ4hG/32egfj2HiGFiPjeK9SsT+Uuq\r\nj88dwLWsgqVrZN0YFvoaUs5vvvHFYucAtsMJm+lavcFd6dZ/pNV+FImSQQIDAQAB\r\nAoGAENW2+0iXEKe2ID6nOqYtmyM/jS2BIvJR1TC9WRPB6rRLV8ZliH8W/GHI2JqT\r\n8dZ90wYxG+gdtOuyOUTzcG/eB580QN0ogyxTCWq+i1NDLpSKSiLDSWjMtARalaTd\r\nZvCz/LJ9GltJ6vCtj1+Zdbo2B1zyhGe2QD0YUs5b4KPywLECQQDg850rupUCF/pi\r\n+yqD12cogesqGEpCYr6rZ46wgmcGmMGCBWDa83vWFiNvRsoFCgphsfzUDNto7yyW\r\nYIHyjS+XAkEA37trE5ciQUqx7EoGA8uHQZT3UCOtHeLBM6iHT7eNq1EMBdIEcaOQ\r\nWN6Mu5IabU8YRaA5IrIj1VwbduM9dq2H5wJAUsGMur+jfeewV6WrGGGwM7jH+O6C\r\nszV8i7ZHSixPFqAv4FN2NFaK4lG2q4NRYtU0yIggSSqJtWr37kKGy+Kg9QJBAMjd\r\nxFGvU+LYxAsHnoTTuxiHPM8naKq3RYwyl2Fbw4Z22ltzZef82IDhNerFTpKq+3iv\r\nU/yxgPhynHnNpQYi4CsCQApOXt21398s8XSs0Hx7MFZm2vqXW4LLXjY6m8uvk8BM\r\njpWLo/GrWDeI3KH58VdwF4g7CqdF4OhlmHftiOD2flA=\r\n-----END RSA PRIVATE KEY-----";
$data  = "";
$signLenght = 128; // Длина ключа в зашифрованных данных

// Чтение зашифрованных данных
$options  = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n" .
              "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36\r\n"
  )
);
$context = stream_context_create($options);
$data    = file_get_contents("http://kset.kz/cinema/config?id=" . $videoID, false, $context);

$sign      = substr($data, 0, $signLenght); // Получаем из начала данных зашифрованный ключ
$conf_data = substr($data, $signLenght);    // Получаем из данных зашифрованный плейлист

// Расшифровка приватным ключом RSA зашифрованного ключа из данных
$res = openssl_get_privatekey($P_KEY);
openssl_private_decrypt($sign, $pwd, $res);

// Расшифровка плейлиста расшифрованным ключом 
$decrypted = decrypt_blowfish($conf_data, $pwd);

// Выводим расшифрованный плейлист
echo $decrypted;


// =================================================================
// Функция расшифровки алгоритмом Blowfish
function decrypt_blowfish($data, $key){
    $iv=pack("H*" , substr($data, 0, 16));
    $x =pack("H*" , substr($data, 16)); 
    $res = mcrypt_decrypt(MCRYPT_BLOWFISH, $key, $x , MCRYPT_MODE_CBC, $iv);
    return $res;
}

Проверить его работу можно открыв ссылку, где в параметре id передаётся идентификатор плейлиста из ссылки

http://kset.kz/cinema/config?id=53721_0

http://wonky.lostcut.net/kset.php?id=53721_0

что-то ни черта оно не работает... бред выводит а не ссылки...

WendyH пишет:

####Внимание! данные функции для расшифровки только если в плеере Uppod нет значений client.codec_a и client.codec_b

Заметьте, если client.codec_a и client.codec_b не используются, то как правило, зашифрованные ссылки выглядят немного по-другому и функция вызова будет не
`DecodeUppodText('XRHzQZe3yMD8Bxn8oCYgDac3Qxl3fmFTOZuL2ZAvDj5Y5jQn5WElfxJzDmts205z50wWDju37aA3SxFgBWwT5mlg7R=z')`,  а что-то типа
`DecodeUppodTextHash('22AchBGDaxacG1x5WiJw692MrWRFGJ6dwLFd4wbRCwbRCG6Li35XF3UnpdQVkQm5ntu0c9BMrN')`.

Эти функции расшифровки взяты прямиком из uppod плеера, которые были соответственно на ActiveScript. Просто были переписаны на другой скриптовый язык.

И напомню ещё раз. На некоторых сайтах зашифрованные ссылки, в добавок ко всему, ещё и дополнены левыми символами (порченные), которые даже использовав данные функции нормально расшифровать нельзя.

Например, на сайте videozal.net это символы `tj3l`

если client.codec_a и client.codec_b нет - то и не работает дешифоровка, ваша функция без client.codec_a и client.codec_b почему-то выдаёт крикозябы несвязные и не более (проверил на сайте videozal.net)...

84

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

baat пишет:

что-то ни черта оно не работает... бред выводит а не ссылки....

У вас ответ от http://wonky.lostcut.net/kset.php?id=53721_0 выводит бред или в самих ссылках на файлы кажущийся бред?

+ У меня вот так выводит

https://hms.lostcut.net/misc.php?action=pun_attachment&amp;item=1295

И это правильный плейлист. Или у вас это выглядит по-другому?

baat пишет:

если client.codec_a и client.codec_b нет - то и не работает дешифоровка, ваша функция без client.codec_a и client.codec_b почему-то выдаёт крикозябы несвязные и не более (проверил на сайте videozal.net)...

Нужны конкретные примеры. Какое именно зашифрованное значение не можете расшифровать?
(Что-то videozal.net сейчас не открывается, попробую потом ещё)

baat пишет:

вопрос немного не по теме, как получить ссылку на kodik.top в зашифрованном виде? я не вижу вообще, где ссылка формируется...

В данный момент там вообще не используется шифрация в uppod стиле. То было раньше. Сейчас нет.

По поводу вашей идеи про получение codec_a и codec_b без влезания в файл .swf - идея настолько крутая и мне понравилась, что я решил переписать потом это дело на PHP и сделать страничку для возможности получать таблицы замен для расшифровки и нахождения мусора в зашифрованных ссылках.
Я написал программку, пока тестирую и в некоторых случаях (если ссылки достаточной длинны), то получается вся таблица целиком и точное определение мусора (левых символов), если известна шифрованная строка и строка, которая должна получится при расшифровке.
Идея работает!

Прикреплённые файлы сообщения

kset_example1.png 48.28 kb, скачивалось 246 раз, начиная с 2016.09.27

Sony Bravia KDL-32CX523

85

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

А действительно, videozal.net не расшифровывают мои функции. Ну-ка, будем смотреть что да как там...

P.S: Посмотрел. Там нужно мусор "tj3l" убирать из зашифрованной ссылки и потом только расшифровывать.
Также смотрите, там функция у меня в примерах DecodeUppodTextHash использует немного другой алгоритм, чем просто замена по таблицам. Есть преобразование перед этим.

Sony Bravia KDL-32CX523

86

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

WendyH пишет:

У вас ответ от http://wonky.lostcut.net/kset.php?id=53721_0 выводит бред или в самих ссылках на файлы кажущийся бред?

по ходу то я ступил, не тот id брал, без "_0"... ночь была поздняя, прошу прощения, мой косяк... и не у "вас", а у "тебя", мы договаривались на ты....

WendyH пишет:

Также смотрите, там функция у меня в примерах DecodeUppodTextHash использует немного другой алгоритм, чем просто замена по таблицам. Есть преобразование перед этим.

то из-за split, видимо особенность версии phр на сервере, исправил все split на explode и стало показывать правильно... будем считать, что тут тоже не прав был, алгоритм верный, нюансы языка не в счёт...

WendyH пишет:

По поводу вашей идеи про получение codec_a и codec_b без влезания в файл .swf - идея настолько крутая и мне понравилась, что я решил переписать потом это дело на PHP и сделать страничку для возможности получать таблицы замен для расшифровки и нахождения мусора в зашифрованных ссылках.
Я написал программку, пока тестирую и в некоторых случаях (если ссылки достаточной длинны), то получается вся таблица целиком и точное определение мусора (левых символов), если известна шифрованная строка и строка, которая должна получится при расшифровке. Идея работает!

я рад, что моя идея пригодилась)))) можешь ник автора идеи указать в исходном коде)))

=== но вернёмся к нашим баранам... ===

всё же как выбрать прямую ссылку с kodik.top (kodik.сс или какие они там ещё есть), если я даже зашифрованную не могу найти?

допустим есть ссылка плана http://kodik.cc/video/10283/e40f746db17 … 79346/720p дальше что?...

+ открыть спойлер

<!doctype html>
<html>
<title></title>
<head>
  <script src="/player/flow/jquery.min.js?v=5"></script>
    <link rel="stylesheet" href="/player/flow/player.min.css?v=5">
  <script src="/player/flow/player.min.js?v=11"></script>  <script src="/player/js/ads.js"></script>
  <style>
    html {height: 100%; overflow: hidden;}
    body {height: 100%; margin: 0; padding: 0; overflow: hidden; background: #000 url(http://kodik.cc/player/images/kodik-bg.jpg) center center; background-size: cover;}
    .background {width: 100%; height: 100%;}
    #videoplayer {height: 100%;}
    .get_iframe {width: 380px; height: 180px; background: url(/player/images/get_code_bg.png); position: absolute; top: 100px; left: 200px; display: none;}
    .get_iframe textarea {margin: 2px; height: 110px; width: 347px; position: absolute; left: 10px; top: 50px; border: none; outline: none;}
    .close_code {position: absolute; width: 42px; height: 38px; top: 0px; right: 0px; cursor: pointer;}
    .player_box {height: 100%;}

    #get_code_window {display: none; z-index: 100000000;}
    .get_code_main {position: absolute; display: table; width: 100%; height: 100%; top: 0; left: 0; background: url(/player/images/black_bg.png); z-index: 100000000;}
    .get_code_paddings {padding:0 60px 0 60px; display: table-cell; vertical-align: middle;}
    .get_code_paddings table {width: 100%;}
    .get_code_paddings table, tr, td {border-spacing:0; margin: 0; padding: 0; z-index: 2;}
    .get_code_paddings td {position: relative;}
    .get_code_paddings tr, .get_code_paddings td {padding-bottom: 10px;}
    .get_code_copy {width: 113px; height: 33px; background: url(/player/images/copy_button_nude.png) 0 -33px; cursor: pointer; text-align: center; font: 16px Arial; color: white; text-shadow:0 1px 0 #236AC2; line-height: 32px;}
    .get_code_copy:hover {background: url(/player/images/copy_button_nude.png) 0 0;}
    .get_code_copy.hover {width: 113px; height: 33px; background: url(/player/images/copy_button_nude.png) 0 0; cursor: pointer;}
    .get_code_info {font: 14px Arial; color:white;}
    .get_code_info span {color: #CF4C4C;}
    .get_code_heading {font: 18px Arial; color: white;}
    .get_code_left_info {font: 16px Arial; color: white;}
    .get_code_copy_input {width: 100%; border: none; border-radius: 2px 0 0 2px; padding: 0 10px 0 10px; height: 33px; line-height: 33px; box-sizing: border-box;}
    .close_get_code_window {position: absolute; top: 15px; right: 15px; background: url(/player/images/close_button.png); width: 32px; height: 32px; z-index: 100000001; cursor: pointer;}
    .play_button {position: absolute; margin: auto; background: url(/player/images/kodik-play-button.png); width: 200px; height: 202px; cursor: pointer; top: 0; left: 0; bottom: 0; right: 0; display: block;}
    .play_button:hover {background-position: 0px -202px;}
    .play_button_loading {position: absolute; margin: auto; width: 200px; height: 202px; cursor: default; top: 0; left: 0; bottom: 0; right: 0; display: block; background: url(/player/images/kodik-play-button.png) 0 -404px;}
    .play_loading {position: absolute; margin: auto; width: 60px; height: 60px; cursor: default; top: 0; left: 0; bottom: 0; right: 0; display: block; background: url(/player/images/kodik-loading.gif);}
    .share_button {width: 106px; height: 70px; background: url(/player/images/player_share.png); cursor: pointer; position: absolute; top: 10px; left: 10px; z-index: 99999999;}
    .share_button:hover {background-position: -106px 0;}
  </style>
</head>
<body>
  <div class="share_button"></div>
  <div id="MT_overroll" style="width:100%;height:100%"><a class="play_button"></a></div>
  <div class="player_box">
        <div id='get_code_window'>
      <div class='close_get_code_window'></div>
      <div class='get_code_main'>
        <div class='get_code_paddings'>
          <table>
            <tr>
              <td style='width: 80px;'></td>
              <td class='get_code_heading'>Получить код</td>
              <td style='width: 113px;'></td>
            </tr>
            <tr>
              <td class='get_code_left_info'>Код</td>
              <td><input value='<iframe src="http://kodik.cc/video/10283/e40f746db1798e4bdc04ac8e97279346/720p" width="607" height="360" frameborder="0" AllowFullScreen></iframe>' readonly class='get_code_copy_input'/></td>
              <td><div class='get_code_copy' data-code='<iframe src="http://kodik.cc/video/10283/e40f746db1798e4bdc04ac8e97279346/720p" width="607" height="360" frameborder="0" AllowFullScreen></iframe>'>копировать</div></td>
            </tr>
            <tr>
              <td class='get_code_left_info'>Ссылка</td>
              <td><input value='http://kodik.cc/video/10283/e40f746db1798e4bdc04ac8e97279346/720p' readonly class='get_code_copy_input'/></td>
              <td><div class='get_code_copy' data-code='http://kodik.cc/video/10283/e40f746db1798e4bdc04ac8e97279346/720p'>копировать</div></td>
            </tr>
            <tr>
              <td></td>
              <td class='get_code_heading' colspan="2">Получить доступ к базе</td>
            </tr>
            <tr>
              <td></td>
              <td class='get_code_info' colspan="2">Если хотите получить доступ к нашей постоянно обновляющейся базе с множеством фильмов и сериалов, напишите письмо на <span>support@kodik.biz</span>, в котором укажите ваш сайт.</td>
            </tr>
          </table>
        </div>
      </div>
    </div>
  </div>
<script type="text/javascript" src="/player/js/jquery.zclip.min.js"></script>

<script>
  var links = {},
      advert_script = "",
      player_settings = "",
      player_script = "",
      player_banner = 0,
      player_domain = "",
      player_loaded = false,
      player_started = false;

  function startKodikPlayer() {
    if (!player_started) {
      if (links.is_mobile) {
        links.autostart = false;
      }

      $("#MT_overroll").remove();
      $(".player_box").append("<div style=\"width:100%; height: 100%; background-color: #000000;\" id=\"player\" class=\"is-splash loading\"></div>");

      $.getScript("/player/flow/startplayer.min.js");

      player_started = true;
    }
  }

  $("body").on("click", ".center_pass_button", function(){
    links.autostart = true;
    if(player_loaded){
      startKodikPlayer();
    }
    else{
      GetPlayer();
    }
  });

  function zclipRefresh(){
    $('.zclip').remove();
    $('.get_code_copy').each(function(index, element){
      $(element).zclip({
        path:'http://kodik.cc/player/js/ZeroClipboard.swf',
        copy:function(){
          return $(this).attr('data-code');
        },
        afterCopy: function(){
          $(this).html('скопировано');
          var this_elem = $(this);
          setTimeout(function () {this_elem.html('копировать');}, 2000);
        }
      });
    });
  }

  function GetCodeWindow(){
    $('#get_code_window').fadeIn();
    zclipRefresh();
  }

  $("<img>").attr("src", "/player/images/kodik-loading.gif");

  $('body').on('click', '.close_get_code_window', function(){
    $('#get_code_window').fadeOut();
  });

  $('body').on('click', '.share_button', function(){
    GetCodeWindow();
  });

  $("body").on("click", ".background, .play_button", function(){
    GetPlayer();
    $("#MT_overroll").remove();
  });

  function GetPlayer(silent){
    if (silent === undefined) {
      silent = false;
    }

    if (!player_loaded) {
      $.ajax({
        type: "POST",
        url: "/get-video",
        cache: false,
        dataType: 'json',
        data: {
          domain: "",
          url: "",
          type: "database",          hash: "e40f746db1798e4bdc04ac8e97279346",          id: "10283",          quality: "720p",                                                                              },
        beforeSend:function(data){
          if(!silent){
            $(".play_button").removeClass("play_button").addClass("play_button_loading");
            $(".play_button_loading").after("<div class='play_loading'></div>");
          }
          //$("#MT_overroll").remove();
        },
        success:function(data){
          if(!silent){
            $(".background, .play_button_loading, .share_button, .play_loading").remove();
          }

          $("body").append(data.advert_script);

          links.qualities = data.qualities;
          links.default = data.default;
          links.is_mobile = data.is_mobile;
          player_loaded = true;
          player_domain = data.domain;

          if(!silent){
            startKodikPlayer();
          }
        },
        error:function(data){
          $(".background, .play_button, .share_button").remove();
          $(".player_box").append('<div style="height: 100%;"><div style="color: white; font: bold 18px Arial; text-align: center; width: 415px; margin: auto; background: #A7495B; padding: 30px 20px 30px 20px; text-shadow: 0 1px 0 #662B2C; position: relative; top: 30%;">Извините, но эта видеозапись в данный момент недоступна</div></div>');
        }
      });
    }

    if(typeof IsAdBlock != "undefined" && IsAdBlock == false){
      ga('send', 'event', 'adblock', 'false');
    }
    else{
      ga('send', 'event', 'adblock', 'true');
    }
  }

  var adv_started = false;
  $("body").on("mousedown", "div[id^='_']:first", function(){
    GetPlayer(true);
    ga('send', 'event', 'flow_adv_started', '');
    $(".share_button").remove();
    console.log("MXstarted");
    adv_started = true;
  });

  var MXoverrollCallback = function(){
    if (1 == 1 || adv_started == true) {
      links.autostart = true;

      $("#MT_overroll").remove();
      $("#videoplayer").empty();

      if(player_loaded){
        startKodikPlayer();
      }
      else{
        GetPlayer();
      }
    }

    ga('send', 'event', 'flow_adv_callback', '');
  }

  var iframeSearch = setInterval(function(){
    if($("iframe")[0]){
      var MxIframe = $("iframe").contents().get(0);

      $(MxIframe).bind('mousedown', function(){
        $(".share_button").remove();
        GetPlayer(true);
        ga('send', 'event', 'flow_adv_started', '<?php echo ; ?>');
        console.log("iframe started");
        adv_started = true;
      });

      clearInterval(iframeSearch);
    }
  }, 1000);
  function listener(event) {
    // if (event.origin != 'http://kodik.biz') {
    //   return;
    // }

    if (event.data == "player_started") {
      $(".share_button").hide();
    }
  }

  if (window.addEventListener) {
    window.addEventListener("message", listener);
  } else {
    // IE8
    window.attachEvent("onmessage", listener);
  }
</script>
<script type='text/javascript' src='//mxtads.com/8940213088/b'></script><script>
  $(document).ready(function(){
    $('body').on('focus', '.get_code_copy_input', function(){
      $(this).select();
    });

    $('.close_get_code_window').on('click', function(){
      $('#get_code_window').fadeOut();
    });
  });

  zclipRefresh();

  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-50506388-2', 'auto');
  ga('send', 'pageview');
</script>
<p></p>
</body>
</html>

где тут зашифрованная ссылка?.. в упор не вижу... или дополнительный запрос какой надо отправлять? можно пример на php?

с этим кусочком связано? не?...

+ открыть спойлер

$.ajax({
        type: "POST",
        url: "/get-video",
        cache: false,
        dataType: 'json',
        data: {
          domain: "",
          url: "",
          type: "database",          hash: "e40f746db1798e4bdc04ac8e97279346",          id: "10283",          quality: "720p",

не подскажешь, как быть?...

87

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

baat пишет:

где тут зашифрованная ссылка?.. в упор не вижу... или дополнительный запрос какой надо отправлять? можно пример на php?

с этим кусочком связано? не?...

+ открыть спойлер

$.ajax({
        type: "POST",
        url: "/get-video",
        cache: false,
        dataType: 'json',
        data: {
          domain: "",
          url: "",
          type: "database",          hash: "e40f746db1798e4bdc04ac8e97279346",          id: "10283",          quality: "720p",

С этим именно. Нужно сделать POST запрос с этими данными и получим в отчет json и информацией о доступном качестве и ссылками на видео (и всякой другой инфой).
Если не получилось, то, скорее всего, из-за HTTP заголовков запроса. Там на сервере проверяются всякие "Origin", "Referer", "X-Requested-With".

+ открыть спойлер

https://hms.lostcut.net/misc.php?action=pun_attachment&amp;item=1296

На PHP запрос примерно такой:

+ открыть спойлер
<?php

$post = "domain=&url=&type=database&hash=941fdceee6625a064716ca2404bfcae6&id=10282&quality=720p";

$options  = array(
  'http'=>array(
    'method'=>"POST",
    'header'=>"Accept-language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n" .
              "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36\r\n" .
              "Origin: http://kodik.cc\r\n" .
              "Referer: http://kodik.cc/video/10282/941fdceee6625a064716ca2404bfcae6/720p\r\n" .
              "X-Requested-With: XMLHttpRequest\r\n",
    'content'=> $post
  )
);
$context = stream_context_create($options);
$data    = file_get_contents("http://kodik.cc/get-video", false, $context);

И никакой шифрации.

Прикреплённые файлы сообщения

kodik_getvideo2.png 103.99 kb, скачивалось 290 раз, начиная с 2016.09.28

Sony Bravia KDL-32CX523

88 (2016.09.28 21:52:43 отредактировано baat)

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

WendyH пишет:

P.S: Посмотрел. Там нужно мусор "tj3l" убирать из зашифрованной ссылки и потом только расшифровывать.
Также смотрите, там функция у меня в примерах DecodeUppodTextHash использует немного другой алгоритм, чем просто замена по таблицам. Есть преобразование перед этим.

не, по ходу не в этом дело... он просто то работает то нет, сам по себе... может работы какие проводят... просто когда проверял, совпало время с этим... плюс там новая какая-то защита... ссылки то отдаёт, только они не воспроизводятся ни на мобильном, ни на компе... видимо блочит как-то...

+ открыть спойлер

http://rgho.st/6fg7NrWby/image.png

WendyH пишет:

С этим именно. Нужно сделать POST запрос с этими данными и получим в отчет json и информацией о доступном качестве и ссылками на видео (и всякой другой инфой).

всё то ты знаешь.... можно немного понаглеть?...
хорошо... а у них поиск есть какой на kodik.cc?... что-то вроде http://kodik.cc/index.php?story={search … ion=search? чтоб json не перебирать весь?... а то долго...

и ещё коль ты прям всё всё всё знаешь... может подскажешь как на примере php убедить >>> fs.to <<< что у меня украинский ip? =)

подмена ip через curl_setopt($ch, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: " . $ipaddr, "HTTP_X_FORWARDED_FOR: " . $ipaddr, "X-Forwarded-For: " . $ipaddr)); не прокатывает, хотя на некоторых сайтах правильно подменяет...

мне просто пару сайтов не хватает для полного счастья... один из которых fs.to, а какие ещё - пока не придумал))))

89

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

Нет заблуждения более великого, как думать что WendyH всё знает.
И в доказательство этого я даже отвечу на оба твоих вопроса: не знаю.
Кто такие kodik.cc и как они располагают файлы, есть ли у них поиск и как он работает - они не говорят. По крайней мере мне.
Но есть поиск у kodik.top (это те, кто организовали агрегатор фильмов, расположенных на kodik.cc и, я подозреваю, что это не одни и те же люди).
http://kodik.top/films/updates?type=1&search=foo

И подмену IP вообще никак не сделать, если этот IP правильно проверяется на сервере, а не берётся из заголовков HTTP. Так что тоже не знаю как, не используя прокси, подменить свой IP.

Sony Bravia KDL-32CX523

90

Re: Если вы на сайте встретили флеш-плеер Uppod и зашифрованные ссылки

WendyH пишет:

Нет заблуждения более великого, как думать что WendyH всё знает.

всё он знает, у него просто времени не на всё хватает и сил)))

WendyH пишет:

Кто такие kodik.cc и как они распологают файлы, есть ли у них поиск и как он работает - они не говорят. По крайней мере мне.
Но есть поиск у kodik.top (это те, кто организовали агрегатор фильмов, насположенных на kodik.cc и, я подозреваю, что это не одни и теже люди).
http://kodik.top/films/updates?type=1&search=foo.

в принципе меня это устроит... правда картинку и описание с кинопоиска придется брать, ну да ладно...

WendyH пишет:

И подмену IP вообще никак не сделать, если этот IP правильно проверяется на сервере, а не берётся из заголовков HTTP. Так что тоже не знаю как, не используя прокси, подменить свой IP.

ну то и ежу понятно что через прокси можно... только где его взять то... думаешь я не пытался?... прокси бесплатные дохнут раньше, чем успеваешь ссылку второй раз открыть... может аномайзеры какие встречал украинские? или ретрансляторы? или прокси который более менее живой?..

п.с. как будет время подкину ещё сайтик... или даже дав)) интересно как там кодирует... в одном вся ссылка не понятна, на другом кусочек ссылки не понятно откуда берёт... ты же любишь головоломки?))))