¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!
vmprotect-research — Desvirtualizador generalizado de VMProtect compatible con versiones 1.x–3.x. Herramienta CLI independiente y plugin para Ghidra para decodificación automatizada de bytecode, clasificación de handlers y reconstrucción de instrucciones x86-64 a partir de binarios protegidos. | Kitploit
Desvirtualizador generalizado de VMProtect compatible con versiones 1.x–3.x. Herramienta CLI independiente y plugin para Ghidra para decodificación automatizada de bytecode, clasificación de handlers y reconstrucción de instrucciones x86-64 a partir de binarios protegidos.
Consulte VALIDATION_REPORT.md para resultados detallados.
Arquitectura
root@kitploit:~
Binario de entrada
↓
Cargador PE/ELF (src/pe_loader.rs)
↓
Detector de versión (src/version.rs)
↓
Extractor de tabla de despacho (src/dispatch_table.rs)
├─ Captura de clave XOR de Unicorn (src/unicorn_emulator.rs)
└─ Respaldo de coincidencia de patrones
↓
Clasificador de handlers (src/handler_classifier.rs)
↓
Decodificador de bytecode (src/bytecode.rs)
├─ Descifrado de operandos (src/decrypt.rs)
└─ Reconstrucción de ALU (src/alu.rs)
↓
Salida (JSON/Pseudo-asm)
Módulos Principales
Módulo
Propósito
Líneas
src/lib.rs
Interfaz principal de la biblioteca
150
src/version.rs
Detección de versión de VMP
200
src/pe_loader.rs
Carga de binarios PE/ELF
350
src/dispatch_table.rs
Extracción de tabla de despacho
400
src/unicorn_emulator.rs
Captura de clave XOR
308
src/handler_classifier.rs
Identificación de tipo de handler
280
src/bytecode.rs
Lectura/decodificación de bytecode
320
src/decrypt.rs
Cadenas ValueCryptor
250
src/alu.rs
Reconstrucción de operaciones ALU
200
src/opcode_table.rs
Gestión de opcodes
180
src/bin/cli.rs
Herramienta CLI
400
Total: ~2,800 líneas de código Rust de producción
Detalles de Implementación
Detección de Versión
Heurísticas basadas en:
Patrones de entrada de handlers (opcodes POP/PUSH)
Mecanismo de despacho (jumptable vs. cadena cifrada vs. cadena de handlers)
Disposición de secciones PE (.vmp0, .vmp1, .text)
Patrón de stub de entrada (PUSH cifrado + CALL/JMP)
Extracción de Tabla de Despacho
VMP 1.x/2.x: Extracción de clave XOR mediante coincidencia de patrones en la sección .text
Escanea patrones de instrucciones XOR
Deriva claves de secuencias de opcodes
Valida contra el rango de base de la imagen
VMP 3.x: Despacho de cadena de handlers
Localiza puntos de despacho (DP0-DP5)
Traza cadenas de handlers
Extrae 256 entradas de despacho
Clasificación de Handlers
Coincidencia de patrones en:
Patrón de entrada (49 8b 2a = POP para VMP 3.x)
Operación principal (SUB, ADD, XOR, etc.)
Tipos de operandos (slot, offset, inmediato)
Mecanismo de despacho (push/ret, jmp directo)
Decodificación de Bytecode
Leer opcode de la sección bytecode
Buscar semántica del handler
Extraer operandos (slot, offset)
Descifrar operandos mediante cadenas ValueCryptor
Reconstruir instrucción x86-64
Manejar contexto de VM (archivo de registros, flags, pila)
Limitaciones Conocidas
VMP 3.7+ (Handlers fusionados) - No soportado. VMP 3.7+ introdujo handlers fusionados (múltiples operaciones por entrada de handler) lo que rompe el clasificador actual. Requiere ingeniería inversa con una muestra real de 3.7+. Consulte FUTURE_WORK.md para detalles.
Advertencias de validación de clave XOR - Esperadas para VMP 1.x/2.x (no crítico)
Detección de despacho VMP 3.x - Usa estrategia de respaldo para ofuscación más reciente
Muestras Linux - No incluidas en el conjunto de pruebas actual (soporte ELF implementado)
Rendimiento
Rendimiento: ~4.4 muestras/segundo
Memoria: <50MB por muestra
Latencia: 5ms-3.25s dependiendo del tamaño del binario
Documentación
VALIDATION_REPORT.md - Resultados de pruebas exhaustivos
IMPLEMENTATION_COMPLETE.md - Estado de la implementación
UNICORN_IMPLEMENTATION_REPORT.md - Detalles de captura de clave XOR
Referencias de Fuentes
Arquitectura basada en el análisis de la filtración del código fuente de VMP 3.5.1:
Estructura del handler y mecanismo de despacho
Implementación de cadenas ValueCryptor
Patrones de operaciones ALU
Gestión del contexto de VM
Licencia
Uso educativo/de investigación
Contacto
Para problemas o preguntas, consulte los informes de validación o la documentación de implementación.
Última actualización: 2026-06-01
Estado: Listo para producción