常见的混淆方式:bcf(虚假块), fla(控制流展开), sub(指令膨胀), Split(基本块分割),有一些厂商会利用IDA解析的bug去做一些防护:比如故意制造堆栈不平衡,不能F5,或者函数内利用寄存器跳转BR X12,在或者插入一下垃圾指令,导致IDA解析不出来等。
1.MonkeyDev先下断点

在运行时,可以看到x12寄存器的值,是一个地址。
2.用frida-stalker采集指令的,在运行中,记录真实执行的指令,有了真实的执行指令,在配合IDAPython,在IDA上可以写很多修复脚本,开始编写脚本,采集指令,生成指令json文件。

3.通过2采集到指令集合,在IDA中执行修复脚本,可以看到代码还原效果。

1.MonkeyDev先下断点

在运行时,可以看到x12寄存器的值,是一个地址。
2.用frida-stalker采集指令的,在运行中,记录真实执行的指令,有了真实的执行指令,在配合IDAPython,在IDA上可以写很多修复脚本,开始编写脚本,采集指令,生成指令json文件。

3.通过2采集到指令集合,在IDA中执行修复脚本,可以看到代码还原效果。
