flash破解之doswf去壳

写一个关于doswf去壳的教程,内存提取方法
目前国内比较流行的加密软件有:doswf,Flash_Secure,Encrypt。目前这3款软件中doswf有加壳,其余没有加壳,doswf的加壳说是可以防止吸血鬼,其实不然。

先说明一下内存去壳的原理:swf加壳后,真实的东西被隐藏,其实就是字节的来回转换,当flashplayer加载加壳后的swf,会自动解析,拿到真实的swf,这个时候就可以抓取到真实的swf,但有个前提就是swf必须是能正常运行的,如果不能正常运行,swf没有真正的解析成功,可能提取不到真实的东西

下面我就拿个例子来说:

怎么知道swf是被doswf加壳,而不是其他的软件加壳,教你识别:

如图:

闪客中的显示: asv中的显示:

flash破解之doswf去壳_第1张图片 flash破解之doswf去壳_第2张图片

先看闪客中的显示,只能看到一个shape,代码就2个,还有一个特殊的标签就是:DefineBinaryData(这个标签其实隐藏真实的swf)还有个问题就是点击,好处会卡掉闪客,这个地方其实是用的newclass+超大id(闪客的一个bug)

再看asv中的显示,就是能看到2个代码,其他的没有,代码是加壳用的,会as3的应该可以看懂。Embed进去的。

下面就是实战的去壳了:

1.首先打开要去壳的swf,正常运行即可(加载完全后,试玩一会,确保完全解析)

2.利用内存查看器(我用的是HxD,可以去百度下,这里就不提供下载了)

打开HxD,然后打开附加,里面有个打开内存,附图:

flash破解之doswf去壳_第3张图片

然后就打开flashPlayer的内存,如下

flash破解之doswf去壳_第4张图片

下面是关键了,我一般是由后往前搜索,一般关键字为:FWS,CWS,Sprite,MovieClip,40 00 00 00

由后往前搜索  flash破解之doswf去壳_第5张图片

解析看头部信息:一般的正常的SWF头部结构,要留意,错误的格式直接跳过(如果不懂swf的头部结构的话,请查阅swf的tag,swf_file_format_spec_v10.pdf)

正常的swf如图:flash破解之doswf去壳_第6张图片

不正常的如下: flash破解之doswf去壳_第7张图片

根据swf的头部信息截取真实的swf,即可 .. .. .. ..(多多实践)

提醒一下swf的混入误区:

flash破解之doswf去壳_第8张图片

这个地方就是写入的一些垃圾swf,也就是所谓的放内存提取,其实道理很简单,我写入100w个swf结构,内存工具提取比较傻,就当做真实的swf进行提取,由于太多,文件较大,机子运行就很慢,所以大部分人就以为卡掉了,机器好的也是可以提取到的。

备注:as2,as3提取出来的东西是不一样的,as2的比较脆,提取后,一般会有一个doabc的tag,但是不妨碍正常运行游戏,只是闪客会解析(闪客的bug),手动去掉tag,游戏的代码就会暴露了。关于as3的是分成2部分doabc+素材,也要手动拼起来,去掉里面的一些doaction,即可!(以后有时间再写点吧… … )

你可能感兴趣的:(flash破解之doswf去壳)