【Flash逆向调试之二】JPEXS的使用技巧说明
2016-02-01 16:27
1131 查看
一、基础环境说明
系统: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中可以看到如下界面:
其中,脚本目录下,就是我们主要分析的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
添加这个语句后,保存文件。通过Flddler对于风行的这个swf文件进行劫持替换。然后可以在日志文件文件中看到如下结果:
修改swf文件的时候请点击以下按钮:
PCODE栏目变化,如下:
此时的显示的的是AVM2虚拟机的字节码以及对应的操作符号,我们需要数清我们所添加的字节码。(字节码在上,操作符号在下)
对文件进行添加删除代码的时候,需要根据自己添加或者删除的字节码对于一些偏移地址进行修改:
以上为本文全部内容,下一篇将讲几个比较经常用到的有助于分析的几个注入代码。
系统: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中可以看到如下界面:
其中,脚本目录下,就是我们主要分析的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
添加这个语句后,保存文件。通过Flddler对于风行的这个swf文件进行劫持替换。然后可以在日志文件文件中看到如下结果:
修改swf文件的时候请点击以下按钮:
PCODE栏目变化,如下:
此时的显示的的是AVM2虚拟机的字节码以及对应的操作符号,我们需要数清我们所添加的字节码。(字节码在上,操作符号在下)
对文件进行添加删除代码的时候,需要根据自己添加或者删除的字节码对于一些偏移地址进行修改:
以上为本文全部内容,下一篇将讲几个比较经常用到的有助于分析的几个注入代码。
相关文章推荐
- Flash调试模式,输出LOG
- 【Flash逆向调试之一】环境搭建
- 浅谈Flash调试和RAM调试的区别
- 分享一波flash反编译工具
- 【Flash逆向调试之三】几个比较有用的注入代码
- Java泛型
- Windows 编程之WinMain
- 书那么廉价,却饱含着作者无价的知识。
- command/usr/bin/codesign failed with exit code 1- code sign error
- 使用Qt库时出现winsock2.h和windos.h包含顺序错误
- Liferay开发实战(2):Service Builder生成持久化层,及开发服务层
- 验证数字的正则表达式集
- 12c单实例数据库打最新12.1.0.2.160119 PSU补丁记录
- Android工具类—Android Studio实用插件
- Android手动回收bitmap,引发Canvas: trying to use a recycled bitmap处理
- Servlet上传文件
- MYSQL存储过程 游标 循环等
- 读书
- JavaBean技术的一些讲解
- 系统设置相关操作