Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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.1k238há 2 diasRevisado pelo Kitploit

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
Site

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:

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

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

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

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

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

Se quiser contribuir, por favor leia CONTRIBUTING.md antes de enviar pull requests. Também pode reportar bugs ou solicitar funcionalidades.

Baixar ferramenta