Jessaie dapprendre à utiliser loutil BinDiff , mais je peux » t comprendre comment ouvrir deux binaires pour faire la comparaison. En parcourant leur manuel, il semble que jai besoin dIDA Pro pour cela.
Puis-je utiliser BinDiff sans IDA Pro (disons, avec juste IDA gratuit)?
Commentaires
- liés: Alternatives à BinDiff reverseengineering.stackexchange.com/q/26196/3934 ?
Réponse
Oui, cest désormais possible avec Ghidra.
La dernière version, BinDiff 6 , a un support expérimental pour le désassembleur Ghidra. Il est livré avec une extension qui permet dexporter le désassemblage de Ghidra au format .BinExport nécessaire pour les différences.
Logiciel requis
- BinDiff 6 depuis le site Web zynamics
- Un runtime Java récent (OpenJDK 11 ou version ultérieure)
- Ghidra 9.1.2 ( https://ghidra-sre.org/releaseNotes_9.1.2.html )
Installation de lextension Ghidra
Après avoir installé BinDiff, localisez le « BinExport » dans votre dossier dinstallation.
Les valeurs par défaut sont
- Windows:
C:\Program Files\BinDiff\extra\ghidra
- Linux:
/opt/bindiff/extra/ghidra
- macOS:
/Applications/BinDiff/Extra/Ghidra
Si vous avez localisé le ghidra_BinExport.zip
, lextension peut être installée comme nimporte quelle autre extension Ghidra:
- Démarrez Ghidra, puis sélectionnez
File
|Install Extensions...
. - Cliquez sur le bouton
+
pourAdd extension
. -
Dans le
Select Extension
, accédez au répertoire contenantghidra_BinExport.zip
. -
Sélectionnez le .zip et cliquez sur
OK
- Cliquez sur
OK
pour confirmer et à nouveau pour ignorer le message de redémarrage. Redémarrez ensuite Ghidra.
Utilisation
Cette version de lexportateur Java pour Ghidra présente les fonctionnalités suivantes par rapport à la version C ++ native pour IDA Pro:
| | Ghidra | IDA | | --------------------------------------- | ------ | --- | | Protocol Buffer based full export | ✓¹ | ✓ | | Statistics text file | - | ✓ | | Text format for debugging | - | ✓ | | BinNavi export into PostgreSQL database | - | ✓ | ¹ No operand trees
Vérification de la version dinstallation
- Dans Ghidra, sélectionnez
File
|Install Extensions...
. - Vérifiez que
BinExport
est répertorié et a le bonInstall Path
Invocation
- Dans Ghidra, ouvrez un projet ou créez-en un nouveau.
- Si ce nest déjà fait, ouvrez le binaire à exporter dans l’outil Navigateur de code et exécutez l’analyse initiale de Ghidra. Vous pouvez activer l’option « Recherche d’instructions agressives » pour obtenir une meilleure couverture lors de l’exportation.
- Dans la vue du projet, cliquez avec le bouton droit sur le binaire pour exporter et sélectionner
Export...
- Dans la liste déroulante, sélectionnez
Binary BinExport (v2) for BinDiff
- Sélectionnez un chemin daccès au fichier de sortie. Il peut sagir du nom de fichier dorigine, comme
.BinExport
sera ajouté. - Cliquez sur
OK
.
BinDiff Fichiers exportés
Les fichiers exportés peuvent maintenant être modifiés et les résultats affichés dans son interface utilisateur:
- Exportez deux binaires en suivant les instructions ci-dessus. Les étapes suivantes supposent
primary.BinExport
etsecondary.BinExport
. -
À partir de la ligne de commande, exécutez le moteur BinDiff avec
bindiff primary.BinExport secondary.BinExport
Cela créera un fichier
primary_vs_secondary.BinDiff
dans le répertoire courant. La commandebindiff
doit être dans votre chemin daccès système. -
Lancez linterface utilisateur BinDiff, soit via
bindiff --ui
ou en utilisant le lanceur de votre système dexploitation. -
Créez un nouvel espace de travail ou ouvrez-en un existant.
-
Sélectionnez
Diffs
|Add Existing Diff...
. -
Sous
Choose Diff
, sélectionnez leprimary_vs_secondary.BinDiff
créé à létape 2. -
Cliquez sur
OK
, suivi deAdd
. Le diff est maintenant affiché dans larborescence à gauche et peut être ouvert en double-cliquant dessus. -
Utilisez BinDiff normalement pour afficher le graphe dappel ou les graphes de flux des fonctions correspondantes .
Open Source
Enfin, lextension BinExport (ainsi que le plugin IDA Pro) est open source et disponible sur GitHub . La balise v11
correspond à BinDiff 6.
Commentaires
- Merci. Je ' serais si heureux de me débarrasser de la dépendance à IDA Pro!