Framework multi-motore per l'unpacking e l'analisi di binari protetti da VM usando dynamic taint tracking, symbolic execution, pattern classification e prioritizzazione basata su ML per automatizzare il reverse engineering di protector commerciali e personalizzati.
Il progetto sarà reso pubblico a metà ottobre - Refactoring in corso
Framework avanzato di rilevamento e analisi di macchine virtuali
VMDragonSlayer è un framework completo per l'analisi di binari protetti da protettori basati su macchine virtuali (VM) come VMProtect 2.x/3.x, Themida e VM malware personalizzate. Il framework combina molteplici motori di analisi tra cui Dynamic Taint Tracking (DTT), Symbolic Execution (SE), Classificazione di Pattern e Machine Learning per automatizzare il processo di reverse engineering.
Obiettivo: Trasformare l'analisi complessa di binari protetti da settimane/mesi di lavoro manuale in analisi strutturata e automatizzata con risultati spiegabili.
| Dominio | Motore / Modulo | Punti salienti |
|---|---|---|
| Scoperta VM | analysis.vm_discovery | Identificazione del dispatcher e della tabella degli handler, euristiche per VM annidate |
| Analisi pattern | analysis.pattern_analysis | Basato su regole + similarità + ML (selezione automatica ibrida) |
| Taint Tracking | analysis.taint_tracking | Taint a livello di byte basato su Intel Pin, scoperta di handler, confidenza del flusso |
| Esecuzione simbolica | analysis.symbolic_execution.executor | Esplorazione pesata con PathPrioritizer ML, vincoli e tracciamento dello stato |
| Orchestrazione ibrida | (core Python) | Flussi sequenziali / paralleli / adattivi (il report di Ghidra indica che è implementato) |
| Dati sintetici | data/training/synthetic_sample_generator.py | Mutazione di offuscamento, generazione di campioni multi-architettura |
| Database pattern | data/patterns/ | JSON + DB potenziato + pattern runtime basati su SQLite |
| Plugin Ghidra | plugins/ghidra/ | Integrazione UI in corso (mancano diversi template) |
| Schemi / Validazione | data/schemas/ | Output di analisi e formati pattern validati da schema JSON |
VMDragonSlayer utilizza un'architettura modulare in cui molteplici motori di analisi lavorano insieme:
graph TD
A[VM Discovery Engine] --> B[Pattern/ML Classifier]
B --> C[Symbolic Execution Engine]
B --> D[Dynamic Taint Tracker]
D --> C
subgraph DataSources ["Data Sources"]
E[Pattern Database]
F[ML Models - PoC]
end
subgraph Coordination
G[Orchestrator - Workflow Management & Coordination]
end
E --> B
F --> B
A --> G
B --> G
C --> G
D --> G
E --> G
F --> G
G --> H[REST API Server]
G --> I[Plugins - RE Tools]
dragonslayer.analysis.vm_discovery)dragonslayer.analysis.taint_tracking)dragonslayer.analysis.pattern_analysis)dragonslayer.analysis.symbolic_execution)dragonslayer.ml)VMDragonSlayer/
├── dragonslayer/ # Pacchetto Python principale
│ ├── analysis/ # Motori di analisi
│ │ ├── vm_discovery/ # Rilevamento e classificazione VM
│ │ ├── pattern_analysis/ # Matching pattern e classificazione ML
│ │ ├── symbolic_execution/ # Motore di esecuzione simbolica
│ │ ├── taint_tracking/ # Analisi taint dinamica
│ │ └── anti_evasion/ # Contromisure anti-analisi
│ ├── api/ # Server e client API REST
│ ├── core/ # Componenti principali del framework
│ ├── ml/ # Pipeline di machine learning
│ ├── analytics/ # Report e metriche di analisi
│ ├── gpu/ # Supporto all'accelerazione GPU
│ ├── utils/ # Funzioni di utilità
├── data/ # File di configurazione e dati
│ ├── patterns/ # Database dei pattern
│ ├── models/ # Modelli ML e metadati
│ │ ├── pretrained/ # Modelli pre-addestrati (PoC)
│ │ └── metadata/ # Metadati e schemi dei modelli
│ ├── samples/ # File di esempio e registri
│ ├── schemas/ # Schemi JSON per validazione
│ └── training/ # Configurazioni di addestramento
├── plugins/ # Plugin per strumenti di reverse engineering
│ ├── ghidra/ # Plugin Ghidra (Java/Gradle)
│ ├── idapro/ # Plugin IDA Pro (Python)
│ └── binaryninja/ # Plugin Binary Ninja (Python)
├── tests/ # Suite di test
├── documentation/ # Documentazione
└── LICENSE # Licenza GPL v3
VMDragonSlayer si integra con i principali strumenti di reverse engineering:
Nota: I modelli ML inclusi sono implementazioni proof-of-concept di base progettate per scopi di ricerca e didattici.