先说说我对IDA的看法:我怀疑IDA公司有内鬼。
我的目的是用IDA的F5来反编译出经过VMP2.x的mutation保护的代码。
F5的自动化反混淆很好用,可以清掉vmp2.x的90%的变异代码。
但是交互可能是“内鬼”写的,用起来是真的不舒服,各种多管闲事(删了函数又自动创建出来),交互失灵(做了删函数删变量等等操作,graph和f5都没有变化,需要把当前函数删了重新创建才会变化)。
用IDA分析混淆代码时,建议把这个选项取消,以免乱创建函数,影响graph和F5,去变异代码那手动创建函数会好很多
IDA还会被一些指令和代码块干扰:
指令1:Call 变异代码段
这种call会直接影响graph图的生成,让graph不能完整地连接变异代码块,而是被“中途截断”
指令2:Ret
Ret指令不管是返回到了变异代码块还是返回到了正常的函数,都会导致graph被截断
(Call指令只在call 变异代码段时会截断,call正常函数不会被截断)
代码块:栈未平衡的代码块。例如
sub esp,4<