🔍 Contexte

Publié sur le dépôt GitHub officiel de GrammaTech, cet article présente DDisasm (Datalog Disassembly), un outil open source de désassemblage binaire développé par GrammaTech et ayant fait l’objet de publications académiques à l’USENIX Security 2020 et à l’IEEE Symposium on Security and Privacy 2025.

⚙️ Fonctionnement technique

DDisasm utilise le langage de programmation logique déclaratif Datalog (Soufflé) pour compiler des règles et heuristiques de désassemblage. Le processus se déroule en plusieurs étapes :

  • Parsing des informations ELF/PE et décodage d’un sur-ensemble d’instructions possibles pour créer des faits Datalog initiaux
  • Analyse de ces faits pour identifier les emplacements de code, la symbolisation et les frontières de fonctions
  • Traduction vers la représentation intermédiaire GTIRB (GrammaTech Intermediate Representation for Binaries)
  • Pretty-printing via gtirb-pprinter pour produire du code assembleur réassemblable

🖥️ Formats et architectures supportés

Formats binaires :

  • ELF (Linux)
  • PE (Windows)

Architectures (ISA) :

  • x86_32, x86_64
  • ARM32, ARM64
  • MIPS32

🐳 Utilisation

L’outil est disponible via une image Docker (grammatech/ddisasm:latest). Il permet de désassembler un binaire en représentation GTIRB, d’y apporter des modifications programmatiques via gtirb-rewriting, puis de régénérer un binaire ou un listing assembleur avec gtirb-pprinter.

📚 Type d’article

Il s’agit d’une présentation d’outil open source à vocation de recherche et d’ingénierie inverse binaire, accompagnée de références académiques publiées. L’objectif principal est de documenter les capacités et l’utilisation de DDisasm pour la communauté de l’analyse binaire et du reverse engineering.

🧠 TTPs et IOCs détectés

Malware / Outils

  • DDisasm (tool)

🔴 Indice de vérification factuelle : 15/100 (basse)

  • ⬜ github.com — source non référencée (0pts)
  • ✅ 3805 chars — texte complet (fulltext extrait) (15pts)
  • ⬜ aucun IOC extrait (0pts)
  • ⬜ pas d’IOC à vérifier (0pts)
  • ⬜ aucune TTP identifiée (0pts)
  • ⬜ date RSS ou approximée (0pts)
  • ⬜ aucun acteur de menace nommé (0pts)
  • ⬜ pas de CVE à vérifier (0pts)

🔗 Source originale : https://github.com/GrammaTech/ddisasm