执行文件方式加密FLASH文件的解密方法
来源:中国安全信息网 更新时间:2012-04-13
                  

工具:OD Lordpe 16进制编辑器

程序:多彩的夏天.exe

目的:从EXE文件中导出SWF,之后可以进行反编及修改操作

说明:为了研究需要而处理的。不敬之处请您谅解。

1、OD导入程序。

停在这里

004B556B > $ 6A 60 PUSH 60

004B556D . 68 30805300 PUSH 多彩夏天.00538030

004B5572 . E8 E9EBFFFF CALL 多彩夏天.004B4160

004B5577 . BF 94000000 MOV EDI,94

004B557C . 8BC7 MOV EAX,EDI

004B557E . E8 CD95FFFF CALL 多彩夏天.004AEB50

2、执行程序,之后可以看到程序运行的界面。以及播放的FLASH动画。

注意:此程序不是用Flash播放器生成的EXE文件,所以不能用网上的一些去头的方法进行处理。

到OD中。

ALT+M显示内存列表。

选一些比较大的内存块,鼠标右键,在CPU中进行转存,这样在数据区时可以看到内存块的内容了,

进行 二进制的搜索Flash文件的头 FWS 字符,如果你找到了,可以看一下,这一块内容离块的头并不远,

实际上不用找也能看到的。

01DF0000 50 00 5F 01 50 00 5F 01 00 00 00 00 00 00 00 00 P._ P._ ........

01DF0010 00 60 27 00 00 60 27 00 11 08 00 00 00 0B 00 00 .`'..`'. .....

01DF0020 46 57 53 06 EE 57 27 00 78 00 07 D0 00 00 17 70 FWS 頦'.x.?. p

01DF0030 00 00 0C 17 00 43 02 FF FF FF 44 0B 06 00 00 00 ... .C D ...

01DF0040 3F 03 02 00 00 00 07 00 BF 05 76 2D 00 00 01 00 ? ....?v-.. .

大约在块头的20H开始,简单说一下Flash头的格式:

01DF0020 46 57 53 06 EE 57 27 00 78 00 07 D0 00 00 17 70 FWS 頦'.x.?. p

====== -- =========

标示 版本 长度

长度内容一会要用的。当前文件的长度是2757EEH字节长,1DF0020+2757EE=1E6580E 说明我们的Flash到此位置

3、上lordpe,在path中选中程序的名称列表。

鼠标右键 dump region 汉语是 脱壳部分区域。

在列表中选中我们刚才的内存块了。

右键 dump,保存文件AA.SWF。

4、用16进制编辑器打开生成的文件AA.SWF,去掉头20H字节, 之后到2257EEH处,删除后面的字节。

之后SWF文件就可以看到了,用播放器可以看。用AVS可以反编。

5、总结

现在网上的Flash的文件加密方法很多,但常是能被反编译,之后改文件,改底稿,改图片,为了保护作者的权力,可谓保护起来不遗余力了。

这种保护方法是用VC编程,之后在程序中调用播放Flash的控件,再调用Flash文件进行播放。因为数据是被压缩的,不能直接dump出来的。