要想对Flash做到完全加密那是不可能的事,谁叫Adobe发布了swf文件的标准……
这里不讨论防止网页下载swf文件的各种办法,只将下常用加密和解密软件的使用。
常用的Flash解密软件是硕思闪客精灵和ASV,ASV比闪客精灵强大~
常用的加密软件为SWF Encrypt和Flashincrypt,两款软件都是代码混淆。
Flashincrypt比较容易获得,但是效果不好,可以对付闪客精灵但是不能对付ASV。
SWF Encrypt混淆后的代码闪客精灵和ASV破解后,AS代码都无法使用。
代码会变成类似下边的片段:
[sourcecode language='js']
function sdl()
{
/x03 = 2350 % 511 * true;
return (eval("/x03"));
} // End of the function
var /x01 = 75 + /x04/x05();
if (eval("/x01") == 152)
{
}
else
{
while (/x01 = eval("/x01") + 89, if (eval("/x01") != 152) goto 19, /x01 = eval("/x01") + 244, // Jump to 429496728, // Jump to 149, eval("/x01") == 974)
{
/x01 = eval("/x01") - 103;
break;
} // end while
/x01 = eval("/x01") + 142;
if (eval("/x01") == 156)
{
/x01 = eval("/x01") - 4;
} // end if
if (eval("/x01") == 985)
{
/x01 = eval("/x01") - 385;
} // end if
if (eval("/x01") == 871)
{
/x01 = eval("/x01") - 271;
} // end if
if (eval("/x01") == 534)
{
/x01 = eval("/x01") + 413;
} // end if
if (eval("/x01") == 470)
{
/x01 = eval("/x01") + 504;
if ("/x0f")
{
}
else
{
/x01 = eval("/x01") - 103;
} // end else if
} // end if
/x01 = eval("/x01") + 14;
var null = true;
/x01 = eval("/x01") + 44;
if (eval("/x01") == 947)
{
/x01 = eval("/x01") - 791;
if (!1)
{
}
else
{
/x01 = eval("/x01") - 4;
} // end else if
} // end if
if (eval("/x01") == 800)
{
/x01 = eval("/x01") - 266;
} // end if
if (eval("/x01") == 396)
{
/x01 = eval("/x01") - 396;
} // end if
} // end else if
.....................
[/sourcecode]
常用破解工具
谈到破解,很多朋友都会想到时下流行的闪客精灵。以下为常用的破解工具,按我使用的频繁程度,分别有:
1、硕思闪客精灵(Sothink SWF Decompiler)
2、Action Script Viewer(ASV)
3、Imperator FLA(有使用者译为“罗马统治者”)
(这是我最早认识的用来还原swf的工具,可惜一直在关注也没有发现2.0以上的破解版,只有1.6.9.8的破解版,这已经是3年前的版本了,只对Flash6.0以下有效。)
4、硕思闪客之锤(Sothink SWF Quicker)
以上四款,以Decompiler最为常用。ASV虽然强大,但在实用性方面却不如Decompiler,这应当也是为什么数年来Decompiler能 够长久风靡的原因。而ASV对付Flashincrypt加密过的swf却是轻而易举,这大大弥补了Decompiler的不足。不少网友知道用ASV来 查看swf,但是不知道如何使用它来将swf还原成fla,以5.01版本为例,只需两步。
1. 打开等待破解的swf文件(支持拖放打开),输出重建数据(File → Export Rebuild Data (JSFL)...)到某一目录下,例如:桌面/新建文件夹。
2. 双击目录下的“rebuildcommand.jsfl”,系统将启动Flash重建fla文件。根据原swf文件的复杂程度,重建fla所需的时间将有所区别。
【重要说明:双击目录下的“rebuildcommand.jsfl”前,请先退出 Flash 程序,否则可能出现错误,提示为:在文件 ""rebuildcommand.jsfl文件所在路径/rebuildcomman":: 】
破解附言
破解swf,依赖的主要是现成工具,多款工具综合使用,一款不行试另一款,如果作者有意加密,视破解者自身水平,在获取swf时将遇到规模可大可小的困 难,在破解时亦将不可避免的多花些许心思。如果遇到 SWF Encrypt 加密过的作品,只能对其中的AS无奈了
转载请注明: 深圳网站建设