Benötige ich IDA Pro, um das BinDiff-Tool verwenden zu können?

Ich versuche zu lernen, wie man das BinDiff -Tool verwendet, aber ich kann “ t Finden Sie heraus, wie Sie zwei Binärdateien öffnen, um den Vergleich durchzuführen. Beim Durchblättern des Handbuchs muss ich anscheinend IDA Pro dafür haben.

Kann ich BinDiff ohne IDA Pro verwenden (z. B. mit nur IDA-frei)?

Kommentare

Antwort

Ja, dies ist jetzt mit Ghidra möglich.

Die neueste Version, BinDiff 6 hat experimentelle Unterstützung für den Ghidra-Disassembler. Es wird mit einer Erweiterung geliefert, mit der die Ghidra-Demontage in das für Abweichungen erforderliche .BinExport-Format exportiert werden kann.

Erforderliche Software

Installieren der Ghidra-Erweiterung

Suchen Sie nach der Installation von BinDiff den „BinExport“. Erweiterung in Ihrem Installationsordner.

Die Standardeinstellungen sind

  • Windows: C:\Program Files\BinDiff\extra\ghidra
  • Linux: /opt/bindiff/extra/ghidra
  • macOS: /Applications/BinDiff/Extra/Ghidra

Wenn Sie das ghidra_BinExport.zip Datei, die Erweiterung kann wie jede andere Ghidra-Erweiterung installiert werden:

  1. Starten Sie Ghidra und wählen Sie dann File | Install Extensions....
  2. Klicken Sie auf die Schaltfläche +, um Add extension anzuzeigen.
  3. In der Navigieren Sie im Dialogfeld Select Extension zu dem Verzeichnis, das ghidra_BinExport.zip enthält.

  4. Wählen Sie die ZIP-Datei aus Datei und klicken Sie auf OK

  5. Klicken Sie auf OK, um die Neustartnachricht zu bestätigen und erneut zu schließen. Starten Sie anschließend Ghidra neu.

Verwendung

Diese Version des Java-basierten Exporters für Ghidra bietet im Vergleich zur nativen C ++ – Version für IDA Pro die folgenden Funktionen:

| | Ghidra | IDA | | --------------------------------------- | ------ | --- | | Protocol Buffer based full export | ✓¹ | ✓ | | Statistics text file | - | ✓ | | Text format for debugging | - | ✓ | | BinNavi export into PostgreSQL database | - | ✓ | ¹ No operand trees 

Überprüfen der Installationsversion

  1. Wählen Sie in Ghidra File | Install Extensions....
  2. Stellen Sie sicher, dass BinExport aufgeführt ist und die richtige Install Path

Aufruf

  1. Öffnen Sie in Ghidra ein Projekt oder erstellen Sie ein neues.
  2. Wenn dies noch nicht geschehen ist, öffnen Sie die Binärdatei, in die exportiert werden soll das Code-Browser-Tool und führen Sie die erste Analyse von Ghidra aus. Möglicherweise möchten Sie die Option „Aggressiver Anweisungsfinder“ aktivieren, um eine bessere Abdeckung beim Export zu erhalten.
  3. Klicken Sie in der Projektansicht mit der rechten Maustaste auf die Binärdatei auf Exportieren und auswählen Sie Export...
  4. Wählen Sie aus der Dropdown-Liste Binary BinExport (v2) for BinDiff
  5. aus ein Pfad für die Ausgabedatei. Dies kann der ursprüngliche Dateiname sein. as .BinExport wird angehängt.
  6. Klicken Sie auf OK.

BinDiff Exportierte Dateien

Exportierte Dateien können jetzt unterschieden und die Ergebnisse in der Benutzeroberfläche angezeigt werden:

  1. Exportieren Sie zwei Binärdateien gemäß den obigen Anweisungen. Die folgenden Schritte setzen primary.BinExport und secondary.BinExport voraus.
  2. Führen Sie in der Befehlszeile die BinDiff-Engine aus mit

    bindiff primary.BinExport secondary.BinExport 

    Dadurch wird eine Datei primary_vs_secondary.BinDiff im aktuellen Verzeichnis erstellt. Der Befehl bindiff sollte sich in Ihrem Systempfad befinden.

  3. Starten Sie die BinDiff-Benutzeroberfläche entweder über bindiff --ui oder verwenden Sie den Launcher für Ihr Betriebssystem.

  4. Erstellen Sie einen neuen Arbeitsbereich oder öffnen Sie einen vorhandenen.

  5. Wählen Sie Diffs | Add Existing Diff....

  6. Unter Choose Diff, wählen Sie die in Schritt 2 erstellte primary_vs_secondary.BinDiff aus.

  7. Klicken Sie auf OK, gefolgt von Add. Das Diff wird jetzt in der Baumansicht links angezeigt und kann durch Doppelklicken geöffnet werden.

  8. Verwenden Sie BinDiff normalerweise, um das Anrufdiagramm oder die Flussdiagramme übereinstimmender Funktionen anzuzeigen .

Open Source

Schließlich ist die BinExport-Erweiterung (und auch das IDA Pro-Plugin) Open Source und verfügbar auf GitHub . Das Tag v11 entspricht BinDiff 6.

Kommentare

  • Vielen Dank. Ich ' wäre so froh, die Abhängigkeit von IDA Pro loszuwerden!

Antwort

Bindiff kann ein Plugin in IDA oder ein eigenständiges Plugin sein, aber Sie benötigen weiterhin die IDA-Datenbank, um Binärdateien zu vergleichen.

Geben Sie hier die Bildbeschreibung ein.

Kommentare

  • Ich bezweifle, dass eine IDB ohne installierte IDA geöffnet werden kann.
  • @ismael_akez: Kann ich eine Datenbankdatei ohne IDA generieren?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.