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

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

你可能感兴趣的:(debug,Flash,Flash,Flash反编译,As3逆向,flash逆向)