我正在使用IDA Free进行恶意软件分析,我想修补一个正在查看的二进制文件。我通过使用补丁菜单应用了补丁,该菜单修改了可执行文件的DATABASE表示形式。

当我通过Debugger-> Run运行可执行文件时,它警告我数据库已打补丁,并且可能存在不一致之处。但是,当它最终运行时,它将运行不带补丁代码的原始可执行文件!

有没有办法告诉IDA运行补丁的代码?或者,由于仅在数据库中对其进行了修补,所以我唯一的选择是导出DIF文件并手动对其进行修补以确认其有效?

评论

您是否“将补丁应用于输入文件”?

@sudhackar IDA Free只有IDA 5.0,我没有这个选择。

然后,您可以使用十六进制编辑器手动修补文件。我不知道IDA免费提供的其他选项。

#1 楼

IDA Free不支持“将补丁程序应用于输入文件...”功能。因此,您将不得不采用旧方法。我将扩展答案,并介绍您已经知道的内容,以便其他人(例如来自搜索引擎的人)可以从整个完整答案中受益。

编辑配置文件

要做的第一件事是修改一个名为idagui.cfg的IDA GUI配置文件。您应该可以在“ IDA Free \ cfg \ idagui.cfg”中找到该文件。找到文件,然后将“ DISPLAY_PATCH_SUBMENU”的形式从“否”更改为“是”。

之后,启动IDA Free,您将看到一个全新的子菜单,称为“补丁程序”。

修补

您应该可以使用此子菜单来编辑程序。这非常直观,只需将光标放在要进行更改的位置,然后从子菜单中选择适当的选项即可。数据库。因此,磁盘上的二进制文件不会受到影响,并且当您尝试调试/执行二进制文件时,您将看不到补丁。

导出.DIF文件

完成所有补丁程序后,就该将它们应用于磁盘上的二进制文件了。为此,您首先必须生成一个.DIF文件,该文件将包含您所做的更改的列表。 DIF文件...”。

将更改应用于二进制文件

跟踪者可以使用此Python脚本来应用更改。像这样使用它:

$ idadif.py <original_binary> <IDA_DIF_file.dif> [revert]


替代方法:请注意,我没有测试这些替代方法,并且我很确定其中一些将无法与IDA Free一起使用


ida_patcher.c
pe_write.idc
IDA Patcher插件
IDA DIF补丁


评论


是的,我对此很清楚。也许我不清楚我的问题。我想运行修补的二进制文件进行测试。 IDA是否不从数据库运行?我不希望导出一个dif而不知道它的工作原理。

–user22856
18年1月9日在7:56



不,它不能。只需备份原始文件,然后使用上述方法之一将修补程序应用于其中一个即可。

–巨型甜菜
18年1月9日在8:00