1

Тема: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

Может кому пригодится.

UstoreDecode для зашифрованных ссылок с балансера ustore.

Пример дешифровки на PHP:

<?php

$link = isset($_GET["url"]) ? $_GET["url"] : ""; if (!$link) die("No url!");

// Для запросов на этот русурс нужны в заголовках Referer и Origin
$referer = isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : $link;
$origin  = preg_match('#^(http.*?//[^/]+)#', $link, $m) ? $m[1] : "";

// Притворяемся браузером, передаём куки, подменяем Referer'а
$opts = Array('http'=>Array(
    'method'=>"GET",
    'header'=>"Referer: $referer\r\n" .
              "Origin: $origin\r\n" .
              "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36\r\n"));
// Скачиваем html страницу
$html = file_get_contents($link, false, stream_context_create($opts));

// Получаем значения hash и id
$hash = preg_match('#"hash"\s*:\s*"(.*?)"#s', $html, $m) ? $m[1] : "";
$id   = preg_match(  '#"id"\s*:\s*"(.*?)"#s', $html, $m) ? $m[1] : "";

// Делаем запрос для получения JSON данных о ссылках или плейлисте
$data = file_get_contents("https://ustore.bz/getContentJson.php?hash=$hash&id=$id", false, stream_context_create($opts));
$json = json_decode($data, TRUE);

if (!isset($json["url"])) die($data);

// Теперь можем перебрать все полученные ссылки на файлы, декодируя их
$decodedArray = array();
foreach($json["url"] as $url) {
        $decodedArray[] = str_replace(":hls:manifest.m3u8", "", UstoreDecode($url)); 
}
// Вставляем массив декодированных ссылок на место
$json["url"] = $decodedArray;                                                                  

// Выводим JSON со ссылками
header('Content-Type: application/json');
echo json_encode($json, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);

exit();

///////////////////////////////////////////////////////////////////////////////
// Раскодирование ссылки с сайта ustore.bz
function UstoreDecode($data) {
  if (!$data) return "";
  if ($data[0]=="=") {
    $data = substr($data, 1, strlen($data)-1);
    $s1 = "qsefthzxQSEFTHZX01234";
    $s2 = "plijymknPLIJYMKN98765";
    for ($i=0; $i < strlen($s1); $i++) {
      $data = str_replace($s1[$i],    "__", $data);
      $data = str_replace($s2[$i], $s1[$i], $data);
      $data = str_replace(   "__", $s2[$i], $data);
    }
    $data = urldecode(base64_decode($data));
  }
  return $data;
}

Тест: http://wonky.lostcut.net/ustore.php?url … 5425e16ffb

Для HMS:

///////////////////////////////////////////////////////////////////////////////
// Получение ссылки с балансера ustore
void GetLink_Ustrore(string sLink) {
  string html, data, sVal, sServ, hash, id;
  HmsRegExMatch("^(http.*?//[^/]+)", sLink, sServ);
  html = HmsDownloadURL(sLink, 'Referer: '+mpFilePath+'\r\nOrigin: '+sServ);
  HmsRegExMatch('"hash"\\s*:\\s*"(.*?)"', html, hash);
  HmsRegExMatch(  '"id"\\s*:\\s*"(.*?)"', html, id  );
  data = HmsUtf8Decode(HmsDownloadURL("https://ustore.bz/getContentJson.php?hash="+hash+"&id="+id, 'Referer: '+mpFilePath+'\r\nOrigin: '+sServ));
  HmsRegExMatch('"url"\\s*:\\s*\\[[^\\]]*"(.*?)"', data, sVal, 1, PCRE_SINGLELINE);
  MediaResourceLink = UstoreDecode(sVal);
  HmsRegExMatch('^(.*?\\.mp4):hls:manifest.m3u8', MediaResourceLink, MediaResourceLink);
}

///////////////////////////////////////////////////////////////////////////////
// Декодирование ссылок с ресурса ustore.bz (u-cdn.top)
string UstoreDecode(string data) {
  if (data=="") return "";
  if (data[1]=="=") {
    data = Copy(data, 2, Length(data)-1);
    string s1 = "qsefthzxQSEFTHZX01234";
    string s2 = "plijymknPLIJYMKN98765";
    for (int i=1; i <= Length(s1); i++) {
      data = ReplaceStr(data, s1[i],  "__");
      data = ReplaceStr(data, s2[i], s1[i]);
      data = ReplaceStr(data,  "__", s2[i]);
    }
    data = HmsHttpDecode(HmsBase64Decode(data));
  }
  return data;
}
Sony Bravia KDL-32CX523
Спасибо сказали: foks5050, smsbox32

2

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

WendyH пишет:

Может кому пригодится.

Обязательно пригодится! Спасибище!

3 (2020.05.28 12:35:45 отредактировано WendyH)

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

WendyH пишет:

Может кому пригодится.

UstoreDecode для зашифрованных ссылок с балансера ustore.

Не подскажете может есть api у этого балансира или сайт из списком файлов ?

4

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

Mr.Max пишет:

Не подскажете может есть api у этого балансира или сайт из списком файлов ?

У всех этих видеобалансеров, как правило, есть свой API. Но подключают только сайты для показа рекламы или ещё какой фигни для монетизации. Вам на сеопират или зерокул какой-нибудь.

Sony Bravia KDL-32CX523

5

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

Не подскажете привязки к ip у них нету ? Что то не все ссылки полученные воспроизводит .

6

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

Ничего не изменилось на этом балансере? А то у меня что-то ссылки не выдает, да и пример, что здесь, тоже перестал работать.

7 (2020.06.12 15:11:19 отредактировано neon)

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

да, похоже старый метод дешифровки не работает

видимо что-то новое, явно не стандартные #2..., #3..., вот пример:

{"title":null,"url":["=wUD5cUMpM5SpMoGpMoQqNg06PANobj0vcmcpMoQ6c8DvcmVtG74hrYVhrCHgDiSqKFc6QmTiMRW0MYMgQmIoN7IoMYNmNRHaMiH6GqIuNAVuMiS7QASxNRToKC0fcRZpMoQlbmDpsC0fM8H9IFNYbAZ6IFNSZnToDqrCGoM6rS0GwVISNqDSsADirgHgNmV9cYpgQXMpM5ZxNFoxKFc8Nqy0","=wUD5cUMpM5SpMoGpMoQqNg06PANobj0vcmcpMoQ6c8DvcmVtG74hrYVhrCHgDiZ9MC5xMqo8NAQuGqWaKFBiMmQjQRrjQRBiQiZ6MRJ6NAMgGFVpGFJxNmVuMFZxQRyhbXW5IFIYwA0oQXyhbFN6KCHqDm6oNEHqDSIxQSc8ZmIRNXDKAYpEDRc5DUpoG8cpMiQpsUBlcmVqIFNSMFH0MFo8Nqc9KZ=","=wUD5cUMpM5SpMoGpMoQqNg06PANobj0vcmcpMoQ6c8DvcmVtG74hrYVhrCHgDicgMC5xMqo8NAQuGqWaKFBiMmQjQRrjQRBiQiZ6MRJ6NAMgGFVpGFJxNmVuMFZxQRyhbXW5IFIYwA0oQXyhbFN6KCHqDm6oNEHqDSIxQSc8ZmIRNXDKAYpEDRc5DUpoG8cpMiQpsUBlcmVqIFNSMFH0MFo8Nqc9KZ=","=wUD5cUMpM5SpMoGpMoQqNg06PANobj0vcmcpMoQ6c8DvcmVtG74hrYVhrCHgDiSaKRWfMFM0NqVmGAMaMRoaGqImGmZ8GmZaG7G5NFWgNFViMmS6QASgMFQpGFS5MAZ9Pm6aNCHgDmphQYV9Pm5qrFypM5QfQRHpM5DCcADUN5IjZqV5FpulHoZ8NSD0QYN8IFJ7QXuawXIpcgHqDRS6KFS0Nqc8KRo=","=wUD5cUMpM5SpMoGpMoQqNg06PANobj0vcmcpMoQ6c8DvcmVtG74hrYVhrCHgDiS5NRWfMFM0NqVmGAMaMRoaGqImGmZ8GmZaG7G5NFWgNFViMmS6QASgMFQpGFS5MAZ9Pm6aNCHgDmphQYV9Pm5qrFypM5QfQRHpM5DCcADUN5IjZqV5FpulHoZ8NSD0QYN8IFJ7QXuawXIpcgHqDRS6KFS0Nqc8KRo=","=wUD5cUMpM5SpMoGpMoQqNg06PANobj0vcmcpMoQ6c8DvcmVtG74hrYVhrCHgDiJxNiWfMFM0NqVmGAMaMRoaGqImGmZ8GmZaG7G5NFWgNFViMmS6QASgMFQpGFS5MAZ9Pm6aNCHgDmphQYV9Pm5qrFypM5QfQRHpM5DCcADUN5IjZqV5FpulHoZ8NSD0QYN8IFJ7QXuawXIpcgHqDRS6KFS0Nqc8KRo="]}

8

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

smsbox3 пишет:

Ничего не изменилось на этом балансере? А то у меня что-то ссылки не выдает, да и пример, что здесь, тоже перестал работать.

Да, изменилась таблица замен. И это будет периодически происходить.
Теперь в коде, в функции UstoreDecode вместо:

    $s1 = "qwertyuiopxcvQWERTYUIOPXCV123456789";
    $s2 = "ASDFGHJKLZBNMasdfghjklzbnm987654321";

Нужно:

    $s1 = "poiuytrewqPOIUYTREWQ09876";
    $s2 = "lkjhgfdsazLKJHGFDSAZ54321";

Где это искать и как находить.

Если посмотреть html код ссылки этого балансера, та там можно увидеть ссылку на uplayer.js. Он обфусцирован и труден для понимания. Но терпение исследователя сведёт на нет любой труд по запутыванию кода.

Есть несколько сайтов, которые помогают навести хоть немного порядка в javascript-коде.
Лично я постоянно пользуюсь https://beautifier.io , но также есть http://www.jsnice.org и https://lelinhtinh.github.io/de4js

В общем:
1) проходим через бьютефер/деобфускатор, но код понятным не стал. Но теперь будет немного легче в нём искать то, что нужно.
2) В данном плеере кодирование проходит через замену символов. Функция по замене выглядит примерно так:

    _0x3f37bc[_0x225d('0x454')] = function (a) {
        if (a && a[0x0] == '=') {
            for (var b = 0x0, _0x59d08b = _0x4e0e98['chars'][_0x225d('0x14')](':'), a = a[_0x225d('0x2b5')](0x1); b < _0x59d08b[0x0]['length']; b++) {
                a = a[_0x225d('0x9e')](new RegExp(_0x59d08b[0x0][b], 'g'), '__')[_0x225d('0x9e')](new RegExp(_0x59d08b[0x1][b], 'g'), _0x59d08b[0x0][b])['replace'](/__/g, _0x59d08b[0x1][b])
            }
            return decodeURIComponent(t[_0x225d('0x3d4')](a['replace']('=', '')))
        }
        return a
    };

После деобфускатора можно найти по такой строке: "__" или '__'
В данном скрипте таблица замен всегда лежит в свойстве chars объекта, который инициализируется в начале скрипта. Выглядит примерно так:

    var y = t[_0x225d('0x29')],
        _0x41345f = t[_0x225d('0x209')],
        _0x48e88d = t[_0x225d('0x450')],
        _0x138bc0 = _0x48e88d[_0x225d('0x1d')],
        _0x4e0e98 = {
            'embed': '<iframe src=\"' + _0x41345f['href'] + _0x225d('0xb0') + t[_0x225d('0x1ad')] + _0x225d('0x279') + t['innerHeight'] + _0x225d('0x2f'),
            'contentURL': _0x225d('0x258'),
            'statURL': _0x225d('0x479'),
            'helpURL': _0x225d('0x1dc'),
            'link': _0x41345f[_0x225d('0x76')],
            'title': '',
            'hash': null,
            'url': '/usplayer/',
            'ver': _0x225d('0x1a6'),
  ...
            'vtype': [_0x225d('0x2ff'), _0x225d('0xb1')],
            'chars': _0x225d('0x208'),
 

Короче, в следующий раз функцию можно не искать и искать значение, присваиваемое свойству 'chars'.
Ага, видим там _0x225d('0x208')
Ищем функцию _0x225d и видим в ней тупое:

var _0x225d = function (a, b) {
    a = a - 0x0;
    var c = _0xb6f8[a];
    return c
};

Это значит, что значение берётся тупо из массива по индексу, указанному в параметре. В нашем случае это индекс 0x208.
Массив зовут _0xb6f8. Вот тут подстава деобфускатора, он решил что все значения из массива уже подставил, поэтому убрал его из кода. Поэтому этот массив смотреть в изначальном коде js-скрипта. Это тупо массив со строковыми данными.

3) Берём (копируем в буфер обмена) в начале скрипта первую длинную команду присваивания значения массива:

var _0xb6f8=['\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64','\x73\x65\x74\x49\x74\x65\x6d','\x66\x6f\x63\x75\x73','\x75\x6c\x20\x6c\x69\x20\x75\x6c','\x70\x75\x73\x68','\x6e\x75\x6d\x62\x65\x72',...,'\x64\x6f\x6d\x61\x69\x6e\x73'];

Вставляем в консоль браузера. И теперь у нас есть изначальный массив.
4) Но это ещё не всё. Этот массив нужно прокрутить. Ибо код после деобфускации начинается так:

(function (n, o) {
    var p = function (a) {
        while (--a) {
            n['push'](n['shift']())
        }
    };

а дальше идёт вызов

}(_0xb6f8, 0x130));

Это значит, что массив с и именем _0xb6f8 нужно прокрутить 0x130 раз.
Т.е. в той же консоли браузера вставляем такой код:

var a=0x130; while (--a) _0xb6f8['push'](_0xb6f8['shift']());

5) После этого смотрим значения массива _0xb6f8
Как мы помним, значения таблиц замен находится в chars:

 'chars': _0x225d('0x208')

Т.е. по смещению 0x208. Это 520 в десятеричном.
Поэтому смотрим значения массива _0xb6f8 в консоли браузера по индексу 520 или с 500 по 599, если точно там не нашли то, что нужно. Например просто вбив имя массива в консоли. В моём случае это значение было по индексу 521.
Смотреть нужно строку, разделённую двоеточием. До двоеточия первый набор символов, после - второй для замен.

Sony Bravia KDL-32CX523
Спасибо сказали: smsbox3, Spell2

9

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

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

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

10

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

изменилась таблица замен на

$s1 = "zcbmxvnZCBMXVN01234";
$s2 = "qawsedrQAWSEDR98765";
Отладка кода — это как охота. Только охота, на баги.
Спасибо сказали: aybek_kz, smsbox3, WendyH3

11

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

Spell пишет:

изменилась таблица замен на

$s1 = "zcbmxvnZCBMXVN01234";
$s2 = "qawsedrQAWSEDR98765";

опять поменяли, метод просмотра этих данных, описанный выше не работает:(

12 (2020.06.16 13:42:24 отредактировано smsbox3)

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

neon пишет:

опять поменяли, метод просмотра этих данных, описанный выше не работает:(

С ключами Spell у меня работает, долго запускаются полученные ссылки, но это проблема самого балансера, но в течении минуты стартует и без проблем работает, сами прямые ссылки получаются моментально и к ним претензий нет. Тест WendyH выдает сейчас мусор

13

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

neon пишет:

опять поменяли, метод просмотра этих данных, описанный выше не работает:(

Но сама таблица замен работает,внимательно смотрите и исследуйте сам массив данных,если у вас не работает метод получения значений WendyH

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

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

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

Screen Shot 06-16-20 at 05.17 PM.PNG 33.94 kb, скачивалось 147 раз, начиная с 2020.06.16

Отладка кода — это как охота. Только охота, на баги.

14

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

Огромное спасибо за вашу работу. Не подскажете как можно на php проксировать m3u8? Отдать файл через свой сервер. Спасибо за помощь.

15

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

Mr.Max пишет:

Отдать файл через свой сервер.

Пример можно откуда вы получаете файл m3u8?

Отладка кода — это как охота. Только охота, на баги.

16

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

Spell пишет:

Пример можно откуда вы получаете файл m3u8?

Получаю из https://kinokong.org/35478-padenie-angela-2019.html
. Там защищённый балансир его нужно проксировать. Можно примерчик любого файла m3u8 который проксируеться через php? Спасибо.

17

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

Mr.Max пишет:

Получаю из https://kinokong.org/35478-padenie-angela-2019.html
. Там защищённый балансир его нужно проксировать. Можно примерчик любого файла m3u8 который проксируеться через php? Спасибо.

Вы напишите конкретную ссылку на m3u8 файл, и как вы хотите проксировать?
Чтобы другие пользователи могли бы брать эту ссылку с вашего сервера и уже смотреть у себя?

Отладка кода — это как охота. Только охота, на баги.
Спасибо сказали: Oompaloomp1

18 (2020.06.20 19:06:34 отредактировано smsbox3)

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

Mr.Max пишет:

Там защищённый балансир его нужно проксировать.

Там вот такой плеер

https://vid1590317144.vb17110frankfoley.pw/movie/a711457fbf31a4cf05ce2f08e4c7e169/iframe

Вроде как привязка к IP, но есть какой-то способ вычислить привязку и подменить, правда у меня пока это не получилось.Есть виджеты для ТВ, который это делает и поток прекрасно проигрывает, хотя ссылка получена на сервере с другим ip, но ключи при передачи клиенту меняются, проксирования точно нет, играет с самого балансера, только ключи привязки подменены.
ip адрес в ссылке кодируется вот таким числом например

ab22495da686904a9c5e41eea6259361

или для другого ip

66534718a5c20021389eef57a1df7ef5

Этот код только ip, если тот, что на сервере подменить своим (его можно найти в ссылке, что в браузере играет), то будут играть любые полученные ссылки.

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

19

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

Как некоторые заметили, кодирование на Ustore поменялось. Теперь там не тупо таблицы замен, чуть-чуть посложнее. В данный момент скрипт расшифровки для HMS выглядит так:

///////////////////////////////////////////////////////////////////////////////
// Декодирование ссылок с ресурса ustore.bz (u-cdn.top)
string UstoreDecode(string data) {
  if (data=="") return "";
  if (data[1]=="=") {
    data = Copy(data, 2, Length(data)-1);
    string s1 = "qsefthzxQSEFTHZX01234";
    string s2 = "plijymknPLIJYMKN98765";
    for (int i=1; i <= Length(s1); i++) {
      data = ReplaceStr(data, s1[i],  "__");
      data = ReplaceStr(data, s2[i], s1[i]);
      data = ReplaceStr(data,  "__", s2[i]);
    }
    data = HmsHttpDecode(HmsBase64Decode(data));
    s1 = "WO87FXYEZP4abQ2cdR0efS9ghTHijUK";
    s2 = "k6lBmCnJoMpGq3rAsLt1uNv5wDxIyVz";
    for (i=1; i <= Length(s1); i++) {
      data = ReplaceStr(data, s1[i],  "__");
      data = ReplaceStr(data, s2[i], s1[i]);
      data = ReplaceStr(data,  "__", s2[i]);
    }
    data = HmsBase64Decode(data);
    HmsRegExMatch('^(.*%....)', data, data);
    data = HmsPercentDecode(data);
    string decoded="", digits="0123456789abcdefghijklmnopqrstuvwxyz"; // base36 decode
    for (i=1; i < Length(data); i+=2) {
      if (data[i]!="!") break; i++;
      decoded += chr((pos(data[i], digits)-1)*36 + pos(data[i+1], digits)-1);
    }
    data = decoded;
  }
  return data;
}

На PHP скрипт будет выглядеть так:

<?php

$link = isset($_GET["url"]) ? $_GET["url"] : ""; if (!$link) die("No url!");

// Для запросов на этот русурс нужны в заголовках Referer и Origin
$referer = isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : $link;
$origin  = preg_match('#^(http.*?//[^/]+)#', $link, $m) ? $m[1] : "";

// Притворяемся браузером, передаём куки, подменяем Referer'а
$opts = Array('http'=>Array(
    'method'=>"GET",
    'header'=>"Referer: $referer\r\n" .
              "Origin: $origin\r\n" .
              "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36\r\n"));
// Скачиваем html страницу
$html = file_get_contents($link, false, stream_context_create($opts));

// Получаем значения hash и id
$hash = preg_match('#"hash"\s*:\s*"(.*?)"#s', $html, $m) ? $m[1] : "";
$id   = preg_match(  '#"id"\s*:\s*"(.*?)"#s', $html, $m) ? $m[1] : "";

// Делаем запрос для получения JSON данных о ссылках или плейлисте
$data = file_get_contents("https://ustore.bz/getContentJson.php?hash=$hash&id=$id", false, stream_context_create($opts));
$json = json_decode($data, TRUE);

if (!isset($json["url"])) die($data);

// Теперь можем перебрать все полученные ссылки на файлы, декодируя их
$decodedArray = array();
foreach($json["url"] as $url) {
        $decodedArray[] = str_replace(":hls:manifest.m3u8", "", UstoreDecode($url)); 
}
// Вставляем массив декодированных ссылок на место
$json["url"] = $decodedArray;                                                                  

// Выводим JSON со ссылками
header('Content-Type: application/json');
echo json_encode($json, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);

exit();

///////////////////////////////////////////////////////////////////////////////
// Раскодирование ссылки с сайта ustore.bz
function UstoreDecode($data) {
  if (!$data) return "";
  if ($data[0]=="=") {
    $data = substr($data, 1, strlen($data)-1);
    $s1 = "qsefthzxQSEFTHZX01234";
    $s2 = "plijymknPLIJYMKN98765";
    for ($i=0; $i < strlen($s1); $i++) {
      $data = str_replace($s1[$i],    "__", $data);
      $data = str_replace($s2[$i], $s1[$i], $data);
      $data = str_replace(   "__", $s2[$i], $data);
    }
    $data = urldecode(base64_decode($data));
    $s1 = "WO87FXYEZP4abQ2cdR0efS9ghTHijUK";
    $s2 = "k6lBmCnJoMpGq3rAsLt1uNv5wDxIyVz";
    for ($i=0; $i < strlen($s1); $i++) {
      $data = str_replace($s1[$i],    "__", $data);
      $data = str_replace($s2[$i], $s1[$i], $data);
      $data = str_replace(   "__", $s2[$i], $data);
    }
    $data = urldecode(base64_decode($data));
    $decoded = ""; $arr = explode("!", $data);
    foreach($arr as $i) {
      $code = intval($i, 36);
      if ($code) $decoded .= chr($code);
    }
    $data = $decoded;
  }
  return $data;
}

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

Итак. Теперь там скрипт заобфуцирован по самое нехочу. Плюс перехватчики в коде, которые вызывают останов в отладчике. Поэтому можно зайти немного с другой стороны.
Находим страницу с данным плеером.
https://start.u-cdn.top/start/4c384192c … 5425e16ffb
Не заходя в отладчик (не открывая инструментов разработчика) дожидаемся пока прогрузятся и инициализируются все скрипты и код плеера.
Теперь открываем инструменты разработчика и в консоли можем поизучать уже созданный объект плеера.
По коду в html страницы видно, что имя объекта плеера там "qp".
Набираем в консоли qp и точку, видим какие свойства и методы доступны у этого плеера.
Оказывается там есть такие интересные функции как DecodeC, DecodeUrl и DecodeUrl32.
Последняя функция, как оказалось, прекрасно расшифровывает переданные данные, которые отдаёт getContentJson.php.
Ну и всё. Теперь нам ничего не мешает набрать в консоли qp.DecodeUrl32 и энтер. вернётся тело этой функции, на которую можно нажать и во вкладке Source можно увидеть код, нажав на {} внизу справа для пущего удобства.
Теперь там можно поставить брекпоинт и, попивая чай, по-шагам выполнять всё что там делается, смотреть на состояние обфусцированных переменных и вникать.
Там же видны будут таблицы замен.
Довникался я сегодня до того, что понял, что функция DecodeUrl32 сначала вызывает DecodeUrl, потом второй раз по таблице замен меняет символы, а в конце вызывает DecodeC.
Все эти функции можно посмотреть в отладчике и поставить там точки останова и также проанализировать.

Sony Bravia KDL-32CX523
Спасибо сказали: smsbox3, Spell, Dimon1978pl, foks5050, Mr.Max, Joker6

20

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

Спасибо.
Не подскажете в чем может быть проблема вот такая ссылка
http://wonky.lostcut.net/ustore.php?url … 5425e16ffb
воспроизводит файлы,
а вот такая нет
http://wonky.lostcut.net/ustore.php?url … 502d755496

21

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

Mr.Max
Да, действительно.
Но если просто зайти на страницу с плеером по этой ссылке
https://start.u-cdn.top/start/5458e6101 … 502d755496
То там тоже даже в их плеере не играет.

А есть сайт, где именно по этой ссылке воспоризводится видео?

P.S. Кстати, заметили, что по подобным ссылкам можно переходить, например, из форума. А если вставить эту ссылку непосредственно в браузер, то она не открывается. Это значит, на стороне сервера проверяют наличие Referer. Это так, нюанс.

Sony Bravia KDL-32CX523

22 (2020.07.13 00:08:34 отредактировано hokkonorti)

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

по ссылке
http://wonky.lostcut.net/ustore.php?url … d497f2f9ce

получаю
{"error":"undefined_id"}
хотя в если вставить ссылку на фильм, а не сериал - то вроде работает

23

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

hokkonorti пишет:

по ссылке
http://wonky.lostcut.net/ustore.php?url … d497f2f9ce

получаю
{"error":"undefined_id"}
хотя в если вставить ссылку на фильм, а не сериал - то вроде работает

Да, на сериалах не работает, можете декодировать ссылку только на серию или на фильм.

Отладка кода — это как охота. Только охота, на баги.

24

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

Кто нибудь встречал хоть один сайт на этом балансире ? Можете поделиться ссылкой. Спасибо.

25

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

Mr.Max пишет:

сайт на этом балансире ?

Вот здесь есть https://proector.club/titles/170791,  но ссылки вытаскивать несколько заморочено.

26

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

Еще можно здесь https://online1.cinema4k.ru/iframe/104904?https  посмотреть . Сайт https://online1.cinema4k.ru , плеер ищется, через вот такой запрос

<!DOCTYPE html><html lang="ru"><body><style>body,html{border:0;padding:0;margin:0;width:100%;height:100%;overflow:hidden}</style><div id="yohoho"  data-player="collaps%2Chdvb%2Cvideocdn%2Cbazon%2Custore%2Calloha%2Ckodik%2Ctrailer" data-bg="%232b2b2b" data-resize="1" data-kinopoisk="104904" data-title="%D0%9B%D1%8E%D0%B4%D0%B8%20%D0%98%D0%BA%D1%81%3A%20%D0%9D%D0%B0%D1%87%D0%B0%D0%BB%D0%BE.%20%D0%A0%D0%BE%D1%81%D0%BE%D0%BC%D0%B0%D1%85%D0%B0%20(2009)" data-imdb="0458525" data-tmdb="2080"></div><script data-cfasync="false" src="https://4h0y.gitlab.io/yo.js"></script></body></html>

Как видите там есть alloha

27

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

А вот здесь ссылки лежат открыто

http://w5.kinocool.su/18432-01227-posledovateli.html

28

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

Скрипт перестал расшифровать, кажется что то меняли

29

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

кто-то знает новую таблицу замены?

30

Re: Расшифровка ссылок с ustore балансера (ustore.bz, u-cdn.top)

Joker пишет:

Скрипт перестал расшифровать, кажется что то меняли

подтверждаю