Frage

Gibt es eine Möglichkeit, den Unterschied zwischen zwei binären DLL -Dateien anzuzeigen? Ich habe PDBS für beide.

Idealerweise würde ich gerne sehen:

  • Welche Funktionen wurden hinzugefügt
  • Welche Funktionen wurden entfernt?
  • Welche Funktionen wurden modifiziert (mit einem Unterschied der Demontage)
  • Welche anderen Einträge (statische Variablen, Ressourcen usw.) wurden hinzugefügt/entfernt/geändert

Hinweis: Dies unterscheidet sich von diese Frage Da ich mit einheimischen DLLs zu tun habe.

War es hilfreich?

Lösung

Wenn Sie ausführbare Dateien vergleichen möchten, haben Sie einige Alternativen:

  • Bindiff: Es ist eine kommerzielle Erweiterung für den kommerziellen Disassembler Ida Pro. Es ist ein de-facto-Werkzeug für Reverse Engineering. Gemäß der Beschreibung der Verkäufer können Sie:
    • Identifizieren Sie identische und ähnliche Funktionen in verschiedenen Binärdateien
    • Portfunktionsnamen, vordere und hintere Kommentarlinien, Standardkommentare und lokale Namen von einer Demontage zum anderen
    • Erkenne und markierst Änderungen zwischen zwei Varianten derselben Funktion

http://www.zynamics.com/bindiff.html

  • Sie haben immer noch eine kostenlose Alternative: Patchdiff. Als Bindiff ist es auch ein Plugin für IDA Pro. Nach Angaben des Entwicklers kann Patchdiff die folgenden Aufgaben ausführen:
    • Zeigen Sie die Liste der identischen Funktionen an
    • Zeigen Sie die Liste der übereinstimmenden Funktionen an
    • Zeigen Sie die Liste der unerreichten Funktionen an (mit dem CRC)
    • Zeigen Sie ein Flussdiagramm für identische und übereinstimmende Funktionen an

http://cgi.tenablescurity.com/tenable/patchdiff.php

Andere Tipps

Ein "Low -Tech" -Ansatz (keine Demontage) wäre zu verwenden DUMPBIN /ALL (Oder einen anderen Switch, je nachdem, was Sie genau wissen möchten) auf den DLLs und vergleiche einen Text im Ergebnis.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top