Просмотр полной версии : Защита от декомпилера?
Декомпилировал я одну 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
есть масса шифровальщиков флэшек - они шифруют код до нечитабельности, но интерпретатор его понимает - ему-то пофиг как переменные называются.. а ещё, может у тебя декомпилер корявый..
хех интерпритатор думаю выдаст ошибку если переменная будет называтся \x1, тоесть ошибка уже в первой строчке var \x1 = 695;
оба декомпилера ASV и Sothink SWF Decompiler показывают одно и тоже.
Ктому же если посмотреть то код тут бесмысленный и он имееться почти во всех клипах декомпилированной swf. Что мешает ее компилировать.
zerAlex2
20.01.2006, 16:37
Обфускатор. Похоже его рук дело.
Обфускатор. Похоже его рук дело.
И что это такое?
JudgeFog
20.01.2006, 19:02
это результат работы SWFencrypt
весьма похоже
Nox Noctis
20.01.2006, 22:00
это обфускация, причем не самая сложная: имя переменной заменено на непотребные символы в уже скомпилированном байткоде. при этом структура кода осталась на месте.
для того, чтобы защитить код как-нибудь получше, можно воспользоваться фласмом (http://nowrap.de/flasm), разобравшись, как флэш генерит байткод.
// [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/
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.