Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
bindiff — Trouvez rapidement les différences et les similitudes dans du code désassemblé. | Kitploit
Outils/GitHubGitHub/google/bindiff
Analyse StatiqueAnalyse des VulnérabilitésRétro-ingénierieAnalyse de MalwareAnalyse de BinairesArticles et RechercheApprentissage et ÉducationAnalyse de Micrologiciel
GitHubgoogle/bindiff

bindiff

Trouvez rapidement les différences et les similitudes dans du code désassemblé.

Voir le dépôt
3.1k238il y a 2 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

BinDiff Logo

Copyright 2011-2026 Google LLC.

BinDiff

Ce dépôt contient le code source de BinDiff. BinDiff est un outil open-source de comparaison de fichiers binaires pour trouver rapidement les différences et les similitudes dans le code désassemblé.

Table des matières

  • À propos de BinDiff
  • Démarrage rapide
  • Documentation
  • Codemap
  • Compilation depuis les sources
  • Licence
  • Contribuer

À propos de BinDiff

BinDiff est un outil open-source de comparaison de fichiers binaires, qui aide les chercheurs en vulnérabilités et les ingénieurs à trouver rapidement les différences et similitudes dans du code désassemblé.

Avec BinDiff, les chercheurs peuvent identifier et isoler les correctifs de vulnérabilités dans les patchs fournis par les fournisseurs. Il peut également être utilisé pour transférer des symboles et des commentaires entre les désassemblages de plusieurs versions du même binaire. Cela facilite le suivi des modifications dans le temps et permet aux organisations de conserver les résultats d’analyse et favorise le transfert de connaissances entre analystes binaires.

Cas d’utilisation

  • Comparez les fichiers binaires pour x86, MIPS, ARM, PowerPC et d’autres architectures pris en charge par les désassembleurs populaires.
  • Identifiez les fonctions identiques et similaires dans différents binaires
  • Transférez les noms de fonctions, les commentaires et les noms locaux d’un désassemblage à l’autre
  • Détectez et mettez en évidence les changements entre deux variantes de la même fonction

Démarrage rapide

Si vous souhaitez simplement commencer à utiliser BinDiff, téléchargez les paquets d’installation précompilés depuis la page des versions.

Remarque : BinDiff dépend d’un désassembleur distinct. Par défaut, il est fourni avec la prise en charge d’IDA Pro, Binary Ninja et Ghidra. La page des désassembleurs répertorie les configurations prises en charge.

Documentation

Un sous-ensemble du manuel existant est disponible dans le répertoire docs/.

Codemap

BinDiff contient les composants suivants :

  • cmake - Fichiers de build CMake déclarant les dépendances externes
  • fixtures - Une collection de fichiers de test pour mettre à l’épreuve le moteur central de BinDiff
  • ida - Intégration avec le désassembleur IDA Pro
  • java - Code source Java. Ceci contient l’interface utilisateur de diff visuel de BinDiff et sa bibliothèque utilitaire correspondante.
  • match - Algorithmes de mise en correspondance pour le moteur central de BinDiff
  • packaging - Sources des paquets d’installation
  • tools - Exécutables auxiliaires livrés avec le produit

Compilation depuis les sources

Les instructions ci-dessous devraient suffire pour compiler à la fois le code natif et les composants basés sur Java.

De plus amples instructions de compilation seront ajoutées ultérieurement. Cela inclut des Dockerfiles prêts à l’emploi et des scripts pour construire les paquets d’installation.

Code natif

BinDiff utilise CMake pour générer ses fichiers de build pour les composants constitués de code C++ natif.

Les dépendances de build suivantes sont requises :

  • BinExport 12, le plugin compagnon de BinDiff qui contient également beaucoup de code partagé
  • Boost 1.83.0 ou supérieur (une copie partielle de 1.83.0 est fournie avec BinExport et sera utilisée automatiquement)
  • CMake 3.14 ou supérieur
  • Ninja pour des builds rapides
  • GCC 15 ou une version récente de Clang sur Linux/macOS. Sous Windows, utilisez le compilateur Visual Studio 2022 et le SDK Windows pour Windows 11.
  • Git 1.8 ou supérieur
  • Dépendances qui seront téléchargées :
    • Abseil, GoogleTest, Protocol Buffers (3.14), et SQLite3
    • Binary Ninja SDK
    • IDA SDK

Les étapes de construction générales sont les mêmes sous Windows, Linux et macOS. Ce qui suit montre les commandes pour Linux.

Ensuite, configurez le répertoire de build et générez les fichiers de build :

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

Enfin, lancez la compilation effective. Les binaires seront placés dans build/ :

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

Construire sans IDA

Pour construire sans IDA, modifiez simplement l’étape de configuration ci-dessus par

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

Interface graphique Java et yFiles

La construction de l’interface graphique basée sur Java nécessite la bibliothèque commerciale tierce de visualisation de graphes yFiles pour l’affichage et la disposition des graphes. Cette bibliothèque est extrêmement puissante et difficilement remplaçable.

Pour construire, BinDiff utilise Gradle 6.x et Java 11 LTS. Reportez-vous à son guide d’installation pour les instructions d’installation.

Si vous êtes détenteur d’une licence yFiles, définissez la variable d’environnement YFILES_DIR sur un répertoire contenant les fichiers y.jar et ysvg.jar de yFiles.

Remarque : BinDiff utilise toujours l’ancienne branche 2.x de yFiles.

Ensuite, lancez Gradle pour télécharger les dépendances externes et construire :

Windows :

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

Linux ou macOS :

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

Ensuite, le répertoire ui/build/libs dans le sous-répertoire java devrait contenir l’artefact autonome bindiff-ui-all.jar, qui peut être exécuté à l’aide de la commande standard java -jar.

Lectures complémentaires / outils similaires

Les articles originaux décrivant les idées générales derrière BinDiff :

  • Thomas Dullien et 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.

Autres outils dans le même domaine :

  • Diaphora, un outil avancé de diff de programmes implémentant bon nombre des mêmes idées.
  • TurboDiff, un plugin de diff de programmes pour IDA Pro, désormais abandonné.

Projets utilisant BinDiff :

  • VxSig, un outil pour générer automatiquement des signatures d’octets AV à partir d’ensembles de binaires similaires.

Licence

BinDiff est sous licence Apache. Voir LICENSE pour plus d’informations.

Contribuer

Si vous souhaitez contribuer, veuillez lire CONTRIBUTING.md avant d’envoyer des pull requests. Vous pouvez également signaler des bugs ou soumettre des demandes de fonctionnalités.

Télécharger l’outil