Если вы встретили на сайте флеш плеер uppod.swf
Если вы видите, что ссылки на файл видео или плейлиста зашифрованы, или есть ссылка на другой текстовый файл, который зашифрован во flashvars.
Например как на степашка.ком:
<param name="flashvars" value="comment=Stream-video&st=http://www.stepashka.com/engine/classes/flashplayer/video88-1287.txt&pl=4cQoHu0Npl8L81bNpnEDHlQ3H1Ff41XhpIvNVSMdVCM8USGNw1G3VT3h4TYXHWG3HTRXYTbfp
TQawArr" />
То можно попытаться это дело расшифровать.
Вообще, во всех случаях изучения получения ссылки - формула примерно одна:
- Сниффером (например Wireshark) слушаем http и смотрим какие запросы идут и ответы приходят
- Скачиваем флеш плеер, декомпилируем (например Flash Decompiler Trillix) и изучаем как оно всё там происходит.
В случае с uppod, есть несколько советов, возможно очень облегчающих получение реальной ссылки.
Если с плеером uppod ссылки закодированы, значит хозяева ресурса его купили и платная версия этого плеера собирается с возможностью шифрования ссылок. Шифровка ссылок у каждого клиента, купившего плеер, своя. Поэтому придётся смотреть внутрь плеера, который используется на ресурсе.
Но на самом деле, если повезёт и ничего дополнительно не используется для шифрования и защиты контента, там всё просто.
1) Скачиваем uppod.swf
2) Декомпилим
3) Ищем в файле скрипта ActionScript плеера значения двух массивов с именами codec_a и codec_b
Например в плеере степашки это будут строки типа:
[JS]client.codec_a = new Array("G", "d", "R", "0", "M", "Y", "4", "v", "6", "u", "t", "i", "f", "c", "s", "l", "B", "5", "n", "2", "V", "Z", "J", "m", "L", "=");
client.codec_b = new Array("1", "w", "Q", "o", "9", "U", "a", "N", "x", "D", "X", "7", "z", "H", "y", "3", "e", "g", "T", "W", "b", "8", "k", "I", "p", "r");[/JS]
В плеере
http://st.keyset.kz/pl/pl.swf[JS]client.codec_a = ["m", "T", "u", "p", "L", "n", "M", "6", "Q", "i", "w", "7", "t", "X", "s", "0", "l", "a", "k", "v", "G", "B", "D", "2", "R", "="];
client.codec_b = ["9", "c", "W", "Z", "I", "H", "J", "e", "V", "o", "y", "z", "d", "N", "b", "4", "U", "Y", "x", "g", "5", "8", "3", "1", "f", "F"];[/JS]
Это - таблицы замен символов. Они, по-умолчанию, тупо кодируют текст в Base64 и меняют символы по этим таблицам. Поэтому можно попытатся расшифровать ссылку или текст следующим скриптом (С++ script):
[JS]
// -----------------------------------------------------------------------------
// Расшифровка закодированного текста плеера uppod
char DecodeUppodText(char sData) {
variant char1, char2; int i;
variant Client_codec_a = ["G", "d", "R", "0", "M", "Y", "4", "v", "6", "u", "t", "i", "f", "c", "s", "l", "B", "5", "n", "2", "V", "Z", "J", "m", "L", "="];
variant Client_codec_b = ["1", "w", "Q", "o", "9", "U", "a", "N", "x", "D", "X", "7", "z", "H", "y", "3", "e", "g", "T", "W", "b", "8", "k", "I", "p", "r"];
sData = ReplaceStr(sData, "\n", "");
for (i=0; i<Length(Client_codec_a); i++) {
char1 = Client_codec_b[i];
char2 = Client_codec_a[i];
sData = ReplaceStr(sData, char1, "___");
sData = ReplaceStr(sData, char2, char1);
sData = ReplaceStr(sData, "___", char2);
}
sData = HmsUtf8Decode(HmsBase64Decode(sData));
return sData;
}
[/JS]
Только вот работать с ними, блин, не получается ...
Никак не могу привести в порядок предложенный код.
Половина пути пройдена! Осталось добивать ...