Jeg prøver å lære å bruke BinDiff verktøy, men jeg kan » t finne ut hvordan du åpner to binærfiler for å gjøre sammenligningen. Mens jeg blar gjennom manualen deres, virker det som om jeg trenger å ha IDA Pro for det.
Kan jeg bruke BinDiff uten IDA Pro (si, med bare IDA gratis)?
Kommentarer
- relatert: Alternativer til BinDiff reverseengineering.stackexchange.com/q/26196/3934 ?
Svar
Ja, dette er nå mulig med Ghidra.
Den siste versjonen, BinDiff 6 , har eksperimentell støtte for Ghidra-demonteren. Den leveres med en utvidelse som gjør det mulig å eksportere Ghidra-demontering til .BinExport-formatet som trengs for å skille.
Nødvendig programvare
- BinDiff 6 fra zynamics website
- En nylig Java-kjøretid (OpenJDK 11 eller nyere)
- Ghidra 9.1.2 ( https://ghidra-sre.org/releaseNotes_9.1.2.html )
Installere Ghidra Extension
Etter installasjon av BinDiff, finn «BinExport» utvidelse i installasjonsmappen.
Standardinnstillingene er
- Windows:
C:\Program Files\BinDiff\extra\ghidra
- Linux:
/opt/bindiff/extra/ghidra
- macOS:
/Applications/BinDiff/Extra/Ghidra
Hvis du har funnet ghidra_BinExport.zip
-fil, utvidelsen kan installeres som alle andre Ghidra-utvidelser:
- Start Ghidra, og velg deretter
File
|Install Extensions...
. - Klikk
+
-knappen for åAdd extension
. -
I
Select Extension
dialog, naviger til katalogen som inneholderghidra_BinExport.zip
. -
Velg .zip filen og klikk
OK
- Klikk
OK
for å bekrefte og igjen for å avvise omstartsmeldingen. Start deretter Ghidra på nytt.
Bruk
Denne versjonen av den Java-baserte eksportøren for Ghidra har følgende funksjoner sammenlignet med den opprinnelige C ++ -versjonen for IDA Pro:
| | Ghidra | IDA | | --------------------------------------- | ------ | --- | | Protocol Buffer based full export | ✓¹ | ✓ | | Statistics text file | - | ✓ | | Text format for debugging | - | ✓ | | BinNavi export into PostgreSQL database | - | ✓ | ¹ No operand trees
Bekrefte installasjonsversjonen
- I Ghidra velger du
File
|Install Extensions...
. - Bekreft at
BinExport
er oppført og har riktigInstall Path
Påkallelse
- I Ghidra åpner du et prosjekt eller oppretter et nytt.
- Hvis det ikke allerede er gjort, åpner du binæren du vil eksportere i Kodebrowser-verktøyet og kjør Ghidras første analyse. Det kan være lurt å aktivere alternativet «aggressiv instruksjonsfinner» for å få bedre dekning i eksporten.
- I prosjektvisningen høyreklikker du binæren for å eksporter og velg
Export...
- Fra rullegardinlisten velger du
Binary BinExport (v2) for BinDiff
- Velg en bane for utdatafilen. Dette kan være det originale filnavnet, som
.BinExport
blir lagt til. - Klikk
OK
.
BinDiff Eksporterte filer
Eksporterte filer kan nå skilles ut og resultatene vises i brukergrensesnittet:
- Eksporter to binære filer ved å følge instruksjonene ovenfor. Følgende trinn antar
primary.BinExport
ogsecondary.BinExport
. -
Fra kommandolinjen, kjør BinDiff-motoren med
bindiff primary.BinExport secondary.BinExport
Dette vil opprette en fil
primary_vs_secondary.BinDiff
i gjeldende katalog.bindiff
-kommandoen skal være i systemstien din. -
Start BinDiff UI, enten via
bindiff --ui
eller ved å bruke startprogrammet for operativsystemet ditt. -
Opprett et nytt arbeidsområde eller åpne et eksisterende.
-
Velg
Diffs
|Add Existing Diff...
. -
Under
Choose Diff
, velgprimary_vs_secondary.BinDiff
opprettet i trinn 2. -
Klikk
OK
, etterfulgt avAdd
. Forskjellen vises nå i trevisningen til venstre og kan åpnes ved å dobbeltklikke på den. -
Bruk BinDiff normalt til å vise anropsgrafen eller flytegrafer for samsvarende funksjoner .
Åpen kildekode
Til slutt er BinExport-utvidelsen (og også IDA Pro-plugin) åpen kildekode og tilgjengelig på GitHub . v11
-taggen tilsvarer BinDiff 6.
Kommentarer
- Takk. Jeg ' Jeg er så glad for å bli kvitt avhengigheten av IDA Pro!