
Ghidrust: Rost -Binäranalyse -Erweiterung für Ghidra
Status: Die Entwicklung wurde dauerhaft durchgeführt. Dieses Plugin befindet sich in einem teilweise verwendbaren Zustand. Seit der Erstellung dieses Plugins wurden nur wenige Merkmale der Rost -Binäranalyse in Ghidra vorgelagert.
Ghidras Rost -Binäridentifikation ist diesem Plugin jetzt überlegen. Die einzigen anderen Funktionen, die dieses Plugin bietet, ist die der Funktionsintegration der Funktionsdatenbank und der Transparlung des dekompilierten C -Codes zu Rostcode. Beide sind ziemlich schuppig.
Ich werde immer noch gerne Patches annehmen oder Anfragen ziehen, aber es wird keine aktive Entwicklung geben. Fühlen Sie sich frei, dieses Projekt aufzugeben oder eine neue zu erstellen. Bitte lassen Sie mich wissen, wenn Sie dies tun, ich werde gerne den Link Ihres Projekts hier als Alternative hinzufügen.

Dieses Projekt war Teil eines meiner Institutskurse. Für einen detaillierten Überblick finden Sie einen Blick auf den Bericht, der für die Kursübermittlung erstellt wurde. Die folgende Readme ist ziemlich spärlich.
Das Plugin kann Rost -Binärdateien erkennen. Um die Funktion zu verwenden, klicken Sie auf GhidRust -> Check if Rust binary . Es wird ein Popup zeigen, das angibt, ob es sich um eine Rost -Binärin handelt oder nicht.
| Kann kein rostbinär sein | Kann ein rostbinär sein |
|---|---|
![]() | ![]() |
Das Plugin besteht auch aus RustStdAnalyzer , der Rost -Binärdateien analysiert und Funktionssignaturen auf die in der Binärdienste gefundenen Bibliotheksfunktionen (Rust's std ) analysiert. Dies erfolgt mit .fidb -Funktions -ID -Datenbank. Eine Standarddatenbank für X86-64 und Rust Version 1.58.1 wurde unter libstd.fidb bereitgestellt. Dies ist nützlich bei der Analyse von gestreiften Rost -Binärdateien.
| Ohne Funktions -ID | Mit Funktions -ID |
|---|---|
![]() | ![]() |
Der Analysator ist standardmäßig für Rost -Binärdateien aktiviert, und der Name im Analysatorfenster lautet "Rost libstd -Funktionen erkennen" .

Dies ist ab sofort eine Arbeit in der Arbeit. Es erfordert das Parsen des dekompilierten C -Codes und dann den entsprechenden Rostcode. Sobald dies erledigt ist, wird auch in Zukunft Rust -Makrounterstützung hinzugefügt.
Auf das Dekompiler -Panel kann durch Klicken auf GhidRust -> Open decompiler . Es sieht wie folgt aus.

Es gibt ein Build -Skript ( build.sh ), das die Erweiterung erstellen und installieren kann.
$ ./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
Sie können die Erweiterung mit dem folgenden Befehl erstellen.
$ ./build.sh -g <GHIDRA_INSTALL_DIR>
Sie können es mit dem folgenden Installationsflag installieren.
./build.sh -ig <GHIDRA_INSTALL_DIR>
Um es Ghidra hinzuzufügen, klicken Sie einfach auf File -> Install Extensions... und wählen Sie dort Ghidrust. Nach der Installation haben Sie einen GhidRust -Eintrag in der Ghidra -Symbolleiste, mit dem das Plugin aufgerufen werden kann.
Möglicherweise müssen Sie es aus der File -> Configure... Menü konfigurieren. Wählen Sie den Abschnitt Miscellaneous aus und klicken Sie auf das Kontrollkästchen neben Rustdecplugin .