
Ghidrust:GhidraのRustバイナリ分析拡張
ステータス:開発は永久に一時停止されました。このプラグインは部分的に使用可能な状態です。このプラグインの作成以来、Ghidraに向かって上流のバイナリ分析機能はほとんどありません。
GhidraのRustバイナリ識別は、このプラグインよりも優れています。このプラグインが提供する他の唯一の機能は、機能的なデータベース統合と、逆コンパイルされたCコードをRUSTコードに変換することです。これらはどちらも非常にフレーク状です。
パッチやプルリクエストを受け入れて喜んでいますが、積極的な開発はありません。このプロジェクトをフォークするか、新しいプロジェクトを作成してください。あなたがそうするならば、私に知らせてください、私はあなたのプロジェクトのリンクを代わりにここに追加して喜んでいます。

このプロジェクトは、私の研究所のコースの1つでした。詳細な概要については、コースの提出のために作成されたレポートをご覧ください。次のREADMEはかなりまばらです。
プラグインは錆のバイナリを検出できます。この機能を使用するには、 GhidRust -> Check if Rust binaryをクリックします。それは、それが錆のバイナリであるかどうかを示すポップアップを表示します。
| さび的バイナリではないかもしれません | さび的バイナリかもしれません |
|---|---|
![]() | ![]() |
プラグインは、 RustStdAnalyzerで構成され、Rustバイナリを分析し、バイナリで見つかったライブラリ関数(Rustのstd )に関数シグネチャを適用します。これは、 .fidb関数IDデータベースを使用して行われます。 x86-64およびRustバージョン1.58.1のデフォルトデータベースがlibstd.fidbで提供されています。これは、剥がれた錆のバイナリを分析するときに役立ちます。
| 関数IDなし | 関数IDを使用 |
|---|---|
![]() | ![]() |
アナライザーはデフォルトでRust Binariesで有効になり、Analyzerウィンドウの名前は「Rust Libstd関数を検出」です。

これは今のところ進行中の機能です。分解されたCコードを解析してから、対応する錆コードを放出する必要があります。それが完了すると、Rust Macroサポートも将来追加されます。
decompilerパネルは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の横にあるチェックボックスをクリックします。