it-swarm.com.de

Was ist der Unterschied zwischen Ghidra und Ida?

Gibt es einen Vergleich zwischen Ghidra und Ida? Gibt es bestimmte Features und Funktionen, die Ghidra während Ida nicht hat? Gibt es eine gute Quelle (am besten ein Buch), die Ghidra ausführlich erklärt?

17
Avi

Dies ist weitgehend subjektiv, aber:

  • Ghidra ist kostenlos und Open Source auf GitHub , einschließlich des Dekompilers. IDA ist sehr teuer, insbesondere wenn Sie mit dem Hinzufügen der Dekompilerlizenzen beginnen.
  • IDA unterstützt einige Architekturen, die Ghidra nicht unterstützt, und umgekehrt.
  • IDA hat einen Debugger, Ghidra nicht.
  • Ghidra hat die Möglichkeit, mehrere Binärdateien gleichzeitig in ein Projekt zu laden, während die IDA-Unterstützung dafür begrenzt und meist ein hässlicher Hack ist. Dies bedeutet, dass Sie Code zwischen einer Anwendung und ihren Bibliotheken einfacher verfolgen können.
  • Der Disassembler von Ghidra verfügt über eine integrierte Datenflussanalyse, die Ihnen zeigt, woher Daten stammen können, wenn Sie auf ein Register oder eine Variable klicken. IDA hat eine "dumme" Textmarkierung, um andere Verwendungen dieses Registers anzuzeigen. Diese Funktionen sind leicht unterschiedliche Implementierungen desselben Konzepts und haben beide ihre Verwendung.
  • Ghidra verfügt über kollaborative Disassemblierungs-/Dekompiliererprojekte, die von Entwurf integriert sind, während IDA Plugins für die Zusammenarbeit erfordert und die IDA-Datenbankdateien nicht für die gemeinsame Nutzung ausgelegt sind.
  • Ghidra hat einen Rückgängig-Button! Und es funktioniert! (IDA nicht und es ist super nervig)
  • IDA ist viel ausgereifter und hat viele kleine Funktionen, die im Laufe der Jahre hinzugefügt wurden und die Ghidra (noch) nicht spiegeln kann.
  • Da IDA ein ausgereifteres und allgegenwärtigeres Produkt ist, gibt es viele Open-Source-Tools, die darauf aufbauen.
  • Ghidra scheint eine bessere Unterstützung für sehr große (1 GB +) Firmware-Images mit anständiger Leistung zu haben. Es gibt auch keine Probleme bei der Analyse von Firmware-Images, die große Speicherbereiche deklarieren. IDA hatte historisch gesehen Probleme damit und es kann ziemlich frustrierend sein.
  • Anekdotisch ist Ghidras Unterstützung für das Zerlegen von Windows-Betriebssystem-Binärdateien (z. B. kernelbase.dll) derzeit aufgrund einiger Fehler mit dem x86-Befehlsdecoder unterbrochen. Es gibt Probleme auf GitHub, die darüber sprechen.

Diese Punkte gelten zum Zeitpunkt des Schreibens (März 2019), können sich jedoch im Laufe der Zeit ändern.

28
Polynomial

edit 2020-04-07: The Ghidra Book wird voraussichtlich im Juli 2020 veröffentlicht. Derzeit sind nur die ersten 8 Kapitel in Form eines PDFs mit frühem Zugriff verfügbar.

Diese Frage ist besser geeignet für https://reverseengineering.stackexchange.com/questions/ .

Gibt es einen Vergleich zwischen Ghidra und Ida?

Ja da ist. Eine davon wurde von Jeremy Blackthorne und Alexei Bulazel auf der Infiltrate-Sicherheitskonferenz 2019 erstellt.

Gibt es bestimmte Features und Funktionen, die Ghidra während Ida nicht hat?

Hier sind Folien aus der Präsentation, die Ghidra, IDA und Binary Ninja vergleichen:

  • 3-Wege-Vergleich

    (IDA vs Binary Ninja vs Ghidra

  • Dekompiler: IDA Hex-Rays vs Ghidra

    (IDA Hex-Rays vs Ghidra

  • Zwischensprache: Binary Ninja vs Ghidra

    (ILs: Binary Ninja vs Ghidra

    Gibt es eine gute Quelle (am besten ein Buch), die Ghidra ausführlich erklärt?

Noch kein Buch.

Ein paar wichtige Punkte:

  • Ghidra kann erweitert werden, um jede Architektur zu unterstützen. Unterstützung für eine Architektur kann über Schlitten hinzugefügt werden
  • IDA wurde überarbeitet, um eine Rückgängig-Funktion in Version 7.3 aufzunehmen
5
julian