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
ddisasm — Desensamblador basado en Datalog que produce ensamblador reensamblable a partir de binarios ELF/PE, con representación intermedia GTIRB para análisis y reescritura de binarios en las arquitecturas x86, ARM y MIPS. | Kitploit
Herramientas/GitHubGitHub/grammatech/ddisasm
Análisis EstáticoIngeniería InversaDepuradoresAnálisis de BinariosAnálisis de Firmware
GitHubgrammatech/ddisasm

ddisasm

Desensamblador basado en Datalog que produce ensamblador reensamblable a partir de binarios ELF/PE, con representación intermedia GTIRB para análisis y reescritura de binarios en las arquitecturas x86, ARM y MIPS.

Ver Repositorio
85368hace 1 mesRevisado 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

Desensamblado con Datalog

DDisasm es un desensamblador rápido que es lo suficientemente preciso como para que el código ensamblador resultante pueda ser reensamblado. DDisasm está implementado usando el lenguaje de programación lógica declarativa datalog (souffle) para compilar reglas y heurísticas de desensamblado. El desensamblador primero analiza la información de archivos ELF/PE y decodifica un superconjunto de instrucciones posibles para crear un conjunto inicial de hechos datalog. Estos hechos se analizan para identificar ubicación de código, simbolización y límites de funciones. Los resultados de este análisis, un conjunto refinado de hechos datalog, se traducen luego a la representación intermedia GTIRB para el análisis binario y la ingeniería inversa. El pretty printer de GTIRB puede usarse entonces para imprimir formateadamente el GTIRB a código ensamblador reensamblable.

Soporte de Binarios

Formatos binarios:

  • ELF (Linux)
  • PE (Windows)

Arquitecturas de Conjuntos de Instrucciones (ISAs):

  • x86_32
  • x86_64
  • ARM32
  • ARM64
  • MIPS32

Primeros Pasos

Puede ejecutar una versión preconstruida de Ddisasm usando Docker:

root@kitploit:~
docker pull grammatech/ddisasm:latest

Ddisasm se puede usar para desensamblar un binario en la representación GTIRB. Podemos probarlo con uno de los ejemplos incluidos en el repositorio.

Primero, inicie el contenedor Docker de Ddisasm:

root@kitploit:~
docker run -v $PWD/examples:/examples -it grammatech/ddisasm:latest

Dentro del contenedor Docker, compilemos uno de los ejemplos:

root@kitploit:~
apt update && apt install gcc -y
cd /examples/ex1
gcc ex.c -o ex

Ahora podemos proceder a desensamblar el binario:

root@kitploit:~
ddisasm ex --ir ex.gtirb

Una vez que tenga la representación GTIRB, puede realizar cambios programáticos en el binario usando GTIRB o gtirb-rewriting.

Luego, puede usar gtirb-pprinter (incluido en la imagen Docker) para producir una nueva versión del binario:

root@kitploit:~
gtirb-pprinter ex.gtirb -b ex_rewritten

Internamente, gtirb-pprinter generará un archivo ensamblador e invocará al compilador/ensamblador (por ejemplo, gcc) para producir un nuevo binario. gtirb-pprinter se encargará de generar todas las opciones de línea de comandos necesarias para generar un nuevo binario, incluyendo opciones de compilación, dependencias de bibliotecas o scripts de enlazado de versiones.

También puede usar gtirb-pprinter para generar un listado ensamblador para modificación manual:

root@kitploit:~
gtirb-pprinter ex.gtirb --asm ex.s

Este listado ensamblador puede luego recompilarse manualmente:

root@kitploit:~
gcc -nostartfiles ex.s -o ex_rewritten

Consulte nuestra documentación para obtener información adicional.

Documentación

Contribuciones

Consulte CONTRIBUTING.md

Contribuyentes Externos

  • Programming Language Group, The University of Sydney: Soporte inicial para ARM64.
  • Usuario de Github gogo2464: Refactorización de documentación.

Citar

  1. Datalog Disassembly
root@kitploit:~
@inproceedings {flores-montoya2020,
    author = {Antonio Flores-Montoya and Eric Schulte},
    title = {Datalog Disassembly},
    booktitle = {29th USENIX Security Symposium (USENIX Security 20)},
    year = {2020},
    isbn = {978-1-939133-17-5},
    pages = {1075--1092},
    url = {https://www.usenix.org/conference/usenixsecurity20/presentation/flores-montoya},
    publisher = {USENIX Association},
    month = aug,
}
  1. GTIRB
root@kitploit:~
@misc{schulte2020gtirb,
    title={GTIRB: Intermediate Representation for Binaries},
    author={Eric Schulte and Jonathan Dorn and Antonio Flores-Montoya and Aaron Ballman and Tom Johnson},
    year={2020},
    eprint={1907.02859},
    archivePrefix={arXiv},
    primaryClass={cs.PL}
}
  1. Ddisasm WIS
root@kitploit:~
@INPROCEEDINGS{11023516,
  author={Flores-Montoya, Antonio and Lim, Junghee and Seitz, Adam and Sood, Akshay and Raff, Edward and Holt, James},
  booktitle={2025 IEEE Symposium on Security and Privacy (SP)},
  title={Disassembly as Weighted Interval Scheduling with Learned Weights},
  year={2025},
  volume={},
  number={},
  pages={3033-3050},
  keywords={Measurement;Privacy;Accuracy;Heuristic algorithms;Reverse engineering;Binary codes;Benchmark testing;Scheduling;Inference algorithms;Security;disassembly;reverse engineering;learning;binary analysis},
  doi={10.1109/SP61157.2025.00192}}
Descargar herramienta