您的位置:首页 > 编程语言

【Flash逆向调试之三】几个比较有用的注入代码

2016-02-01 16:42 405 查看
1.插入日志代码

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


2.插入日志代码,并获取参数

findpropstrict Qname(PackageNamespace(""),"trace")
pushstring "=======================我去去去去去=============================================================================="
getlocal_2
getproperty Qname(PackageNamespace(""),"url")
add
callpropvoid Qname(PackageNamespace(""),"trace") 1


3.插入日志代码并打印调用堆栈

findpropstrict Qname(PackageNamespace(""),"trace")
pushstring "====================================================================================================="
findpropstrict Qname(PackageNamespace(""),"Error")
constructprop Qname(PackageNamespace(""),"Error") 0
callproperty Qname(PackageNamespace(""),"getStackTrace") 0
add
callpropvoid Qname(PackageNamespace(""),"trace") 1


以上三个是我分析时候比较常用到的代码注入代码,由于不明原因第二条,第三条有时候在部分函数中会失败导致堆栈溢出,我也没发现原因,请各位遇到了找到原因告知下。具体修改方法,在第二篇文章有提到,请自行翻阅。

如果各位有其他更好的,或者比较常用的代码可以站内通知我下,我替各位总结下。

文末推荐一些相关资料链接:

avm2虚拟机的相关介绍,包括指令集介绍:
https://www.adobe.com/content/dam/Adobe/en/devnet/actionscript/articles/avm2overview.pdf
如果想进一步研究SWF文件结构,以及更加深入的研究SWF文件请自行查阅。

至此【FLASH逆向调试】文章结束。

由于个人知识的浅薄,如有谬误请各位指出,自当修改。88
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息