我正在尝试使用BinDiff评估大量二进制文件(数千个),目前我只需要BinDiff的某些指令级统计信息,可以从其转储的sqlite文件中轻松获取这些信息。

但是我的问题是,使用IDA / BinDiff的GUI测试成千上万的二进制文件似乎很耗时。特别是BinDiff,从命令行将其输出转储出来吗?有可能这样做吗?

我有一些使用命令行ida的经验,但这仅限于执行某些IDAPython脚本。

该测试是在Windows 7和IDA-Pro 6.6和BinDiff 4.1上进行的。

评论

这可能会有所帮助:zynamics.com/kb/kb0004.html吗?我知道我在某处读过它。您仍然必须启动IDA来生成idb文件,但是据我所知,也可以通过命令行来完成。 hex-rays.com/products/ida/support/idadoc/417.shtml似乎涵盖了这一点,请检查-B参数。

#1 楼

您可以尝试以下步骤:



将二进制文件转换为IDB:

$IDA_PATH\idaq.exe -B -p+ $FILE_TO_CONVERT



从idb创建BinExport

$IDA_PATH\idaq.exe -A -SC:\bindiff_export.idc


其中bindiff_export.idc如下所示:要比较文件,可以直接在BinExports上使用BinDiff:

#include <idc.idc>
static main()
{
    Batch(0);
    Wait();
    Exit( 1 - RunPlugin("zynamics_binexport_5", 2 ));
}