我一直在尝试通过IDAPython使用IDA Pro(带有bindiff)来自动执行bios.dump文件的分析过程,同时将结果输出到.txt / .asm文件。从这里开始,我想使用bindiff函数将该数据库与另一个数据库进行比较,并将所有差异输出到文件中。有什么建议吗?

#1 楼

使用现在免费的BinDiff 4.2,您可以完成一些工作。

在BinDiff安装目录(zynamics/BinDiff 4.2)中,您将找到bin/differ.exebin/differ64.exe。这些是用于IDB和.BinExport文件的批量差异的二进制文件。

基本用法是:至少在我的机器上),因为differ.exe无法找到IDA的可执行文件并尝试执行该目录。

为解决此问题,我们将使用以下命令导出IDB:

differ --primary=<directory-with-IDBs> --output-dir=<output-directory>


export-script是具有以下代码的.idc:该目录上的.BinExport命令(将包含differ.exe文件而不是.BinExport文件的目录提供给该目录),您将获得所有可能差异的.idb文件。这些可以在IDA中打开,也可以手动解析(它们是SQLite数据库)。

#2 楼

如果您询问以批处理方式使用BinDiff:对不起,您不能。这是有意限制的。

评论


由于什么原因受到限制?

–多米尼克·安塔尔(Dominik Antal)
2013年12月31日上午9:15

我猜是VxClass。但是我不知道原因,对不起。

– joxeankoret
2013年12月31日上午9:38

您是否知道我可能要研究的其他软件,可以用来远程比较两个二进制文件/ BIOS文件?

–user3119546
2014年1月2日,13:56

有很多差异化工具(kdiff等),但是与BinDiff不同。

–多米尼克·安塔尔(Dominik Antal)
2014年1月2日,14:15

无论如何,我可以将bindiff结果导出到可读文本(.txt)文件中吗?我似乎只能通过IDA GUI查看结果,而在发送报告时,BinExports不是我想要的。

–user3119546
2014年1月2日14:32