Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
bindiff — Encontre rapidamente diferenças e similaridades em código desassemblado. | Kitploit
Ferramentas/GitHubGitHub/google/bindiff
Análise EstáticaAnálise de VulnerabilidadesEngenharia ReversaAnálise de MalwareAnálise de BináriosPapers e PesquisaAprendizado e EducaçãoAnálise de Firmware
GitHubgoogle/bindiff

bindiff

Encontre rapidamente diferenças e similaridades em código desassemblado.

Ver Repositório
3.1k23868há 12 diasRevisado pelo Kitploit
Site

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

BinDiff Logo

Copyright 2011-2026 Google LLC.

BinDiff

Este repositório contém o código-fonte do BinDiff. O BinDiff é uma ferramenta de comparação de código aberto para ficheiros binários que permite encontrar rapidamente diferenças e semelhanças em código desassemblado.

Table of Contents

  • Sobre o BinDiff
  • Início Rápido
  • Documentação
  • Mapa de Código
  • Construir a partir do Código Fonte
  • Licença
  • Como Participar

About BinDiff

BinDiff é uma ferramenta de comparação de código aberto para ficheiros binários, que ajuda investigadores e engenheiros de vulnerabilidades a encontrar rapidamente diferenças e semelhanças em código desassemblado.

Com o BinDiff, os investigadores podem identificar e isolar correções para vulnerabilidades em patches fornecidos por fornecedores. Também pode ser usado para transferir símbolos e comentários entre desassemblagens de múltiplas versões do mesmo binário. Isto facilita o acompanhamento de alterações ao longo do tempo e permite que as organizações retenham resultados de análise e possibilita a transferência de conhecimento entre analistas de binários.

Casos de Uso

  • Comparar ficheiros binários para x86, MIPS, ARM, PowerPC e outras arquiteturas suportadas por desassembladores populares.
  • Identificar funções idênticas e semelhantes em diferentes binários
  • Transferir nomes de funções, comentários e nomes locais de uma desassemblagem para outra
  • Detetar e realçar alterações entre duas variantes da mesma função

Quickstart

Se quiser apenas começar a usar o BinDiff, descarregue os pacotes de instalação pré-construídos a partir da página de lançamentos.

Nota: O BinDiff depende de um desassemblador separado. De fábrica, ele vem com suporte para IDA Pro, Binary Ninja e Ghidra. A página de desassembladores lista as configurações suportadas.

Documentation

Um subconjunto do manual existente está disponível no diretório docs/.

Codemap

O BinDiff contém os seguintes componentes:

  • cmake - Ficheiros de compilação CMake que declaram dependências externas
  • fixtures - Uma coleção de ficheiros de teste para exercitar o motor principal do BinDiff
  • ida - Integração com o desassemblador IDA Pro
  • java - Código-fonte Java. Contém a interface de utilizador de diff visual do BinDiff e a sua biblioteca de utilitários correspondente.
  • match - Algoritmos de correspondência para o motor principal do BinDiff
  • packaging - Fontes de pacotes para os pacotes de instalação
  • tools - Executáveis auxiliares que são enviados com o produto

Building from Source

As instruções abaixo devem ser suficientes para construir tanto o código nativo como os componentes baseados em Java.

Instruções de construção mais detalhadas serão adicionadas numa data posterior. Isto inclui Dockerfiles pré-construídos e scripts para construir os pacotes de instalação.

Código nativo

O BinDiff usa CMake para gerar os seus ficheiros de compilação para os componentes que consistem em código C++ nativo.

As seguintes dependências de compilação são necessárias:

  • BinExport 12, o plugin companheiro do BinDiff que também contém muito código partilhado
  • Boost 1.83.0 ou superior (uma cópia parcial do 1.83.0 acompanha o BinExport e será usada automaticamente)
  • CMake 3.14 ou superior
  • Ninja para compilações rápidas
  • GCC 15 ou uma versão recente do Clang no Linux/macOS. No Windows, use o compilador Visual Studio 2022 e o Windows SDK para Windows 11.
  • Git 1.8 ou superior
  • Dependências que serão descarregadas:
    • Abseil, GoogleTest, Protocol Buffers (3.14) e SQLite3
    • SDK do Binary Ninja
    • IDA SDK

Os passos gerais de compilação são os mesmos no Windows, Linux e macOS. O seguinte mostra os comandos para Linux.

De seguida, configure o diretório de compilação e gere os ficheiros de compilação:

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

Finalmente, invoque a compilação propriamente dita. Os binários serão colocados em build/:

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

Construir sem IDA

Para construir sem IDA, simplesmente altere o passo de configuração acima para

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

GUI Java e yFiles

Construir a GUI baseada em Java requer a biblioteca comercial de visualização de grafos de terceiros yFiles para exibição e layout de grafos. Esta biblioteca é imensamente poderosa e não é facilmente substituível.

Para construir, o BinDiff usa Gradle 6.x e Java 11 LTS. Consulte o seu guia de instalação para instruções sobre como instalar.

Assumindo que é um detentor de licença yFiles, defina a variável de ambiente YFILES_DIR para um diretório que contenha os ficheiros y.jar e ysvg.jar do yFiles.

Nota: O BinDiff ainda usa o ramo mais antigo 2.x do yFiles.

Depois invoque o Gradle para descarregar dependências externas e construir:

Windows:

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

Linux ou macOS:

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

Posteriormente, o diretório ui/build/libs no subdiretório java deve conter o artefacto auto-contido bindiff-ui-all.jar, que pode ser executado usando o comando padrão java -jar.

Leitura adicional / Ferramentas semelhantes

Os artigos originais que descrevem as ideias gerais por trás do 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.

Outras ferramentas no mesmo espaço de problema:

  • Diaphora, uma ferramenta avançada de diffing de programas que implementa muitas das mesmas ideias.
  • TurboDiff, um plugin de diffing de programas agora extinto para IDA Pro.

Projetos que usam BinDiff:

  • VxSig, uma ferramenta para gerar automaticamente assinaturas de bytes de antivírus a partir de conjuntos de binários semelhantes.

License

O BinDiff está licenciado sob os termos da licença Apache. Consulte LICENSE para mais informações.

Getting Involved

Baixar ferramenta