Multi-Engine-Framework zum Entpacken und Analysieren von VM-geschützten Binärdateien mittels dynamischer Taint-Analyse, symbolischer Ausführung, Musterklassifikation und ML-gesteuerter Priorisierung, um das Reverse Engineering von kommerziellen und benutzerdefinierten Protectoren zu automatisieren.
Das Projekt wird Mitte Oktober veröffentlicht. Refactoring läuft.
Fortschrittliches Framework zur Erkennung und Analyse von Virtuellen Maschinen
VMDragonSlayer ist ein umfassendes Framework zur Analyse von Binärdateien, die durch VM-basierte Schutzhüllen wie VMProtect 2.x/3.x, Themida und benutzerdefinierte Malware-VMs geschützt sind. Das Framework kombiniert mehrere Analyse-Engines, darunter Dynamic Taint Tracking (DTT), Symbolic Execution (SE), Pattern Classification und Machine Learning, um den Reverse-Engineering-Prozess zu automatisieren.
Ziel: Die Analyse komplexer geschützter Binärdateien von Wochen/Monaten manueller Arbeit in eine strukturierte, automatisierte Analyse mit erklärbaren Ergebnissen umwandeln.
| Bereich | Engine / Modul | Highlights |
|---|---|---|
| VM-Erkennung | analysis.vm_discovery | Identifizierung von Dispatcher- und Handler-Tabellen, verschachtelte VM-Heuristiken |
| Musteranalyse | analysis.pattern_analysis | Regelbasiert + Ähnlichkeit + ML (hybride automatische Auswahl) |
| Taint-Tracking | analysis.taint_tracking | Intel Pin–gesteuertes Byte-Level-Taint, Handler-Erkennung, Fluss-Konfidenz |
| Symbolische Ausführung | analysis.symbolic_execution.executor | PathPrioritizer ML-gewichtete Exploration, Constraint- und Zustandsverfolgung |
| Hybrid-Orchestrierung | (Python-Kern) | Sequenzielle / parallele / adaptive Workflows (Ghidra-Bericht zeigt Implementierung an) |
| Synthetische Daten | data/training/synthetic_sample_generator.py | Obfuskations-Mutation, Multi-Architektur-Beispielgenerierung |
| Muster-DB | data/patterns/ | JSON + erweiterte DB + SQLite-gestützte Laufzeitmuster |
| Ghidra-Plugin | plugins/ghidra/ | UI-Integration in Arbeit (mehrere Vorlagen fehlen) |
| Schemata / Validierung | data/schemas/ | JSON-Schema–validierte Analyseausgabe- und Musterformate |
VMDragonSlayer verwendet eine modulare Architektur, in der mehrere Analyse-Engines zusammenarbeiten:
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/ # Haupt-Python-Paket
│ ├── analysis/ # Analyse-Engines
│ │ ├── vm_discovery/ # VM-Erkennung und -Klassifikation
│ │ ├── pattern_analysis/ # Musterabgleich und ML-Klassifikation
│ │ ├── symbolic_execution/ # Symbolische Ausführungs-Engine
│ │ ├── taint_tracking/ # Dynamische Taint-Analyse
│ │ └── anti_evasion/ # Anti-Analyse-Gegenmaßnahmen
│ ├── api/ # REST-API-Server und -Client
│ ├── core/ # Kernkomponenten des Frameworks
│ ├── ml/ # Machine-Learning-Pipeline
│ ├── analytics/ # Analyseberichte und Metriken
│ ├── gpu/ # GPU-Beschleunigungsunterstützung
│ ├── utils/ # Hilfsfunktionen
├── data/ # Konfigurations- und Datendateien
│ ├── patterns/ # Musterdatenbank
│ ├── models/ # ML-Modelle und Metadaten
│ │ ├── pretrained/ # Vorgewichtete Modelle (PoC)
│ │ └── metadata/ # Modell-Metadaten und Schemata
│ ├── samples/ # Beispieldateien und Register
│ ├── schemas/ # JSON-Schemata zur Validierung
│ └── training/ # Trainingskonfigurationen
├── plugins/ # Reverse-Engineering-Tool-Plugins
│ ├── ghidra/ # Ghidra-Plugin (Java/Gradle)
│ ├── idapro/ # IDA-Pro-Plugin (Python)
│ └── binaryninja/ # Binary-Ninja-Plugin (Python)
├── tests/ # Testsuite
├── documentation/ # Dokumentation
└── LICENSE # GPL v3 Lizenz
VMDragonSlayer integriert sich mit den wichtigsten Reverse-Engineering-Tools:
Hinweis: Die enthaltenen ML-Modelle sind grundlegende Proof-of-Concept-Implementierungen, die für Forschungs- und Bildungszwecke konzipiert sind.