1

Тема: domatv.net

Сайт с телеканалами, для примера BBC - http://domatv.net/107-bbc-world-news.html
Там такой скрипт

<script>
    var firstIpProtect = 's2.ttranslit.com';
    var secondIpProtect = 's1.ttranslit.com';
    var portProtect = '8081';
    var player = new Playerjs({id:"player", file:"#2aHR0cDovL3t2MX//OTcwZTYzMmUtMmQ4MC00N2M5LTg1ZTMtMjkxMGM0MmNiOGRm06e3YzfS9zNGdfYmJjL2luZGV4//NDRkMWU0NjctZjI0Ni00NjY5LTkyZTEtOGVlNmI2YjNiMzE0Lm0zdTg//Y2UyMTczZjctZjAwNC00Njk5LWFmYmQtYzEwNzQ3MzYyZmQ0/d21zQXV0aFNpZ249MTU5MDg0NTEyNVNmOGY4NjcyOGQyZGRkMzE0MTliOW//MzNmM2I4N2EtMWM3Yy00MDc2LWE2ODktNTVjNTZhNmQwOWQ3I5ZmUzMWZkMzE//M2Q0Nzg4ZjUtZWY1MC00MzI5LWFmYjYtYzQwMGFlMDg5N2ZhyMlM5NGg5N2gyN2g2NA=="});</script>
</div> </div>

рабочая ссылка, которая здесь спрятана примерно такая

http://s2.ttranslit.com:8081/s4g_bbc/index.m3u8?wmsAuthSign=1590844988S66134af5207b729e97ddee5ba173bf5dS94h97h27h64

Что тут мусор?

#2
06e3Yz
//MzNmM2I4N2EtMWM3Yy00MDc

2 (2020.05.30 12:50:42 отредактировано WendyH)

Re: domatv.net

smsbox3 пишет:

Что тут мусор?

#2
06e3Yz
//MzNmM2I4N2EtMWM3Yy00MDc

В данном случае мусор:
//MzNmM2I4N2EtMWM3Yy00MDc2LWE2ODktNTVjNTZhNmQwOWQ3
//Y2UyMTczZjctZjAwNC00Njk5LWFmYmQtYzEwNzQ3MzYyZmQ0
//OTcwZTYzMmUtMmQ4MC00N2M5LTg1ZTMtMjkxMGM0MmNiOGRm
//NDRkMWU0NjctZjI0Ni00NjY5LTkyZTEtOGVlNmI2YjNiMzE0
//M2Q0Nzg4ZjUtZWY1MC00MzI5LWFmYjYtYzQwMGFlMDg5N2Zh

Как находить вручную:
Копируете зашифрованную ссылку с мусором в текстовый редактор без переноса строк.
Обновляете страницу (при каждой отдаче страницы мусор вставляется каждый раз в новые места) и копируете этот же блок строкой ниже.
Достаточно от четырёх и более зашифрованных строк.

Как пример:

2aHR0cDovL3t2MX06e3YzfS9zNGdfYmJjL2luZGV4Lm0zdTg/d21zQXV0aFNpZ249MTU5MDg0OTIyNVM5N2YxN2U1ZDQ4ZTYyZjgzNTg5Y2Y0MzVlN2Q3NGQ0NlMzOTFo//M2Q0N//NDRkMWU0NjctZjI0Ni00NjY5LTkyZTEtOGVlNmI2YjNiMzE0zg4ZjUtZWY1MC00MzI5LWFmYjYtY//OTcwZTYzMmUtMmQ4MC00N2M5LTg1ZTMtMjkxMGM0MmNiOGRmzQw//Y2UyMTczZjctZjAwNC00Njk5LWFmYmQtYzEwNzQ3MzYyZmQ0MGFlMDg5N2ZhMmg0MTJoNjcx
2aHR0cDovL3t2MX06e3YzfS9zNGdfYmJjL2luZGV4Lm0zdTg/d21zQXV0aFNpZ249MTU5MDg0OTIzN1MwNmNhZjBhY2YyZTY//M2Q0Nzg4Z//NDRkMWU0NjctZjI0Ni00NjY5LTkyZTEt//OTcwZTYzMmUtMmQ4MC00N2M5LTg1ZTMtMjkxMGM0MmNiOGRmOGVlNmI2YjNiMzE0jUtZWY1MC00MzI5LWFmYjYtYzQwMGFlMDg5N2ZhzMDhiOTgyMTY2MGViZTRkMjAyN1M//Y2UyMTczZjctZjAwNC00Njk5LWFmYmQtYzEwNzQ3MzYyZmQ0zOTFoMmg0MTJoNjcx
2aHR0cDovL3t2MX06e3YzfS9zNGdfYmJjL//Y2UyMTczZjctZjAwNC00Njk5LWFmYmQtYzEwNzQ3MzYyZmQ02luZGV4Lm//OTcwZTYzMmUtMmQ4MC00N2M5LTg1ZTMtMjkxMGM0MmNiOGRm0zdTg/d21zQX//M2Q0Nzg4ZjUtZWY1MC00MzI5LWFmYjYtYzQwMGFlMDg5N2ZhV0aFNpZ249MTU5MDg0OTI0//NDRkMWU0NjctZjI0Ni00NjY5LTkyZTEtOGVlNmI2YjNiMzE0OVNlYmJmMzE0Mzc0OGQwYmE0Njg5YTczMDhmYWIxNDdkNVMzOTFoMmg0MTJoNjcx
2aHR0cDovL3t2MX06e3//NDRkMWU0NjctZjI0Ni00NjY5LTkyZTEtOGVlNmI2YjNiMzE0YzfS9zNGdfYmJjL2luZGV4Lm0zdTg/d21zQXV0aFNpZ249MTU5MDg0OTI2NVMxYTExNDJkYjcxY//M2Q0Nzg4ZjUtZWY1MC00MzI5LWFmYjYtYzQwMGFlMDg5N2ZhWNjNmFmMjlhMTg0MjJjYTZkMTc5NVMzOTF//OTcwZTYzMmUtMmQ4MC00N2M5LTg//Y2UyMTczZjctZjAwNC00Njk5LWFmYmQtYzEwNzQ3MzYyZmQ01ZTMtMjkxMGM0MmNiOGRmoMmg0MTJoNjcx

и начинаете сравнивать и выравнивать повторяющиеся участки кода:

2aHR0cDovL3t2MX06e3YzfS9zNGdfYmJjL2luZGV4Lm0zdTg/d21zQXV0aFNpZ249MTU5MDg0OTIyNVM5N2YxN2U1ZDQ4ZTYyZjgzNTg5Y2Y0MzVlN2Q3NGQ0NlMzOTFo//M2Q0N//NDRkMWU0NjctZjI0Ni00NjY5LTkyZTEtOGVlNmI2YjNiMzE0zg4ZjUtZWY1MC00MzI5LWFmYjYtY//OTcwZTYzMmUtMmQ4MC00N2M5LTg1ZTMtMjkxMGM0MmNiOGRmzQw//Y2UyMTczZjctZjAwNC00Njk5LWFmYmQtYzEwNzQ3MzYyZmQ0MGFlMDg5N2ZhMmg0MTJoNjcx
2aHR0cDovL3t2MX06e3YzfS9zNGdfYmJjL2luZGV4Lm0zdTg/d21zQXV0aFNpZ249MTU5MDg0OTIzN1MwNmNhZjBhY2YyZTY//M2Q0Nzg4Z//NDRkMWU0NjctZjI0Ni00NjY5LTkyZTEt                                                                         //OTcwZTYzMmUtMmQ4MC00N2M5LTg1ZTMtMjkxMGM0MmNiOGRmOGVlNmI2YjNiMzE0jUtZWY1MC00MzI5LWFmYjYtYzQwMGFlMDg5N2ZhzMDhiOTgyMTY2MGViZTRkMjAyN1M//Y2UyMTczZjctZjAwNC00Njk5LWFmYmQtYzEwNzQ3MzYyZmQ0zOTFoMmg0MTJoNjcx
2aHR0cDovL3t2MX06e3YzfS9zNGdfYmJjL//Y2UyMTczZjctZjAwNC00Njk5LWFmYmQtYzEwNzQ3MzYyZmQ02luZGV4Lm//OTcwZTYzMmUtMmQ4MC00N2M5LTg1ZTMtMjkxMGM0MmNiOGRm0zdTg/d21zQX//M2Q0Nzg4ZjUtZWY1MC00MzI5LWFmYjYtYzQwMGFlMDg5N2ZhV0aFNpZ249MTU5MDg0OTI0//NDRkMWU0NjctZjI0Ni00NjY5LTkyZTEtOGVlNmI2YjNiMzE0OVNlYmJmMzE0Mzc0OGQwYmE0Njg5YTczMDhmYWIxNDdkNVMzOTFoMmg0MTJoNjcx
2aHR0cDovL3t2MX06e3//NDRkMWU0NjctZjI0Ni00NjY5LTkyZTEtOGVlNmI2YjNiMzE0YzfS9zNGdfYmJjL2luZGV4Lm0zdTg/d21zQXV0aFNpZ249MTU5MDg0OTI2NVMxYTExNDJkYjcxY           //M2Q0Nzg4ZjUtZWY1MC00MzI5LWFmYjYtYzQwMGFlMDg5N2ZhWNjNmFmMjlhMTg0MjJjYTZkMTc5NVMzOTF//OTcwZTYzMmUtMmQ4MC00N2M5LTg//Y2UyMTczZjctZjAwNC00Njk5LWFmYmQtYzEwNzQ3MzYyZmQ01ZTMtMjkxMGM0MmNiOGRmoMmg0MTJoNjcx

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

P.S.:А ссылка там декодируется как:

http://{v1}:{v3}/s4g_bbc/index.m3u8?wmsAuthSign=1590849249Sebbf3143748d0ba4689a7308fab147d5S391h2h412h671
Sony Bravia KDL-32CX523
Спасибо сказали: smsbox3, bond2

3

Re: domatv.net

Здесь не обязательно определять какой мусор.

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

В VLC с этим lua скриптом ссылка нормально определяется

Спасибо сказали: WendyH1

4

Re: domatv.net

aleks123 пишет:

Здесь не обязательно определять какой мусор.

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

В VLC с этим lua скриптом ссылка нормально определяется

Мне, к сожалению, не для vlc, поэтому надо все раскрыть и извлечь.

5

Re: domatv.net

aleks123 пишет:

Здесь не обязательно определять какой мусор.

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

url = string.reverse(url)
while url:match(temp) do
      url = url:gsub(temp, "",1)
end 
url = string.reverse(url)

Где temp объявлен ранее:

local temp = string.rep("S", 48):gsub("S","%%S").."//"

Вот так можно это реализовать, но менее извращённо.

Пример скрипта получения ссылки для HMS:

{
  string v1, v2, v3, url, html = HmsDownloadURL(mpFilePath);
  // Получаем значения из html-кода загруженной страницы
  HmsRegExMatch("var\\s*firstIpProtect\\s*=\\s*[\"'](.*?)[\"']" , html, v1 );
  HmsRegExMatch("var\\s*secondIpProtect\\s*=\\s*[\"'](.*?)[\"']", html, v2 );
  HmsRegExMatch("var\\s*portProtect\\s*=\\s*[\"'](.*?)[\"']"    , html, v3 );
  HmsRegExMatch("file:[\"']#2(.*?)[\"']"                        , html, url);
  // Убираем мусор
  TRegExpr RegEx = TRegExpr.Create("//[^/]{48}");
  while (RegEx.Search(url)) url = ReplaceStr(url, RegEx.Match(0), "");
  RegEx.Free;
  // Декодируем и формируем ссылку на m3u8 файл
  url = HmsBase64Decode(url);
  url = ReplaceStr(url, '{v1}', v1);
  url = ReplaceStr(url, '{v2}', v2);
  url = ReplaceStr(url, '{v3}', v3);
  // Указываем HTTP-заголовок Referer, без него 403 - Forbidden
  MediaResourceLink = '-headers "Referer: '+mpFilePath+'" -i "'+url+'"';
}

Пример на PHP:

<?php

$link = isset($_GET["url"]) ? $_GET["url"] : "http://domatv.net/100-dom-kino-premium.html"; if (!$link) die("No url!");
// Загружаем страницу
$html = file_get_contents($link);
// Получаем данные из HTML-кода загруженной страницы
$v1  = preg_match("@var\s*firstIpProtect\s*=\s*[\"'](.*?)[\"']@" , $html, $m) ? $m[1] : "";
$v2  = preg_match("@var\s*secondIpProtect\s*=\s*[\"'](.*?)[\"']@", $html, $m) ? $m[1] : "";
$v3  = preg_match("@var\s*portProtect\s*=\s*[\"'](.*?)[\"']@"    , $html, $m) ? $m[1] : "";
$url = preg_match("@file:[\"']#2(.*?)[\"']@"                     , $html, $m) ? $m[1] : "";
// Убираем мусор
while (preg_match("@//[^/]{48}@", $url, $m)) $url = str_replace($m[0], "", $url); 
// Декодируем, делаем подстановки значений
$url = base64_decode($url);
$url = str_replace("{v1}", $v1, $url);
$url = str_replace("{v2}", $v2, $url);
$url = str_replace("{v3}", $v3, $url);
// Для доступа к полученной ссылке всё ещё понадобиться указание Referer...
echo $url;

К сожалению, для доступа к полученной ссылке нужно указывать Referer.

Sony Bravia KDL-32CX523

6 (2020.05.31 22:03:04 отредактировано smsbox3)

Re: domatv.net

WendyH пишет:

К сожалению, для доступа к полученной ссылке нужно указывать Referer.

Спасибо большое! Что касается Referer то у меня вчера еще работала без него, сейчас попробовал -HTTP ERROR 403.

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

О, а оказалось можно и без, я запустил в плеере на ТВ ссылку, там стоит автоповтор запуска при ошибке, и ушел минут на 5, забыв отключить. Вернулся, а Sony Si-Fi показывает "Доктора кто", при этом ни какого Referer я не передавал! Выходит, если настойчиво стучаться - откроют :

)
Нет смотреть без Referer не вариант, оно запускается иногда и если запустится работает, пока не выключишь, но это очень редко происходит.

7 (2020.06.28 21:58:46 отредактировано Mr.Max)

Re: domatv.net

Кто то нашел вариант как запустить это ? Спасибо.

8

Re: domatv.net

Mr.Max пишет:

как запустить это ?

"К сожалению, для доступа к полученной ссылке нужно указывать Referer."
На этот Referer не только здесь налетаем. Вот, что в И-нете на эту тему пишут

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

Подменить — никак, в браузерах это не реализовано.
Но можно убрать. Любым из перечисленных способов:
В <head> добавить <meta name="referrer" content="no-referrer" />: тогда браузер не будет раскрывать, "откуда пришёл" по всем ссылкам и запросам из JS на странице.
Атрибут rel="noreferrer" у конкретной ссылки.
Страница по HTTPS, ссылка на HTTP: браузер не будет раскрывать по небезопасному соединению, где он был по безопасному.
(Высокоградусный костыль) Замаскировать в data-URL, содержащем HTML-страницу с <meta>-перенаправлением. Реферрером в этом случае будет этот самый data-URL и раскрытия не произойдёт.


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

можно сделать прокси на nginx, там подменять реферера и ифреймить этот прокси.
location /test/ {
    proxy_pass https://www.whatismyreferer.com/;
    proxy_set_header Referer "https://yandex.ru";
}

Я так думаю, что можно на своем ДНС сервере присвоить ip твоего сервера нужное  имя (которое referrer должен быть) , на твоем http сервере прописать ServerAlias и там домен. Тогда при подмене ДНС на своей машине, вместо этого сайта пойдет обращение к твоему, там php обработает ссылки и отдаст в браузере чистую ссылку, при этом referre будет тот, который требуется этой ссылке для работы, она как бы на привильном сайте получена, только вместо него твой сайт работает. На ТВ такие варианты часто используют, а компе -разве, что какие-то злоумышленники подменяют тебе ДНС. Реализовать можно если у тебя есть root права на твой сервер, тогда там bind с нужными настройками запустить и у Apache можно ServerAlias исправить.

9 (2020.06.29 15:16:06 отредактировано Mr.Max)

Re: domatv.net

smsbox3 пишет:

"К сожалению, для доступа к полученной ссылке нужно указывать Referer."
На этот Referer не только здесь налетаем. Вот, что в И-нете на эту тему пишут

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

Подменить — никак, в браузерах это не реализовано.
Но можно убрать. Любым из перечисленных способов:
В <head> добавить <meta name="referrer" content="no-referrer" />: тогда браузер не будет раскрывать, "откуда пришёл" по всем ссылкам и запросам из JS на странице.
Атрибут rel="noreferrer" у конкретной ссылки.
Страница по HTTPS, ссылка на HTTP: браузер не будет раскрывать по небезопасному соединению, где он был по безопасному.
(Высокоградусный костыль) Замаскировать в data-URL, содержащем HTML-страницу с <meta>-перенаправлением. Реферрером в этом случае будет этот самый data-URL и раскрытия не произойдёт.


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

можно сделать прокси на nginx, там подменять реферера и ифреймить этот прокси.
location /test/ {
    proxy_pass https://www.whatismyreferer.com/;
    proxy_set_header Referer "https://yandex.ru";
}

Я так думаю, что можно на своем ДНС сервере присвоить ip твоего сервера нужное  имя (которое referrer должен быть) , на твоем http сервере прописать ServerAlias и там домен. Тогда при подмене ДНС на своей машине, вместо этого сайта пойдет обращение к твоему, там php обработает ссылки и отдаст в браузере чистую ссылку, при этом referre будет тот, который требуется этой ссылке для работы, она как бы на привильном сайте получена, только вместо него твой сайт работает. На ТВ такие варианты часто используют, а компе -разве, что какие-то злоумышленники подменяют тебе ДНС. Реализовать можно если у тебя есть root права на твой сервер, тогда там bind с нужными настройками запустить и у Apache можно ServerAlias исправить.

Через htaccess можно  реферер подменить ещё. У меня несколько серверов в nl но проблема в том что этот источник помимо привязки ip, реферера ещё использует привязку по странам и для NL доступ запрещен . В РФ и ua работает.
Но если реферера нету это тоже не работает. Не понятно одно. Если зайти из ПК и достать ссылку на поток через исходный код то она работает и реферер ей не нужен. Как то не логично. Либо на старт потока стоит проверка либо вообще ее там нет.

10

Re: domatv.net

Mr.Max пишет:

Если зайти из ПК и достать ссылку на поток через исходный код то она работает и реферер ей не нужен. Как то не логично.

Возможно запоминает ip для данного потока на какое-то время, как прошедший проверку? У меня один день вообще все работало, хотя ссылки получены были на сервере, есть там какие-то потоки, которые работают всегда (МИР например), но все таки без реферера не работает.

11

Re: domatv.net

smsbox3 пишет:

Возможно запоминает ip для данного потока на какое-то время, как прошедший проверку? У меня один день вообще все работало, хотя ссылки получены были на сервере, есть там какие-то потоки, которые работают всегда (МИР например), но все таки без реферера не работает.

Tivix тоже перешёл на этот источник ...