Jeg prøver at lære at bruge BinDiff værktøj, men jeg kan ” t finde ud af, hvordan man åbner to binære filer for at gøre sammenligningen. Mens jeg gennemgår manualen, ser det ud til at jeg har brug for IDA Pro til det.
Kan jeg bruge BinDiff uden IDA Pro (siger, med bare IDA gratis)?
Kommentarer
- relateret: Alternativer til BinDiff reverseengineering.stackexchange.com/q/26196/3934 ?
Svar
Ja, dette er nu muligt med Ghidra.
Den seneste version, BinDiff 6 , har eksperimentel støtte til Ghidra-demontereren. Den leveres med en udvidelse, der gør det muligt at eksportere Ghidra-adskillelse til .BinExport-formatet, der er nødvendigt til forskel.
Nødvendig software
- BinDiff 6 fra zynamikwebsted
- En nylig Java-runtime (OpenJDK 11 eller nyere)
- Ghidra 9.1.2 ( https://ghidra-sre.org/releaseNotes_9.1.2.html )
Installation af Ghidra Extension
Efter installation af BinDiff skal du finde “BinExport” udvidelse i din installationsmappe.
Standardindstillingerne er
- Windows:
C:\Program Files\BinDiff\extra\ghidra
- Linux:
/opt/bindiff/extra/ghidra
- macOS:
/Applications/BinDiff/Extra/Ghidra
Hvis du har fundet ghidra_BinExport.zip
fil, udvidelsen kan installeres som enhver anden Ghidra-udvidelse:
- Start Ghidra, og vælg derefter
File
|Install Extensions...
. - Klik på
+
-knappen for atAdd extension
. -
I
Select Extension
dialog, naviger til den mappe, der indeholderghidra_BinExport.zip
. -
Vælg .zip fil, og klik på
OK
- Klik på
OK
for at bekræfte og igen for at afvise genstartsmeddelelsen. Genstart derefter Ghidra.
Anvendelse
Denne version af den Java-baserede eksportør til Ghidra har følgende funktioner sammenlignet med den oprindelige C ++ -version til IDA Pro:
| | Ghidra | IDA | | --------------------------------------- | ------ | --- | | Protocol Buffer based full export | ✓¹ | ✓ | | Statistics text file | - | ✓ | | Text format for debugging | - | ✓ | | BinNavi export into PostgreSQL database | - | ✓ | ¹ No operand trees
Bekræftelse af installationsversionen
- I Ghidra skal du vælge
File
|Install Extensions...
. - Kontroller, at
BinExport
er angivet og har den korrekteInstall Path
Invokation
- I Ghidra skal du åbne et projekt eller oprette et nyt.
- Hvis det ikke allerede er gjort, skal du åbne det binære program, der skal eksporteres i kodebrowserværktøjet og kør Ghidras indledende analyse. Du vil muligvis aktivere muligheden “aggressiv instruktionsfinder” for at få bedre dækning i eksporten.
- I projektvisningen skal du højreklikke på binæren for at eksporter og vælg
Export...
- Vælg
Binary BinExport (v2) for BinDiff
- på rullelisten en sti til outputfilen. Dette kan være det originale filnavn, som
.BinExport
tilføjes. - Klik på
OK
.
BinDiff Eksporterede filer
Eksporterede filer kan nu adskilles, og resultaterne vises i dets brugergrænseflade:
- Eksporter to binære filer ved at følge instruktionerne ovenfor. Følgende trin antager
primary.BinExport
ogsecondary.BinExport
. -
Fra kommandolinjen skal du køre BinDiff-motoren med
bindiff primary.BinExport secondary.BinExport
Dette opretter en fil
primary_vs_secondary.BinDiff
i den aktuelle bibliotek. Kommandoenbindiff
skal være i din systemsti. -
Start BinDiff UI, enten via
bindiff --ui
eller ved hjælp af startprogrammet til dit operativsystem. -
Opret et nyt arbejdsområde, eller åbn et eksisterende.
-
Vælg
Diffs
|Add Existing Diff...
. -
Under
Choose Diff
, vælgprimary_vs_secondary.BinDiff
oprettet i trin 2. -
Klik
OK
efterfulgt afAdd
. Forskellen vises nu i trævisningen til venstre og kan åbnes ved at dobbeltklikke på den. -
Brug BinDiff normalt til at få vist opkaldsgrafen eller flowgraferne for matchede funktioner .
Open Source
Endelig er BinExport-udvidelsen (og også IDA Pro-plugin) open source og tilgængelig på GitHub . v11
tag svarer til BinDiff 6.
Kommentarer
- Tak. Jeg ' Jeg er så glad for at slippe af med afhængigheden af IDA Pro!