Framework multi-moteur pour dépaqueter et analyser des binaires protégés par VM en utilisant le suivi de teinte dynamique, l'exécution symbolique, la classification de motifs et la priorisation basée sur le ML afin d'automatiser le reverse engineering de protecteurs commerciaux et personnalisés.
Le projet sera rendu public d'ici la mi-octobre — Refactorisation en cours
Framework avancé de détection et d'analyse de machines virtuelles
VMDragonSlayer est un framework complet pour l'analyse de binaires protégés par des protecteurs basés sur des machines virtuelles (VM) tels que VMProtect 2.x/3.x, Themida et des VM malveillantes personnalisées. Le framework combine plusieurs moteurs d'analyse incluant le suivi de taint dynamique (DTT), l'exécution symbolique (SE), la classification de motifs et l'apprentissage automatique pour automatiser le processus de rétro-ingénierie.
Objectif : Transformer l'analyse complexe de binaires protégés, qui prend des semaines ou des mois de travail manuel, en une analyse structurée et automatisée avec des résultats explicables.
| Domaine | Moteur / Module | Points forts |
|---|---|---|
| Découverte de VM | analysis.vm_discovery | Identification de la table du répartiteur (dispatcher) et des handlers, heuristiques de VM imbriquées |
| Analyse de motifs | analysis.pattern_analysis | Basée sur des règles + similarité + ML (sélection automatique hybride) |
| Suivi de taint | analysis.taint_tracking | Taint au niveau octet piloté par Intel Pin, découverte de handlers, confiance de flux |
| Exécution symbolique | analysis.symbolic_execution.executor | Exploration pondérée par PathPrioritizer ML, suivi des contraintes et des états |
| Orchestration hybride | (noyau Python) | Workflows séquentiels / parallèles / adaptatifs (le rapport Ghidra indique qu'il est implémenté) |
| Données synthétiques | data/training/synthetic_sample_generator.py | Mutation d'obfuscation, génération d'échantillons multi-architecture |
| Base de motifs | data/patterns/ | JSON + base améliorée + motifs runtime stockés dans SQLite |
| Plugin Ghidra | plugins/ghidra/ | Intégration UI en cours (plusieurs modèles manquants) |
| Schémas / Validation | data/schemas/ | Formats de sortie d'analyse et de motifs validés par schéma JSON |
VMDragonSlayer utilise une architecture modulaire où plusieurs moteurs d'analyse travaillent ensemble :
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/ # Package Python principal
│ ├── analysis/ # Moteurs d'analyse
│ │ ├── vm_discovery/ # Détection et classification de VM
│ │ ├── pattern_analysis/ # Correspondance de motifs et classification ML
│ │ ├── symbolic_execution/ # Moteur d'exécution symbolique
│ │ ├── taint_tracking/ # Analyse de taint dynamique
│ │ └── anti_evasion/ # Contre-mesures anti-analyse
│ ├── api/ # Serveur et client REST API
│ ├── core/ # Composants principaux du framework
│ ├── ml/ # Pipeline d'apprentissage automatique
│ ├── analytics/ # Rapports d'analyse et métriques
│ ├── gpu/ # Support d'accélération GPU
│ ├── utils/ # Fonctions utilitaires
├── data/ # Fichiers de configuration et de données
│ ├── patterns/ # Base de motifs
│ ├── models/ # Modèles ML et métadonnées
│ │ ├── pretrained/ # Modèles pré-entraînés (PoC)
│ │ └── metadata/ # Métadonnées et schémas des modèles
│ ├── samples/ # Fichiers d'exemples et registres
│ ├── schemas/ # Schémas JSON pour validation
│ └── training/ # Configurations d'entraînement
├── plugins/ # Plugins pour outils de rétro-ingénierie
│ ├── ghidra/ # Plugin Ghidra (Java/Gradle)
│ ├── idapro/ # Plugin IDA Pro (Python)
│ └── binaryninja/ # Plugin Binary Ninja (Python)
├── tests/ # Suite de tests
├── documentation/ # Documentation
└── LICENSE # Licence GPL v3
VMDragonSlayer s'intègre avec les principaux outils de rétro-ingénierie :
Remarque : Les modèles ML inclus sont des implémentations basiques de preuve de concept conçues pour la recherche et l'éducation.