Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/google/bindiff
Análisis EstáticoAnálisis de VulnerabilidadesIngeniería InversaAnálisis de MalwareAnálisis de BinariosPapers e InvestigaciónAprendizaje y EducaciónAnálisis de Firmware
GitHubgoogle/bindiff

bindiff

Encuentra rápidamente diferencias y similitudes en código desensamblado.

Ver Repositorio
3.1k238hace 2 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

BinDiff Logo

Copyright 2011-2026 Google LLC.

BinDiff

Este repositorio contiene el código fuente de BinDiff. BinDiff es una herramienta de comparación de código abierto para archivos binarios que permite encontrar rápidamente diferencias y similitudes en código desensamblado.

Tabla de contenido

  • Acerca de BinDiff
  • Inicio rápido
  • Documentación
  • Mapa de código
  • Compilación desde el código fuente
  • Licencia
  • Cómo participar

Acerca de BinDiff

BinDiff es una herramienta de comparación de código abierto para archivos binarios que ayuda a investigadores de vulnerabilidades e ingenieros a encontrar rápidamente diferencias y similitudes en código desensamblado.

Con BinDiff, los investigadores pueden identificar y aislar correcciones de vulnerabilidades en parches proporcionados por los proveedores. También se puede utilizar para transferir símbolos y comentarios entre desensamblados de múltiples versiones del mismo binario. Esto facilita el seguimiento de cambios a lo largo del tiempo, permite a las organizaciones conservar los resultados del análisis y posibilita la transferencia de conocimiento entre analistas de binarios.

Casos de uso

  • Comparar archivos binarios para x86, MIPS, ARM, PowerPC y otras arquitecturas compatibles con desensambladores populares.
  • Identificar funciones idénticas y similares en diferentes binarios
  • Transferir nombres de funciones, comentarios y nombres locales de un desensamblado a otro
  • Detectar y resaltar cambios entre dos variantes de la misma función

Inicio rápido

Si quieres empezar a usar BinDiff, descarga los paquetes de instalación precompilados desde la página de versiones.

Nota: BinDiff depende de un desensamblador independiente. De fábrica, incluye soporte para IDA Pro, Binary Ninja y Ghidra. La página de desensambladores enumera las configuraciones compatibles.

Documentación

Un subconjunto del manual existente está disponible en el directorio docs/.

Mapa de código

BinDiff contiene los siguientes componentes:

  • cmake - Archivos de compilación de CMake que declaran dependencias externas
  • fixtures - Una colección de archivos de prueba para ejercitar el motor principal de BinDiff
  • ida - Integración con el desensamblador IDA Pro
  • java - Código fuente de Java. Contiene la interfaz de usuario de diff visual de BinDiff y su biblioteca de utilidades correspondiente.
  • match - Algoritmos de coincidencia para el motor principal de BinDiff
  • packaging - Fuentes de paquetes para los paquetes de instalación
  • tools - Ejecutables auxiliares que se incluyen con el producto

Compilación desde el código fuente

Las instrucciones a continuación deberían ser suficientes para compilar tanto el código nativo como los componentes basados en Java.

Se añadirán instrucciones de compilación más detalladas en una fecha posterior. Esto incluye Dockerfiles ya preparados y scripts para compilar los paquetes de instalación.

Código nativo

BinDiff usa CMake para generar sus archivos de compilación para aquellos componentes que consisten en código C++ nativo.

Se requieren las siguientes dependencias de compilación:

  • BinExport 12, el plugin complementario de BinDiff que también contiene gran cantidad de código compartido
  • Boost 1.83.0 o superior (una copia parcial de 1.83.0 se incluye con BinExport y se usará automáticamente)
  • CMake 3.14 o superior
  • Ninja para compilaciones rápidas
  • GCC 15 o una versión reciente de Clang en Linux/macOS. En Windows, usa el compilador de Visual Studio 2022 y el Windows SDK para Windows 11.
  • Git 1.8 o superior
  • Dependencias que se descargarán:
    • Abseil, GoogleTest, Protocol Buffers (3.14) y SQLite3
    • Binary Ninja SDK
    • IDA SDK

Los pasos generales de compilación son los mismos en Windows, Linux y macOS. Lo siguiente muestra los comandos para Linux.

A continuación, configura el directorio de compilación y genera los archivos de compilación:

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

Finalmente, invoca la compilación real. Los binarios se colocarán en build/:

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

Compilación sin IDA

Para compilar sin IDA, simplemente cambia el paso de configuración anterior a

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

GUI de Java y yFiles

La compilación de la GUI basada en Java requiere la biblioteca comercial de visualización de grafos de terceros yFiles para la visualización y el diseño de grafos. Esta biblioteca es inmensamente potente y no es fácilmente reemplazable.

Para compilar, BinDiff usa Gradle 6.x y Java 11 LTS. Consulta su guía de instalación para obtener instrucciones sobre cómo instalarlo.

Suponiendo que eres titular de una licencia de yFiles, establece la variable de entorno YFILES_DIR en un directorio que contenga y.jar y ysvg.jar de yFiles.

Nota: BinDiff todavía usa la rama 2.x anterior de yFiles.

Luego invoca Gradle para descargar las dependencias externas y compilar:

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

Después, el directorio ui/build/libs en el subdirectorio java debería contener el artefacto autónomo bindiff-ui-all.jar, que se puede ejecutar con el comando estándar java -jar.

Lecturas adicionales / Herramientas similares

Los artículos originales que describen las ideas generales detrás de 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.

Otras herramientas en el mismo espacio de problema:

  • Diaphora, una herramienta avanzada de diffing de programas que implementa muchas de las mismas ideas.
  • TurboDiff, un plugin de diffing de programas para IDA Pro actualmente desaparecido.

Proyectos que usan BinDiff:

  • VxSig, una herramienta para generar automáticamente firmas de bytes antivirus a partir de conjuntos de binarios similares.

Licencia

BinDiff está licenciado bajo los términos de la licencia Apache. Consulta LICENSE para obtener más información.

Cómo participar

Si quieres contribuir, lee CONTRIBUTING.md antes de enviar pull requests. También puedes informar de errores o solicitar nuevas funciones.

Descargar herramienta