
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旁边的复选框。