Behöver jag ha IDA Pro för att använda BinDiff-verktyget?

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

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

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:

  1. Starta Ghidra och välj sedan File | Install Extensions....
  2. Klicka på + -knappen för att Add extension.
  3. I Select Extension dialog, navigera till katalogen som innehåller ghidra_BinExport.zip.

  4. Välj .zip klicka på OK

  5. 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

  1. I Ghidra väljer du File | Install Extensions....
  2. Kontrollera att BinExport är listad och har rätt Install Path

Inbjudan

  1. I Ghidra öppnar du ett projekt eller skapar ett nytt.
  2. 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.
  3. I projektvyn högerklickar du på binären för att exportera och välj Export...
  4. Från rullgardinsmenyn väljer du Binary BinExport (v2) for BinDiff
  5. Välj en sökväg för utdatafilen. Detta kan vara det ursprungliga filnamnet, som .BinExport läggs till.
  6. Klicka på OK.

BinDiff Exporterade filer

Exporterade filer kan nu skiljas och resultaten visas i dess användargränssnitt:

  1. Exportera två binärer enligt instruktionerna ovan. Följande steg förutsätter primary.BinExport och secondary.BinExport.
  2. 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.

  3. Starta BinDiff UI, antingen via bindiff --ui eller använda startprogrammet för ditt operativsystem.

  4. Skapa en ny arbetsyta eller öppna en befintlig.

  5. Välj Diffs | Add Existing Diff....

  6. Under Choose Diff, välj primary_vs_secondary.BinDiff skapad i steg 2.

  7. Klicka på OK, följt av Add. Skillnaden visas nu i trädvyn till vänster och kan öppnas genom att dubbelklicka på den.

  8. 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!

Svar

Bindiff kan vara ett plugin i IDA eller en fristående, men du behöver fortfarande IDA-databasen för att jämföra binärfiler.

ange bildbeskrivning här

Kommentarer

  • Jag tvivlar på att det kommer att kunna öppna en .idb utan IDA installerad
  • @ismael_akez: kan jag skapa en databasfil utan IDA?

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *