Czy muszę mieć IDA Pro, aby korzystać z narzędzia BinDiff?

Próbuję nauczyć się korzystać z narzędzia BinDiff , ale mogę ” t dowiedzieć się, jak otworzyć dwa pliki binarne, aby wykonać porównanie. Przeglądając ich podręcznik, wydaje mi się, że potrzebuję do tego IDA Pro.

Czy mogę używać BinDiff bez IDA Pro (powiedzmy, z darmowym IDA)?

Komentarze

Odpowiedź

Tak, jest to teraz możliwe dzięki Ghidra.

Najnowsza wersja BinDiff 6 , ma eksperymentalne wsparcie dla deasemblera Ghidra. Jest dostarczany z rozszerzeniem, które umożliwia eksport demontażu Ghidry do formatu .BinExport potrzebnego do różnicowania.

Wymagane oprogramowanie

Instalowanie rozszerzenia Ghidra

Po zainstalowaniu BinDiff znajdź „BinExport” rozszerzenie w folderze instalacyjnym.

Domyślne ustawienia to

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

Jeśli znalazłeś ghidra_BinExport.zip, rozszerzenie można zainstalować jak każde inne rozszerzenie Ghidra:

  1. Uruchom Ghidra, a następnie wybierz File | Install Extensions....
  2. Kliknij przycisk +, aby Add extension.
  3. W Select Extension, przejdź do katalogu zawierającego ghidra_BinExport.zip.

  4. Wybierz plik .zip file i kliknij OK

  5. Kliknij OK, aby potwierdzić i ponownie, aby zamknąć komunikat o ponownym uruchomieniu. Następnie uruchom ponownie Ghidrę.

Użycie

Ta wersja eksportera opartego na Javie dla Ghidra ma następujące funkcje w porównaniu z natywną wersją C ++ dla IDA Pro:

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

Weryfikacja wersji instalacyjnej

  1. W Ghidrze wybierz File | Install Extensions....
  2. Sprawdź, czy BinExport jest na liście i ma poprawne Install Path

Wywołanie

  1. W Ghidrze otwórz projekt lub utwórz nowy.
  2. Jeśli jeszcze tego nie zrobiłeś, otwórz plik binarny do wyeksportowania narzędzie Code Browser i uruchom wstępną analizę Ghidry. Możesz włączyć opcję „agresywnej wyszukiwarki instrukcji”, aby uzyskać lepsze pokrycie eksportu.
  3. W widoku projektu kliknij prawym przyciskiem myszy plik binarny, eksportuj i wybierz Export...
  4. Z rozwijanej listy wybierz Binary BinExport (v2) for BinDiff
  5. Wybierz ścieżka do pliku wyjściowego. Może to być oryginalna nazwa pliku, jako .BinExport zostanie dołączony.
  6. Kliknij OK.

BinDiff Wyeksportowane pliki

Wyeksportowane pliki można teraz porównać, a wyniki wyświetlić w ich interfejsie użytkownika:

  1. Wyeksportuj dwa pliki binarne zgodnie z powyższymi instrukcjami. W poniższych krokach założono, że primary.BinExport i secondary.BinExport.
  2. Z wiersza poleceń uruchom silnik BinDiff z

    bindiff primary.BinExport secondary.BinExport 

    Spowoduje to utworzenie pliku primary_vs_secondary.BinDiff w bieżącym katalogu. Polecenie bindiff powinno znajdować się w ścieżce systemowej.

  3. Uruchom interfejs użytkownika BinDiff, albo przez bindiff --ui lub używając programu uruchamiającego dla swojego systemu operacyjnego.

  4. Utwórz nowy obszar roboczy lub otwórz istniejący.

  5. Wybierz Diffs | Add Existing Diff....

  6. Pod Choose Diff, wybierz primary_vs_secondary.BinDiff utworzony w kroku 2.

  7. Kliknij OK, po którym następuje Add. Różnica jest teraz wyświetlana w widoku drzewa po lewej stronie i można ją otworzyć, klikając ją dwukrotnie.

  8. Zwykle używaj BinDiff, aby wyświetlić wykres wywołań lub wykresy przepływu dopasowanych funkcji .

Open Source

Wreszcie rozszerzenie BinExport (a także wtyczka IDA Pro) jest open source i dostępne na GitHub . Znacznik v11 odpowiada BinDiff 6.

Komentarze

  • Dziękuję. ' byłbym bardzo zadowolony z pozbycia się zależności od IDA Pro!

Odpowiedź

Bindiff może być wtyczką w IDA lub samodzielnym, ale nadal potrzebujesz bazy danych IDA do porównywania plików binarnych.

tutaj wprowadź opis obrazu

Komentarze

  • Wątpię, czy uda się otworzyć .idb bez zainstalowanego IDA
  • @ismael_akez: czy mogę wygenerować plik bazy danych bez IDA?

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *