我一直在尝试通过 IDAPython 使用 IDA Pro(带有 bindiff)来自动化 bios.dump 文件的分析过程,同时将结果输出到 .txt / .asm 文件。从这里开始,我想使用 bindiff 函数将此数据库与另一个数据库进行比较,并将任何差异输出到文件中。有什么建议吗?
通过 IDAPython 实现 IDA Pro/IDAPython 自动化
逆向工程
艾达
蟒蛇
idapro插件
bin-diffing
工具bindiff
2021-06-11 11:04:27
2个回答
使用现在免费的BinDiff 4.2,您可以通过一些工作进行批量分析。
在 BinDiff 安装目录 ( zynamics/BinDiff 4.2
) 中,您将找到bin/differ.exe
和bin/differ64.exe
。这些是用于批量比较 IDB 和.BinExport
文件的二进制文件。
基本用法是:
differ --primary=<directory-with-IDBs> --output-dir=<output-directory>
遗憾的是,这不起作用(至少在我的机器上),因为differ.exe
无法找到 IDA 的可执行文件并尝试执行该目录。
为了解决这个问题,我们将使用以下命令导出 IDB:
"<path-to-idaq.exe>" -A -OExporterModule:<result-directory> -S"<path-to-export-script>" "<path-to-idb>"
这export-script
是一个.idc
具有以下代码:
#include <idc.idc>
static main()
{
Batch(0);
Wait();
Exit(1 - RunPlugin("zynamics_binexport_8", 2));
}
将所有.BinExport
文件都放在一个目录中后,differ.exe
在该目录上运行原始命令(将包含.BinExport
文件的目录而不是文件指定给它.idb
),您将获得.BinDiff
所有可能差异的文件。这些可以在 IDA 中打开,也可以手动解析(它们是 SQLite 数据库)。
如果您询问在批处理模式下使用 BinDiff:抱歉,您不能。这是故意限制的。