
Ghidrust: Rust Binary Analysis Extension pour Ghidra
Statut: Le développement a été interrompu en permanence. Ce plugin est dans un état partiellement utilisable. Peu de caractéristiques d'analyse binaire de la rouille ont été amont à Ghidrera depuis la création de ce plugin.
L'identification binaire de la rouille de Ghidra est désormais supérieure à ce plugin. Les seules autres fonctionnalités que ce plugin fournit est celle de l'intégration de la base de données fonctionID et de transborder le code C décompilé à Rust Code. Les deux sont assez squameux.
Je serai toujours heureux d'accepter des correctifs ou des demandes de traction, mais il n'y aura pas de développement actif. N'hésitez pas à alimenter ce projet ou à en créer un nouveau. Veuillez me faire savoir si vous le faites, je serai heureux d'ajouter le lien de votre projet ici comme alternative.

Ce projet faisait partie de l'un de mes cours de l'institut. Pour un aperçu détaillé, veuillez consulter le rapport créé pour la soumission du cours. La lecture suivante est assez rare.
Le plugin peut détecter les binaires de rouille. Pour utiliser la fonctionnalité, cliquez sur GhidRust -> Check if Rust binary . Il montrera une fenêtre contextuelle indiquant s'il s'agit d'un binaire de rouille ou non.
| Peut ne pas être un binaire rouille | Peut être un binaire rouille |
|---|---|
![]() | ![]() |
Le plugin se compose également de RustStdAnalyzer qui analyse les binaires de rouille et applique des signatures de fonction aux fonctions de la bibliothèque (Rust's std ) trouvées dans le binaire. Cela se fait à l'aide de la base de données d'ID de fonction .fidb . Une base de données par défaut pour X86-64 et Rust Version 1.58.1 a été fournie sur libstd.fidb . Ceci est utile lors de l'analyse des binaires de rouille dépouillés.
| Sans ID de fonction | Avec ID de fonction |
|---|---|
![]() | ![]() |
L'analyseur est activé par défaut pour les binaires de rouille, et son nom dans la fenêtre de l'analyseur est "Detect Rust Libstd Fonctions" .

Il s'agit d'une fonctionnalité de travail en cours à ce jour. Il nécessite l'analyse du code C décompilé, puis émettant le code de rouille correspondant. Une fois cela fait, le support de macro de rouille sera également ajouté à l'avenir.
Le panneau de décompilateur est accessible en cliquant sur GhidRust -> Open decompiler . Il semble comme suit.

Il y a un script de construction fourni ( build.sh ) qui peut construire et installer l'extension.
$ ./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
Vous pouvez créer l'extension à l'aide de la commande suivante.
$ ./build.sh -g <GHIDRA_INSTALL_DIR>
Vous pouvez l'installer en utilisant l'indicateur d'installation comme suit.
./build.sh -ig <GHIDRA_INSTALL_DIR>
Pour l'ajouter à Ghidra, cliquez simplement sur File -> Install Extensions... et choisissez-y Ghidrust. Une fois installé, vous aurez une entrée GhidRust dans la barre d'outils Ghidra qui peut être utilisée pour invoquer le plugin.
Vous devrez peut-être l'activer à partir du menu File -> Configure... Choisissez la section Miscellaneous et cliquez sur la case à côté de RustDecplugin .