Jag försöker lära mig att använda verktyget BinDiff , men jag kan ” t räkna ut hur man öppnar två binärer för att göra jämförelsen. När jag skannar igenom manualen verkar det som om jag måste ha IDA Pro för det.
Kan jag använda BinDiff utan IDA Pro (säg, med bara IDA gratis)?
Kommentarer
- relaterat: Alternativ till BinDiff reverseengineering.stackexchange.com/q/26196/3934 ?
Svar
Ja, detta är nu möjligt med Ghidra.
Den senaste versionen, BinDiff 6 , har experimentellt stöd för Ghidra-demonteraren. Den levereras med ett tillägg som gör det möjligt att exportera Ghidra-demontering till .BinExport-format som behövs för att skilja sig.
Nödvändig programvara
- BinDiff 6 från zynamikwebbplats
- Ny Java-körtid (OpenJDK 11 eller senare)
- Ghidra 9.1.2 ( https://ghidra-sre.org/releaseNotes_9.1.2.html )
Installera Ghidra-tillägget
När du har installerat BinDiff, leta reda på ”BinExport” tillägget i installationsmappen.
Standardinställningarna är
- Windows:
C:\Program Files\BinDiff\extra\ghidra
- Linux:
/opt/bindiff/extra/ghidra
- macOS:
/Applications/BinDiff/Extra/Ghidra
Om du har hittat ghidra_BinExport.zip
-fil, tillägget kan installeras som alla andra Ghidra-tillägg:
- Starta Ghidra och välj sedan
File
|Install Extensions...
. - Klicka på
+
-knappen för attAdd extension
. -
I
Select Extension
dialog, navigera till katalogen som innehållerghidra_BinExport.zip
. -
Välj .zip klicka på
OK
- Klicka på
OK
för att bekräfta och igen för att avvisa omstartsmeddelandet. Starta sedan om Ghidra.
Användning
Den här versionen av den Java-baserade exportören för Ghidra har följande funktioner jämfört med den ursprungliga C ++ -versionen för IDA Pro:
| | Ghidra | IDA | | --------------------------------------- | ------ | --- | | Protocol Buffer based full export | ✓¹ | ✓ | | Statistics text file | - | ✓ | | Text format for debugging | - | ✓ | | BinNavi export into PostgreSQL database | - | ✓ | ¹ No operand trees
Verifiera installationsversionen
- I Ghidra väljer du
File
|Install Extensions...
. - Kontrollera att
BinExport
är listad och har rättInstall Path
Inbjudan
- I Ghidra öppnar du ett projekt eller skapar ett nytt.
- Om det inte redan är gjort, öppnar du binärt för att exportera till kodläsarverktyget och kör Ghidras första analys. Du kanske vill aktivera alternativet ”aggressiv instruktionsfunktion” för att få bättre täckning i exporten.
- I projektvyn högerklickar du på binären för att exportera och välj
Export...
- Från rullgardinsmenyn väljer du
Binary BinExport (v2) for BinDiff
- Välj en sökväg för utdatafilen. Detta kan vara det ursprungliga filnamnet, som
.BinExport
läggs till. - Klicka på
OK
.
BinDiff Exporterade filer
Exporterade filer kan nu skiljas och resultaten visas i dess användargränssnitt:
- Exportera två binärer enligt instruktionerna ovan. Följande steg förutsätter
primary.BinExport
ochsecondary.BinExport
. -
Från kommandoraden kör du BinDiff-motorn med
bindiff primary.BinExport secondary.BinExport
Detta skapar en fil
primary_vs_secondary.BinDiff
i den aktuella katalogen.bindiff
-kommandot ska vara i din systemväg. -
Starta BinDiff UI, antingen via
bindiff --ui
eller använda startprogrammet för ditt operativsystem. -
Skapa en ny arbetsyta eller öppna en befintlig.
-
Välj
Diffs
|Add Existing Diff...
. -
Under
Choose Diff
, väljprimary_vs_secondary.BinDiff
skapad i steg 2. -
Klicka på
OK
, följt avAdd
. Skillnaden visas nu i trädvyn till vänster och kan öppnas genom att dubbelklicka på den. -
Använd BinDiff normalt för att visa samtalsdiagram eller flödesdiagram för matchade funktioner .
Öppen källkod
Slutligen är BinExport-tillägget (och även IDA Pro-plugin) öppen källkod och tillgänglig på GitHub . v11
-taggen motsvarar BinDiff 6.
Kommentarer
- Tack. Jag ' Jag är så glad att bli av med beroendet av IDA Pro!