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)
查看重建的重定位。
目標檔案由三個部分組成:
當調用連結器從一堆目標檔案產生可執行檔時,它將:
通常,在此過程之後,重定位表將被丟棄,如果不保留調試符號,則符號表也會被丟棄,只留下不可重定位的節字節。然而,透過仔細分析,可以重新建立這些數據,這使我們能夠有效地將程式重新連結回目標檔案。