Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
bindiff — Trova rapidamente differenze e somiglianze nel codice disassemblato. | Kitploit
Strumenti/GitHubGitHub/google/bindiff
Analisi StaticaAnalisi delle VulnerabilitàReverse EngineeringAnalisi MalwareAnalisi di BinariPaper e RicercaApprendimento e FormazioneAnalisi del Firmware
GitHubgoogle/bindiff

bindiff

Trova rapidamente differenze e somiglianze nel codice disassemblato.

Vedi Repository
3.1k2386811 giorni faRevisionato da Kitploit
Sito web

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Logo BinDiff

Copyright 2011-2026 Google LLC.

BinDiff

Questo repository contiene il codice sorgente di BinDiff. BinDiff è uno strumento open-source di confronto per file binari, che consente di individuare rapidamente differenze e somiglianze nel codice disassemblato.

Indice

  • Informazioni su BinDiff
  • Avvio rapido
  • Documentazione
  • Mappa del codice
  • Compilazione dal codice sorgente
  • Licenza
  • Come collaborare

Informazioni su BinDiff

BinDiff è uno strumento open-source di confronto per file binari che assiste ricercatori di vulnerabilità e ingegneri nell'individuare rapidamente differenze e somiglianze nel codice disassemblato.

Con BinDiff, i ricercatori possono identificare e isolare le correzioni per le vulnerabilità nelle patch fornite dai vendor. Può anche essere utilizzato per trasferire simboli e commenti tra disassemblazioni di più versioni dello stesso binario. Questo rende più semplice monitorare le modifiche nel tempo e consente alle organizzazioni di conservare i risultati delle analisi, favorendo il trasferimento di conoscenze tra gli analisti di binari.

Casi d'uso

  • Confrontare file binari per x86, MIPS, ARM, PowerPC e altre architetture supportate dai disassemblatori più diffusi.
  • Identificare funzioni identiche e simili in binari diversi
  • Trasferire nomi di funzioni, commenti e nomi locali da una disassemblazione all'altra
  • Rilevare ed evidenziare le modifiche tra due varianti della stessa funzione

Avvio rapido

Se vuoi semplicemente iniziare a usare BinDiff, scarica i pacchetti di installazione precompilati dalla pagina delle release.

Nota: BinDiff dipende da un disassemblatore separato. Di serie, include il supporto per IDA Pro, Binary Ninja e Ghidra. La pagina dei disassemblatori elenca le configurazioni supportate.

Documentazione

Una parte del manuale esistente è disponibile nella directory docs/.

Mappa del codice

BinDiff contiene i seguenti componenti:

  • cmake - File di build CMake che dichiarano le dipendenze esterne
  • fixtures - Una raccolta di file di test per esercitare il motore principale di BinDiff
  • ida - Integrazione con il disassemblatore IDA Pro
  • java - Codice sorgente Java. Contiene l'interfaccia utente di diff visivo di BinDiff e la relativa libreria di utilità.
  • match - Algoritmi di corrispondenza per il motore principale di BinDiff
  • packaging - Sorgenti dei pacchetti per i pacchetti di installazione
  • tools - Eseguibili di supporto forniti con il prodotto

Compilazione dal codice sorgente

Le istruzioni seguenti dovrebbero essere sufficienti per compilare sia il codice nativo sia i componenti basati su Java.

Istruzioni di compilazione più dettagliate verranno aggiunte in seguito. Ciò include Dockerfile già pronti e script per la creazione dei pacchetti di installazione.

Codice nativo

BinDiff usa CMake per generare i propri file di build per i componenti costituiti da codice C++ nativo.

Sono richieste le seguenti dipendenze di build:

  • BinExport 12, il plugin complementare di BinDiff che contiene anche molto codice condiviso
  • Boost 1.83.0 o superiore (una copia parziale della 1.83.0 è inclusa in BinExport e verrà utilizzata automaticamente)
  • CMake 3.14 o superiore
  • Ninja per build veloci
  • GCC 15 o una versione recente di Clang su Linux/macOS. Su Windows, usa il compilatore Visual Studio 2022 e Windows SDK per Windows 11.
  • Git 1.8 o superiore
  • Dipendenze che verranno scaricate:
    • Abseil, GoogleTest, Protocol Buffers (3.14) e SQLite3
    • Binary Ninja SDK
    • IDA SDK

I passaggi generali di build sono gli stessi su Windows, Linux e macOS. Di seguito vengono mostrati i comandi per Linux.

Quindi, configura la directory di build e genera i file di build:

cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release

Infine, avvia la build effettiva. I binari verranno inseriti in build/:

cmake --build build --config Release
(cd build; ctest --build-config Release --output-on-failure)
cmake --install build --config Release

Compilazione senza IDA

Per compilare senza IDA, modifica semplicemente il passaggio di configurazione precedente in

cmake -S . -B build/out -G Ninja -DCMAKE_BUILD_TYPE=Release \
  -DBINEXPORT_ENABLE_IDAPRO=OFF

GUI Java e yFiles

La creazione della GUI basata su Java richiede la libreria commerciale di terze parti per la visualizzazione di grafi yFiles per la visualizzazione e il layout dei grafi. Questa libreria è estremamente potente e non facilmente sostituibile.

Per la build, BinDiff usa Gradle 6.x e Java 11 LTS. Fai riferimento alla sua guida all'installazione per le istruzioni su come installarlo.

Supponendo che tu sia un possessore di licenza di yFiles, imposta la variabile d'ambiente YFILES_DIR su una directory che contiene i file yFiles y.jar e ysvg.jar.

Nota: BinDiff usa ancora il ramo 2.x più vecchio di yFiles.

Quindi invoca Gradle per scaricare le dipendenze esterne e compilare:

Windows:

set YFILES_DIR=<path\to\yfiles_2.17>
cd java
gradle shadowJar

Linux o macOS:

export YFILES_DIR=<path/to/yfiles_2.17>
cd java
gradle shadowJar

Successivamente, la directory ui/build/libs nella sotto-directory java dovrebbe contenere l'artefatto autonomo bindiff-ui-all.jar, che può essere eseguito usando il comando standard java -jar.

Letture aggiuntive / Strumenti simili

Gli articoli originali che delineano le idee generali alla base di BinDiff:

  • 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.

Altri strumenti nello stesso ambito:

  • Diaphora, uno strumento avanzato di diffing dei programmi che implementa molte delle stesse idee.
  • TurboDiff, un plugin di diffing dei programmi per IDA Pro ormai discontinuato.

Progetti che usano BinDiff:

  • VxSig, uno strumento per generare automaticamente firme di byte antivirus da insiemi di binari simili.

Licenza

BinDiff è concesso in licenza secondo i termini della licenza Apache. Vedi LICENSE per maggiori informazioni.

Come collaborare

Scarica lo strumento