Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.1k238488h 37m 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
Scarica lo strumento
  • 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:

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

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

    root@kitploit:~
    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

    root@kitploit:~
    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:

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

    Linux o macOS:

    root@kitploit:~
    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

    Se vuoi contribuire, leggi CONTRIBUTING.md prima di inviare pull request. Puoi anche segnalare bug o richiedere funzionalità.