Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
bindiff — Finden Sie schnell Unterschiede und Gemeinsamkeiten in disassembliertem Code. | Kitploit
Tools/GitHubGitHub/google/bindiff
Statische AnalyseSchwachstellenanalyseReverse EngineeringMalware-AnalyseBinäranalysePapers & ForschungLernen & BildungFirmware-Analyse
GitHubgoogle/bindiff

bindiff

Finden Sie schnell Unterschiede und Gemeinsamkeiten in disassembliertem Code.

Repository anzeigen
3.1k238vor 2 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

BinDiff Logo

Copyright 2011-2026 Google LLC.

BinDiff

Dieses Repository enthält den BinDiff-Quellcode. BinDiff ist ein Open-Source-Werkzeug zum Vergleich von Binärdateien, mit dem Unterschiede und Gemeinsamkeiten in disassembliertem Code schnell gefunden werden können.

Inhaltsverzeichnis

  • Über BinDiff
  • Schnellstart
  • Dokumentation
  • Codemap
  • Erstellen aus dem Quellcode
  • Lizenz
  • Mitmachen

Über BinDiff

BinDiff ist ein Open-Source-Vergleichswerkzeug für Binärdateien, das Sicherheitsforschern und Ingenieuren hilft, schnell Unterschiede und Gemeinsamkeiten in disassembliertem Code zu finden.

Mit BinDiff können Forscher Korrekturen für Schwachstellen in vom Anbieter bereitgestellten Patches identifizieren und isolieren. Es kann auch verwendet werden, um Symbole und Kommentare zwischen Disassemblierungen mehrerer Versionen derselben Binärdatei zu übertragen. Dies erleichtert die Verfolgung von Änderungen im Laufe der Zeit, ermöglicht es Organisationen, Analyseergebnisse zu behalten und fördert den Wissenstransfer unter Binäranalysten.

Anwendungsfälle

  • Vergleichen Sie Binärdateien für x86, MIPS, ARM, PowerPC und andere Architekturen, die von gängigen Disassemblern unterstützt werden.
  • Identifizieren Sie identische und ähnliche Funktionen in verschiedenen Binärdateien
  • Übertragen Sie Funktionsnamen, Kommentare und lokale Namen von einer Disassemblierung auf die andere
  • Erkennen und Hervorheben von Änderungen zwischen zwei Varianten derselben Funktion

Schnellstart

Wenn Sie einfach mit BinDiff loslegen möchten, laden Sie vorgefertigte Installationspakete von der Releases-Seite herunter.

Hinweis: BinDiff ist auf einen separaten Disassembler angewiesen. Standardmäßig wird Unterstützung für IDA Pro, Binary Ninja und Ghidra mitgeliefert. Die Disassembler-Seite listet die unterstützten Konfigurationen auf.

Dokumentation

Ein Teil des vorhandenen Handbuchs ist im docs/-Verzeichnis verfügbar.

Codemap

BinDiff enthält die folgenden Komponenten:

  • cmake - CMake-Builddateien, die externe Abhängigkeiten deklarieren
  • fixtures - Eine Sammlung von Testdateien, um die BinDiff-Kern-Engine zu testen
  • ida - Integration in den IDA-Pro-Disassembler
  • java - Java-Quellcode. Enthält die visuelle Diff-Benutzeroberfläche von BinDiff und die zugehörige Hilfsbibliothek.
  • match - Matching-Algorithmen für die BinDiff-Kern-Engine
  • packaging - Paketquellen für die Installationspakete
  • tools - Hilfsprogramme, die mit dem Produkt ausgeliefert werden

Erstellen aus dem Quellcode

Die folgenden Anweisungen sollten ausreichen, um sowohl den nativen Code als auch die Java-basierten Komponenten zu erstellen.

Detailliertere Build-Anweisungen werden zu einem späteren Zeitpunkt hinzugefügt. Dazu gehören vorgefertigte Dockerfiles und Skripte zum Erstellen der Installationspakete.

Nativer Code

BinDiff verwendet CMake, um die Build-Dateien für die Komponenten zu erzeugen, die aus nativem C++-Code bestehen.

Die folgenden Build-Abhängigkeiten sind erforderlich:

  • BinExport 12, das Begleit-Plugin zu BinDiff, das ebenfalls viel gemeinsamen Code enthält
  • Boost 1.83.0 oder höher (eine Teilkopie von 1.83.0 ist in BinExport enthalten und wird automatisch verwendet)
  • CMake 3.14 oder höher
  • Ninja für schnelle Builds
  • GCC 15 oder eine aktuelle Version von Clang unter Linux/macOS. Unter Windows verwenden Sie den Visual-Studio-2022-Compiler und das Windows SDK für Windows 11.
  • Git 1.8 oder höher
  • Abhängigkeiten, die heruntergeladen werden:
    • Abseil, GoogleTest, Protocol Buffers (3.14) und SQLite3
    • Binary-Ninja-SDK
    • IDA-SDK

Die allgemeinen Build-Schritte sind unter Windows, Linux und macOS identisch. Im Folgenden werden die Befehle für Linux gezeigt.

Konfigurieren Sie als Nächstes das Build-Verzeichnis und erzeugen Sie die Build-Dateien:

root@kitploit:~
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release

Rufen Sie schließlich den eigentlichen Build auf. Die Binärdateien werden in build/ abgelegt:

root@kitploit:~
cmake --build build --config Release
(cd build; ctest --build-config Release --output-on-failure)
cmake --install build --config Release

Erstellen ohne IDA

Um ohne IDA zu erstellen, ändern Sie einfach den obigen Konfigurationsschritt zu:

root@kitploit:~
cmake -S . -B build/out -G Ninja -DCMAKE_BUILD_TYPE=Release \
  -DBINEXPORT_ENABLE_IDAPRO=OFF

Java-GUI und yFiles

Für die Erstellung der Java-basierten GUI ist die kommerzielle Graph-Visualisierungsbibliothek von Drittanbietern yFiles für die Anzeige und das Layout von Graphen erforderlich. Diese Bibliothek ist äußerst leistungsfähig und nicht einfach zu ersetzen.

Zum Erstellen verwendet BinDiff Gradle 6.x und Java 11 LTS. Informationen zur Installation finden Sie in der Installationsanleitung.

Wenn Sie über eine yFiles-Lizenz verfügen, setzen Sie die Umgebungsvariable YFILES_DIR auf ein Verzeichnis, das die yFiles-Dateien y.jar und ysvg.jar enthält.

Hinweis: BinDiff verwendet weiterhin den älteren 2.x-Zweig von yFiles.

Rufen Sie dann Gradle auf, um externe Abhängigkeiten herunterzuladen und zu erstellen:

Windows:

root@kitploit:~
set YFILES_DIR=<path\to\yfiles_2.17>
cd java
gradle shadowJar

Linux oder macOS:

root@kitploit:~
export YFILES_DIR=<path/to/yfiles_2.17>
cd java
gradle shadowJar

Danach sollte das Verzeichnis ui/build/libs im Unterverzeichnis java das eigenständige Artefakt bindiff-ui-all.jar enthalten, das mit dem Standardbefehl java -jar ausgeführt werden kann.

Weiterführende Literatur / Ähnliche Werkzeuge

Die ursprünglichen Veröffentlichungen, die die allgemeinen Ideen hinter BinDiff umreißen:

  • Thomas Dullien and Rolf Rolles. Graph-Based Comparison of Executable Objects. bindiffsstic05-1.pdf. SSTIC ’05, Symposium sur la Sécurité des Technologies de l’Information et des Communications. 2005.
  • Halvar Flake. Structural Comparison of Executable Objects. dimva_paper2.pdf. pp 161-173. Detection of Intrusions and Malware & Vulnerability Assessment. 2004.3-88579-375-X.

Andere Werkzeuge im gleichen Problembereich:

  • Diaphora, ein fortschrittliches Programm-Diffing-Werkzeug, das viele der gleichen Ideen umsetzt.
  • TurboDiff, ein inzwischen eingestelltes Programm-Diffing-Plugin für IDA Pro.

Projekte, die BinDiff verwenden:

  • VxSig, ein Werkzeug zur automatischen Erzeugung von AV-Byte-Signaturen aus Sammlungen ähnlicher Binärdateien.

Lizenz

BinDiff ist unter den Bedingungen der Apache-Lizenz lizenziert. Weitere Informationen finden Sie in LICENSE.

Mitmachen

Wenn Sie einen Beitrag leisten möchten, lesen Sie bitte CONTRIBUTING.md, bevor Sie Pull-Requests senden. Sie können auch Fehler melden oder Feature-Anfragen einreichen.

Tool herunterladen