PDA

Просмотр полной версии : Защита от декомпилера?


PoMaH
20.01.2006, 10:23
Декомпилировал я одну swf'ку и там обнаружил следующее:
var \x1 = 695;
while (eval("\x1") == 695){
\x1 = eval("\x1") + 242;
break;
} // end while
if (eval("\x1") == 937){
\x1 = eval("\x1") - 692;

} // end if
if (eval("\x1") == 245){
\x1 = eval("\x1") + 734;
}else{

} // end else if


ЧТо это? Защита от декомпилера?
И как автор с таким кодом откомпилил флешку?

araneola.com
20.01.2006, 12:20
есть масса шифровальщиков флэшек - они шифруют код до нечитабельности, но интерпретатор его понимает - ему-то пофиг как переменные называются.. а ещё, может у тебя декомпилер корявый..

PoMaH
20.01.2006, 12:27
хех интерпритатор думаю выдаст ошибку если переменная будет называтся \x1, тоесть ошибка уже в первой строчке var \x1 = 695;

оба декомпилера ASV и Sothink SWF Decompiler показывают одно и тоже.

Ктому же если посмотреть то код тут бесмысленный и он имееться почти во всех клипах декомпилированной swf. Что мешает ее компилировать.

zerAlex2
20.01.2006, 16:37
Обфускатор. Похоже его рук дело.

PoMaH
20.01.2006, 17:06
Обфускатор. Похоже его рук дело.

И что это такое?

JudgeFog
20.01.2006, 19:02
это результат работы SWFencrypt
весьма похоже

Nox Noctis
20.01.2006, 22:00
это обфускация, причем не самая сложная: имя переменной заменено на непотребные символы в уже скомпилированном байткоде. при этом структура кода осталась на месте.

для того, чтобы защитить код как-нибудь получше, можно воспользоваться фласмом (http://nowrap.de/flasm), разобравшись, как флэш генерит байткод.

Lims
25.01.2006, 23:05
// [Action in Frame 1]
var \x1 = 956;
\x1 = \x1 - 947;
if (\x1 == 333)
{
\x1 = \x1 + 99;
if (false)
{
}
else
{...
это делается с помощю "SWF Encrypt™ 3.0"
http://www.amayeta.com/