Ik “probeer te leren hoe ik BinDiff -tool moet gebruiken, maar ik kan” t erachter komen hoe je twee binaire bestanden opent om de vergelijking te doen. Terwijl ik door hun handleiding blader, lijkt het alsof ik daarvoor IDA Pro nodig heb.
Kan ik BinDiff gebruiken zonder IDA Pro (zeg maar met IDA gratis)?
Opmerkingen
- gerelateerd: alternatieven voor BinDiff reverseengineering.stackexchange.com/q/26196/3934 ?
Antwoord
Ja, dit is nu mogelijk met Ghidra.
De laatste versie, BinDiff 6 , heeft experimentele ondersteuning voor de Ghidra-demonteermachine. Het wordt geleverd met een extensie die het mogelijk maakt om Ghidra-disassembly te exporteren naar het .BinExport-formaat dat nodig is voor differen.
Vereiste software
- BinDiff 6 van de zynamics-website
- Een recente Java-runtime (OpenJDK 11 of hoger)
- Ghidra 9.1.2 ( https://ghidra-sre.org/releaseNotes_9.1.2.html )
De Ghidra-extensie installeren
Zoek na het installeren van BinDiff de “BinExport” extensie in uw installatiemap.
De standaardinstellingen zijn
- Windows:
C:\Program Files\BinDiff\extra\ghidra
- Linux:
/opt/bindiff/extra/ghidra
- macOS:
/Applications/BinDiff/Extra/Ghidra
Als u de ghidra_BinExport.zip
bestand, de extensie kan worden geïnstalleerd zoals elke andere Ghidra-extensie:
- Start Ghidra en selecteer vervolgens
File
|Install Extensions...
. - Klik op de
+
knop voorAdd extension
. -
In het
Select Extension
dialoogvenster, navigeer naar de directory metghidra_BinExport.zip
. -
Selecteer de .zip bestand en klik op
OK
- Klik op
OK
om te bevestigen en nogmaals om het herstartbericht te sluiten. Start Ghidra vervolgens opnieuw.
Gebruik
Deze versie van de op Java gebaseerde exporteur voor Ghidra heeft de volgende kenmerken vergeleken met de native C ++ -versie voor IDA Pro:
| | Ghidra | IDA | | --------------------------------------- | ------ | --- | | Protocol Buffer based full export | ✓¹ | ✓ | | Statistics text file | - | ✓ | | Text format for debugging | - | ✓ | | BinNavi export into PostgreSQL database | - | ✓ | ¹ No operand trees
De installatieversie verifiëren
- Selecteer in Ghidra
File
|Install Extensions...
. - Controleer of
BinExport
wordt vermeld en de juisteInstall Path
Aanroep
- Open in Ghidra een project of maak een nieuw project.
- Als je dit nog niet hebt gedaan, open je het binaire bestand om te exporteren in de Code Browser-tool en voer de eerste analyse van Ghidra uit. Misschien wil je de optie “agressieve instructiezoeker” inschakelen om een betere dekking bij de export te krijgen.
- Klik in de projectweergave met de rechtermuisknop op het binaire bestand exporteer en selecteer
Export...
- Selecteer in de vervolgkeuzelijst
Binary BinExport (v2) for BinDiff
- Selecteer een pad voor het uitvoerbestand. Dit kan de originele bestandsnaam zijn, als
.BinExport
wordt toegevoegd. - Klik op
OK
.
BinDiff Geëxporteerde bestanden
Geëxporteerde bestanden kunnen nu worden gedifferentieerd en de resultaten kunnen worden weergegeven in de gebruikersinterface:
- Exporteer twee binaire bestanden volgens de bovenstaande instructies. De volgende stappen gaan uit van
primary.BinExport
ensecondary.BinExport
. -
Start de BinDiff-engine vanaf de opdrachtregel with
bindiff primary.BinExport secondary.BinExport
Dit zal een bestand
primary_vs_secondary.BinDiff
aanmaken in de huidige directory. Hetbindiff
commando zou in je systeempad moeten staan. -
Start de BinDiff UI, ofwel via
bindiff --ui
of gebruik het opstartprogramma voor uw besturingssysteem. -
Maak een nieuwe werkruimte of open een bestaande.
-
Selecteer
Diffs
|Add Existing Diff...
. -
Onder
Choose Diff
, selecteer deprimary_vs_secondary.BinDiff
gemaakt in stap 2. -
Klik op
OK
, gevolgd doorAdd
. Het verschil wordt nu weergegeven in de boomstructuur aan de linkerkant en kan worden geopend door erop te dubbelklikken. -
Gebruik BinDiff normaal om de oproepgrafiek of stroomdiagrammen van overeenkomende functies weer te geven. .
Open Source
Ten slotte is de BinExport-extensie (en ook de IDA Pro-plug-in) open source en beschikbaar op GitHub . De v11
tag komt overeen met BinDiff 6.
Opmerkingen
- Bedankt. Ik ' zou zo blij zijn dat ik niet meer afhankelijk ben van IDA Pro!