本文主要给大家介绍flash文件通过执行文件方式加密过后如何进行解密。
工具: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出来的。