有没有办法告诉 IDA 调试器应用数据库中的所有补丁?

逆向工程 艾达 调试器 修补
2021-06-26 22:01:50

我正在“增强”一个带有巨大编译 .so 文件的 Android 应用程序。在数据库中修补大约 200 个字节后,我想附加到正在运行的应用程序,将所有这些修补程序应用于加载的共享库,继续应用程序,并调试我的更改;然后从应用程序分离并再次撤消更改。

IDA 可以做到这一点,还是有一个插件来做到这一点?

我知道我可以写回我对 .so 文件的所有更改并重新启动应用程序,但我现在不想这样做(出于各种原因,一个是我怀疑应用程序在库上执行校验和首先加载到内存中。

我也知道我可以在连接调试器时在内存中以交互方式修补单个字节,但是我的更改有点过于广泛,以至于我无法在每个调试会话中一遍又一遍地输入它们。

2个回答

Ida patcher 可能会帮助您解决其中的一些问题。

https://thesprawl.org/projects/ida-patcher/

调试器的重点是显示内存中的实际内容,而不是数据库中出现的内容。也就是说,我想你可以想出一些基于visit_patched_bytes(),get_original_byte()和 的脚本get_db_byte()