Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ddisasm — Disassemblatore basato su Datalog che produce assembly riassemblabile da binari ELF/PE, con rappresentazione intermedia GTIRB per analisi e riscrittura binaria su architetture x86, ARM e MIPS. | Kitploit
Strumenti/GitHubGitHub/grammatech/ddisasm
Analisi StaticaReverse EngineeringDebuggerAnalisi di BinariAnalisi del Firmware
GitHubgrammatech/ddisasm

ddisasm

Disassemblatore basato su Datalog che produce assembly riassemblabile da binari ELF/PE, con rappresentazione intermedia GTIRB per analisi e riscrittura binaria su architetture x86, ARM e MIPS.

Vedi Repository
853681 mese faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

Disassembly con Datalog

DDisasm è un disassemblatore veloce abbastanza accurato da permettere che il codice assembly risultante possa essere riassemblato. DDisasm è implementato utilizzando il linguaggio di programmazione logica dichiarativa datalog (souffle) per compilare regole e euristiche di disassemblaggio. Il disassemblatore prima analizza le informazioni dei file ELF/PE e decodifica un superset di possibili istruzioni per creare un insieme iniziale di fatti datalog. Questi fatti vengono analizzati per identificare posizione del codice, simbolizzazione e confini delle funzioni. I risultati di questa analisi, un insieme raffinato di fatti datalog, vengono poi tradotti nella rappresentazione intermedia GTIRB per l'analisi binaria e il reverse engineering. Il pretty printer GTIRB può quindi essere utilizzato per stampare il GTIRB in codice assembly riassemblabile.

Supporto per binari

Formati binari:

  • ELF (Linux)
  • PE (Windows)

Architetture di set di istruzioni (ISA):

  • x86_32
  • x86_64
  • ARM32
  • ARM64
  • MIPS32

Per iniziare

È possibile eseguire una versione precompilata di Ddisasm usando Docker:

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

Ddisasm può essere utilizzato per disassemblare un binario nella rappresentazione GTIRB. Possiamo provarlo con uno degli esempi inclusi nel repository.

Per prima cosa, avviare il container Docker di Ddisasm:

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

All'interno del container Docker, costruiamo uno degli esempi:

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

Ora possiamo procedere al disassemblaggio del binario:

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

Una volta ottenuta la rappresentazione GTIRB, è possibile apportare modifiche programmatiche al binario usando GTIRB o gtirb-rewriting.

Quindi, è possibile utilizzare gtirb-pprinter (incluso nell'immagine Docker) per produrre una nuova versione del binario:

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

Internamente, gtirb-pprinter genererà un file assembly e invocherà il compilatore/assemblatore (es. gcc) per produrre un nuovo binario. gtirb-pprinter si occuperà di generare tutte le opzioni della riga di comando necessarie per generare un nuovo binario, incluse le opzioni di compilazione, le dipendenze delle librerie o gli script del linker di versione.

È anche possibile usare gtirb-pprinter per generare un elenco assembly per modifiche manuali:

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

Questo elenco assembly può quindi essere ricompilato manualmente:

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

Si prega di dare un'occhiata alla nostra documentazione per informazioni aggiuntive.

Documentazione

Come contribuire

Vedi CONTRIBUTING.md

Collaboratori esterni

  • Programming Language Group, The University of Sydney: Supporto iniziale per ARM64.
  • Utente GitHub gogo2464: Refactoring della documentazione.

Citazioni

  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}}
Scarica lo strumento