ghidra delinker extension
v0.5.0
此 Ghidra 扩展允许将程序的一部分导出为目标文件。这些目标文件具有有效的元数据(符号、重定位表……),因此可以由工具链直接重用以进行进一步处理。
用例包括:
支持的指令集架构和目标文件矩阵:
x86 | 米普斯 | |
---|---|---|
咖啡因 | ✅ | |
极低频 | ✅ | ✅ |
GHIDRA_INSTALL_DIR
环境变量以指向您的 Ghidra 安装目录;gradle buildExtension
。 Ghidra 扩展存档将在dist/
目录内创建。
File > Install Extensions…
在您的 Ghidra 实例中安装扩展;File > Configure
启用RelocationTableSynthesizedPlugin
插件。 Relocation table synthesizer
分析器(在一次性模式下可用);File > Export Program…
可以使用Window > Relocation table (synthesized)
查看重建的重定位。
目标文件由三部分组成:
当调用链接器从一堆目标文件生成可执行文件时,它将:
通常,在此过程之后,重定位表将被丢弃,如果不保留调试符号,则符号表也会被丢弃,只留下不可重定位的节字节。然而,通过仔细分析,可以重新创建这些数据,这使我们能够有效地将程序重新链接回目标文件。