Marco de trabajo multi-motor para desempaquetar y analizar binarios protegidos por VM utilizando rastreo de manchas dinámico, ejecución simbólica, clasificación de patrones y priorización impulsada por ML para automatizar la ingeniería inversa de protectores comerciales y personalizados.
El proyecto será público a mediados de octubre (Refactorización en progreso)
Marco avanzado de detección y análisis de máquinas virtuales
VMDragonSlayer es un marco integral para analizar binarios protegidos por protectores basados en Máquinas Virtuales (VM) como VMProtect 2.x/3.x, Themida y VMs maliciosas personalizadas. El marco combina múltiples motores de análisis, incluyendo Seguimiento Dinámico de Manchas (DTT), Ejecución Simbólica (SE), Clasificación de Patrones y Aprendizaje Automático para automatizar el proceso de ingeniería inversa.
Objetivo: Transformar el análisis complejo de binarios protegidos de semanas/meses de trabajo manual en un análisis estructurado y automatizado con resultados explicables.
| Dominio | Motor / Módulo | Destacados |
|---|---|---|
| Descubrimiento de VM | analysis.vm_discovery | Identificación del despachador y tabla de manejadores, heurísticas de VM anidadas |
| Análisis de Patrones | analysis.pattern_analysis | Basado en reglas + similitud + ML (selección automática híbrida) |
| Seguimiento de Manchas | analysis.taint_tracking | Seguimiento de manchas a nivel de byte impulsado por Intel Pin, descubrimiento de manejadores, confianza de flujo |
| Ejecución Simbólica | analysis.symbolic_execution.executor | Exploración ponderada por ML con PathPrioritizer, seguimiento de restricciones y estados |
| Orquestación Híbrida | (núcleo Python) | Flujos de trabajo secuenciales / paralelos / adaptativos (el informe de Ghidra indica implementado) |
| Datos Sintéticos | data/training/synthetic_sample_generator.py | Mutación de ofuscación, generación de muestras multiarquitectura |
| Base de Datos de Patrones | data/patterns/ | JSON + BD mejorada + patrones runtime respaldados por SQLite |
| Plugin Ghidra | plugins/ghidra/ | Integración de UI en progreso (faltan varias plantillas) |
| Esquemas / Validación | data/schemas/ | Formatos de salida de análisis y patrones validados por esquemas JSON |
VMDragonSlayer utiliza una arquitectura modular donde múltiples motores de análisis trabajan juntos:
graph TD
A[Motor de Descubrimiento de VM] --> B[Clasificador de Patrones/ML]
B --> C[Motor de Ejecución Simbólica]
B --> D[Seguimiento Dinámico de Manchas]
D --> C
subgraph FuentesDeDatos ["Fuentes de Datos"]
E[Base de Datos de Patrones]
F[Modelos ML - PoC]
end
subgraph Coordinación
G[Orquestador - Gestión y Coordinación de Flujos de Trabajo]
end
E --> B
F --> B
A --> G
B --> G
C --> G
D --> G
E --> G
F --> G
G --> H[Servidor API REST]
G --> I[Plugins - Herramientas RE]
dragonslayer.analysis.vm_discovery)dragonslayer.analysis.taint_tracking)dragonslayer.analysis.pattern_analysis)dragonslayer.analysis.symbolic_execution)dragonslayer.ml)VMDragonSlayer/
├── dragonslayer/ # Paquete principal Python
│ ├── analysis/ # Motores de análisis
│ │ ├── vm_discovery/ # Detección y clasificación de VM
│ │ ├── pattern_analysis/ # Coincidencia de patrones y clasificación ML
│ │ ├── symbolic_execution/ # Motor de ejecución simbólica
│ │ ├── taint_tracking/ # Análisis dinámico de manchas
│ │ └── anti_evasion/ # Contramedidas de anti-análisis
│ ├── api/ # Servidor y cliente API REST
│ ├── core/ # Componentes principales del marco
│ ├── ml/ # Pipeline de aprendizaje automático
│ ├── analytics/ # Informes y métricas de análisis
│ ├── gpu/ # Soporte de aceleración GPU
│ ├── utils/ # Funciones de utilidad
├── data/ # Archivos de configuración y datos
│ ├── patterns/ # Base de datos de patrones
│ ├── models/ # Modelos ML y metadatos
│ │ ├── pretrained/ # Modelos preentrenados (PoC)
│ │ └── metadata/ # Metadatos y esquemas de modelos
│ ├── samples/ # Archivos de muestra y registros
│ ├── schemas/ # Esquemas JSON para validación
│ └── training/ # Configuraciones de entrenamiento
├── plugins/ # Plugins de herramientas de ingeniería inversa
│ ├── ghidra/ # Plugin Ghidra (Java/Gradle)
│ ├── idapro/ # Plugin IDA Pro (Python)
│ └── binaryninja/ # Plugin Binary Ninja (Python)
├── tests/ # Suite de pruebas
├── documentation/ # Documentación
└── LICENSE # Licencia GPL v3
VMDragonSlayer se integra con las principales herramientas de ingeniería inversa:
Nota: Los modelos ML incluidos son implementaciones conceptuales básicas diseñadas para fines de investigación y educativos.