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)查看重建的重定位。
目标文件由三部分组成:
当调用链接器从一堆目标文件生成可执行文件时,它将:
通常,在此过程之后,重定位表将被丢弃,如果不保留调试符号,则符号表也会被丢弃,只留下不可重定位的节字节。然而,通过仔细分析,可以重新创建这些数据,这使我们能够有效地将程序重新链接回目标文件。