使用 IDA Pro 7.5 批量反编译

逆向工程 艾达 反编译 六线谱
2021-07-06 11:04:09

我正在尝试使用 IDA Pro 7.5 反汇编器和 Hex 射线反编译器批量反汇编和反编译 500 个二进制文件。我可以从反汇编器获得 .i64 输出,但我没有办法批量反编译它。有没有人有一种简单的方法可以直接从二进制文件中获取 .c 伪代码,就像使用 Ghidra 一样?

2个回答

请参阅 反编译器手册中的批处理操作

@cal_decom 你好,我写了这个脚本,它可以帮助你实现你想要实现的目标。

import os
import sys
sys.path.append(os.getcwd())

pwd = os.getcwd()
for dirpath, dirnames, filenames in sorted(os.walk(pwd)):
    for file in filenames:
        ext = os.path.splitext(file)[-1]
        name = os.path.splitext(file)[0]
        if os.path.splitext(file)[-1] == ".out":
            os.system(f"/mnt/d/idapro-7.5/idat64 -Ohexrays:{os.path.join(dirpath, name)}:ALL  -A {os.path.join(dirpath, file)} -nosave")
# you might want to change this for sub directories
os.system("rm *.i64")

您可以相应地更改路径。该脚本扫描当前目录和子目录以查找带有“out”扩展名的二进制文件,如果找到则生成伪代码。您可以阅读@Igor Skochinsky 提供的链接以了解其他可用选项。