Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ddisasm — Désassembleur basé sur Datalog produisant un assemblage réassemblable à partir de binaires ELF/PE, avec représentation intermédiaire GTIRB pour l'analyse et la réécriture de binaires sur les architectures x86, ARM et MIPS. | Kitploit
Outils/GitHubGitHub/grammatech/ddisasm
Analyse StatiqueRétro-ingénierieDébogueursAnalyse de BinairesAnalyse de Micrologiciel
GitHubgrammatech/ddisasm

ddisasm

Désassembleur basé sur Datalog produisant un assemblage réassemblable à partir de binaires ELF/PE, avec représentation intermédiaire GTIRB pour l'analyse et la réécriture de binaires sur les architectures x86, ARM et MIPS.

Voir le dépôt
85368il y a 1 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

Datalog Disassembly

DDisasm est un désassembleur rapide suffisamment précis pour que le code assembleur résultant puisse être réassemblé. DDisasm est implémenté en utilisant le langage de programmation logique déclarative datalog (souffle) pour compiler des règles et des heuristiques de désassemblage. Le désassembleur analyse d'abord les informations de fichiers ELF/PE et décode un sur-ensemble d'instructions possibles pour créer un ensemble initial de faits datalog. Ces faits sont analysés pour identifier l'emplacement du code, la symbolisation et les limites des fonctions. Les résultats de cette analyse, un ensemble raffiné de faits datalog, sont ensuite traduits vers la représentation intermédiaire GTIRB pour l'analyse binaire et le rétro-ingénierie. Le pretty printer GTIRB peut ensuite être utilisé pour afficher joliment le GTIRB en code assembleur réassemblable.

Prise en charge des binaires

Formats binaires :

  • ELF (Linux)
  • PE (Windows)

Architectures de jeux d'instructions (ISA) :

  • x86_32
  • x86_64
  • ARM32
  • ARM64
  • MIPS32

Pour commencer

Vous pouvez exécuter une version préconstruite de Ddisasm en utilisant Docker :

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

Ddisasm peut être utilisé pour désassembler un binaire vers la représentation GTIRB. Nous pouvons l'essayer avec l'un des exemples inclus dans le dépôt.

D'abord, démarrez le conteneur Docker Ddisasm :

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

Dans le conteneur Docker, construisons l'un des exemples :

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

Nous pouvons maintenant procéder au désassemblage du binaire :

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

Une fois que vous avez la représentation GTIRB, vous pouvez effectuer des modifications programmatiques du binaire en utilisant GTIRB ou gtirb-rewriting.

Ensuite, vous pouvez utiliser gtirb-pprinter (inclus dans l'image Docker) pour produire une nouvelle version du binaire :

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

En interne, gtirb-pprinter générera un fichier assembleur et invoquera le compilateur/assembleur (par exemple gcc) pour produire un nouveau binaire. gtirb-pprinter se chargera de générer toutes les options de ligne de commande nécessaires pour produire un nouveau binaire, y compris les options de compilation, les dépendances de bibliothèques ou les scripts de l'éditeur de liens de version.

Vous pouvez également utiliser gtirb-pprinter pour générer une liste d'assembleur pour modification manuelle :

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

Cette liste d'assembleur peut ensuite être recompilée manuellement :

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

Veuillez consulter notre documentation pour plus d'informations.

Documentation

Contribution

Voir CONTRIBUTING.md

Contributeurs externes

  • Programming Language Group, The University of Sydney : Support initial pour ARM64.
  • Utilisateur GitHub gogo2464 : Refonte de la documentation.

Citer

  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}}
Télécharger l’outil