IDA PRO 从调试器运行修补程序而不创建新的 exe

逆向工程 艾达
2021-06-11 23:54:15

使用IDA PRO,打几个补丁后,可以在调试器中运行打补丁的程序吗?到目前为止我一直在做的是: 1. 编辑 > 补丁程序 > 将补丁应用到输入文件... 2. 保存在特定位置 3. 移动到 /programs 下的 windows 位置而不是原始文件 4. 重新加载补丁文件国际开发协会

这会覆盖原始文件。大多数情况下,我需要将它放在另一个位置,因为原始文件可能位于 windows 文件夹下。此外,如果强制我重新打开 IDA 并加载修补文件,由于这是一个新文件,我将丢失所有工作。

有没有办法像在 Oly 中一样简单地运行打过补丁的文件?

3个回答

要在 Ida 中调试打过补丁的程序,一个简单的方法(对我来说!)不是在 Ida 中打补丁,而是在另一个十六进制编辑器中打补丁。如果您保留它的名字,您将不会丢失在 Ida 中的工作。

通过这种方式,在应用“文件、加载文件、重新加载输入文件”之后,您可以让 Ida 继续运行并继续修补文件。你的补丁会出现。

当然,您应该始终保存原始文件。

您不能从 IDA 中创建输入文件的副本。但是,如果您将其复制到其他位置,则可以通过更改补丁程序窗口中的输入文件路径(我在 IDA Free 7.0 中验证过)来指向 IDA 对其进行补丁。之后,您在调试器菜单内的进程选项对话框中更改“应用程序路径”和输入文件以运行修补版本。(我在IDA Pro 5.6中验证了这些设置的存在,我手头没有更高的商业版本)。

最简单的解决方案是使用DebugAutoPatch插件。要安装,请将 DebugAutoPatch.py​​ 文件下载到 IDA 插件目录。其特点:

  • 无需修改任何二进制文件即可应用补丁!

  • 自动将 IDA 中现有的“修补字节”数据库与任何启动的调试会话同步。

  • 存储在“Patched bytes”数据库中的所有补丁都在主入口点之前的“进程开始”应用到调试会话内存。

  • 调试钩子自动挂起进程、应用补丁和恢复进程。该过程对用户来说是无缝且自动的。

  • 没有添加额外的断点,也没有修改现有的断点。禁用自动修补的能力(从而将二进制文件恢复到它的“原始”状态)。

  • 这些选项在现有的“编辑 > 补丁程序”菜单中可用。