我正在尝试使用 IDA Pro 7.5 反汇编器和 Hex 射线反编译器批量反汇编和反编译 500 个二进制文件。我可以从反汇编器获得 .i64 输出,但我没有办法批量反编译它。有没有人有一种简单的方法可以直接从二进制文件中获取 .c 伪代码,就像使用 Ghidra 一样?
使用 IDA Pro 7.5 批量反编译
逆向工程
艾达
反编译
六线谱
2021-07-06 11:04:09
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 提供的链接以了解其他可用选项。
其它你可能感兴趣的问题