【Flash逆向调试之二】JPEXS的使用技巧说明

一、基础环境说明

系统:win7_x64

浏览器:FireFox(火狐浏览器),(chrome浏览器日志输出环境我没配置出来,如有朋友配置出来请私信告知,我重新修改)

分析软件:JPEXS(需要JAVA支持,请自行安装JAVA环境)

这个软件应该有许多BUG,以及功能简陋,但是应该是市面上最好用的FLASH分析软件了。FLASH分析环境简陋,请大家忍受啊!!!

下载地址:https://www.free-decompiler.com/flash/

其它辅助软件:Cygwin64 Terminal

分析案例:风行播放器的swf模块分析(FunPlayerP2p_2.0.1.2.swf这是FLASH主播放器的P2P模块)。

二、分析开始

1.载入模块,将文件直接拖入JPEXS中可以看到如下界面:

【Flash逆向调试之二】JPEXS的使用技巧说明_第1张图片

其中,脚本目录下,就是我们主要分析的AS3脚本了。

2.导出项目

可以点击文件工具栏下的导出到FLA,可以导出FLA项目用于FLASH CSX打开,但是导出项目无法编译通过,所以个人感觉没啥子用。当然不排除其它简单的SWF文件可以直接反编译。

3.脚本查看与编辑

点击其中一个脚本,可以看到如下界面。JPEXS是可以对FALSH进行修改的,只是不能直接修改AS3脚本,而是需要通过修改最右边的PCODE码进行修改。下图我通过修改PCODE码添加如下语句:

trace("in initMultCdnTask=====================================================================================================" + new Error().getStackTrace());
pcode代码如下:

findpropstrict Qname(PackageNamespace(""),"trace")
pushstring "in initMultCdnTask====================================================================================================="
callpropvoid Qname(PackageNamespace(""),"trace") 1


【Flash逆向调试之二】JPEXS的使用技巧说明_第2张图片

添加这个语句后,保存文件。通过Flddler对于风行的这个swf文件进行劫持替换。然后可以在日志文件文件中看到如下结果:【Flash逆向调试之二】JPEXS的使用技巧说明_第3张图片

修改swf文件的时候请点击以下按钮: PCODE栏目变化,如下:


【Flash逆向调试之二】JPEXS的使用技巧说明_第4张图片

此时的显示的的是AVM2虚拟机的字节码以及对应的操作符号,我们需要数清我们所添加的字节码。(字节码在上,操作符号在下)

对文件进行添加删除代码的时候,需要根据自己添加或者删除的字节码对于一些偏移地址进行修改:

【Flash逆向调试之二】JPEXS的使用技巧说明_第5张图片


以上为本文全部内容,下一篇将讲几个比较经常用到的有助于分析的几个注入代码。

你可能感兴趣的:(Flash逆向)