
Ghidrust:Ghidra的生鏽二進制分析擴展
狀態:發展已永久暫停。該插件處於部分可用條件。自從創建此插件以來,很少有生鏽的二進制分析功能已上游到Ghidra。
Ghidra的Rust二進制識別現在優於此插件。該插件提供的唯一其他功能是FunctionID數據庫集成以及將分解C代碼轉換為Rust Code的功能。這兩者都很片狀。
我仍然很樂意接受任何補丁或拉的請求,但是不會有任何積極的發展。隨意分叉這個項目或創建一個新項目。請讓我知道,如果您這樣做,我很樂意在此處添加您的項目鏈接。

該項目是我的研究所課程之一的一部分。有關詳細概述,請查看為課程提交的報告。以下讀數相當稀疏。
插件可以檢測到生鏽的二進製文件。要使用該功能,請單擊GhidRust -> Check if Rust binary 。它將顯示一個彈出窗口,指示它是否是生鏽的二進製文件。
| 可能不是生鏽的二進制 | 可能是生鏽的二進制 |
|---|---|
![]() | ![]() |
該插件還由RustStdAnalyzer組成,該插件分析Rust二進製文件並將功能簽名應用於二進制中的庫功能(Rust's std )。這是使用.fidb函數ID數據庫完成的。 X86-64和Rust版本1.58.1的默認數據庫已在libstd.fidb上提供。在分析剝離的鏽蝕二進制物時,這很有用。
| 沒有功能ID | 使用功能ID |
|---|---|
![]() | ![]() |
默認情況下,Rust Binaries啟用了分析儀,並且在分析儀窗口中的名稱是“檢測Rust Libstd函數” 。

到目前為止,這是一個正在進行的功能。它需要解析分解的C代碼,然後發出相應的鏽蝕代碼。完成此操作後,將來還將添加Rust宏支撐。
可以通過單擊GhidRust -> Open decompiler來訪問分解器面板。看起來如下。

提供了一個構建腳本( build.sh ),可以構建和安裝擴展名。
$ ./build.sh -h
GhidRust install script
Usage: build.sh [-i | --install] -g GHIDRA_PATH
-i | --install Install the extension
-g | --ghidra Path to Ghidra installation (usually /opt/ghidra)
-h | --help Show usage/help
您可以使用以下命令構建擴展名。
$ ./build.sh -g <GHIDRA_INSTALL_DIR>
您可以使用以下安裝標誌安裝它。
./build.sh -ig <GHIDRA_INSTALL_DIR>
要將其添加到Ghidra,只需單擊File -> Install Extensions...然後在那裡選擇Ghidrust。安裝後,您將在Ghidra工具欄中有一個GhidRust條目,可用於調用插件。
您可能需要從File -> Configure...菜單中激活它。選擇Miscellaneous部分,然後單擊Rustdecplugin旁邊的複選框。