Flash代码加密解决方法

来源:互联网 发布:质量最好的网络机顶盒 编辑:程序博客网 时间:2024/04/29 13:13

要想对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无奈了

 

转载请注明: 深圳网站建设

原创粉丝点击