前沿 做为一个身经百战的iOS逆向,如果你没有遇到过混杂,阐明你没有深入竞品的核心事务。大厂的核心事务多少都有点防护,是维护自己的一种方法。今天咱分析某盟,只做学习运用。
混杂方法 常见的混杂方法:bcf(虚伪块), fla(操控流打开), sub(指令胀大), Split(基本块分割),这是张总ollvm中的功用,很不错,很佩服能自己写PASS的大佬。但是,也有一些厂商会使用IDA解析的bug去做一些防护:比方成心制作仓库不平衡,不能F5,或许函数内使用寄存器跳转BR X12,在或许刺进一下废物指令,导致IDA解析不出来等。
你遇到过吗?



搞定他
- 1.MonkeyDev下断点

在运转时,我们是能够知道x12寄存器的值,是一个地址。
- 2.frida-stalker的运用
frida-stalker我主要用来收集指令的,在运转中,记载实在履行的指令,有了实在的履行指令,在合作IDAPython,在IDA上能够写很多修正脚本。
编写脚本,收集指令,生成指令json文件


3.经过2收集到指令集合,在IDA中履行修正脚本
exec(open('/Users/xxx/Desktop/Uxx/ida_fix.py').read())
效果展现

到目前为止,一个代码复原结束。
2.总结
- 1.找到方针函数的起始点,计算履行过程数;
- 2.编写stalker脚本,收集方针函数履行的指令集;
- 3.编写IDAPython脚本,并在IDA中履行,修正方针函数。
3.附件
联系作者讨取
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。