IDA 需要永远在远程 Android 应用程序上运行自动分析?

逆向工程 艾达 安卓
2021-07-01 21:12:34

我已经对来自 Android apk 的 .so 文件进行了反汇编和自动分析,然后将远程 ARM 调试器连接到了模拟器。IDA 然后问我 /data/app/com.package.name/lib/arm/libil2cpp.so 是否与我计算机上的 libil2cpp.so 文件相同,所以我说是。“移动数据库”、“移动函数”等需要几分钟时间,而现在对映射文件重新执行自动分析需要数小时。

有什么方法可以加快速度,每次启动远程调试会话时都会发生这种情况吗?

后续问题:我了解到这是由于 IDA 每次都对程序进行 rebase 造成的。为什么不能从程序开始使用偏移量并避免重新运行静态分析?

1个回答

我可以确认使用 IDA 7.4 的 rebase 速度要快得多,并且似乎在7.3 版中得到解决

另一个与调试器相关的新闻是快速变基。由于 ASLR 的广泛使用,进程每次都被加载到一个新地址,IDA 需要调整数据库:将所有段移动到操作系统分配给它们的地址。这是一个缓慢的过程,对于大型数据库来说可能需要几个小时。

在 IDA 7.3 中,我们实现了另一种变基方法,它的速度提高了 40 倍,而且通常只需要几秒钟的时间。每次开始新的调试会话时,您再也没有借口喝咖啡休息了。这使我们的调试器使用起来更加愉快 😉

但是,我无法回答后续问题。