
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.
Desvirtualizador generalizado de VMProtect compatible con versiones 1.x, 2.x y 3.x. Herramienta CLI independiente + plugin para Ghidra.
Estado: ✅ Listo para producción | Validación: 22/22 muestras (100%) | Alcance: VMP ≤3.6 (3.7+ requiere ingeniería inversa)
cd /home/ciupix/vmp_devirt_prod
cargo build --release
Binario: target/release/vmp_devirt
# Analizar binario
./target/release/vmp_devirt <binary_path>
# Exportar handlers
./target/release/vmp_devirt <binary_path> --export-handlers handlers.json
# Exportar bytecode
./target/release/vmp_devirt <binary_path> --export-bytecode bytecode.json
Muestras probadas:
Consulte VALIDATION_REPORT.md para resultados detallados.
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)
Total: ~2,800 líneas de código Rust de producción
Heurísticas basadas en:
VMP 1.x/2.x: Extracción de clave XOR mediante coincidencia de patrones en la sección .text
VMP 3.x: Despacho de cadena de handlers
Coincidencia de patrones en:
FUTURE_WORK.md para detalles.VALIDATION_REPORT.md - Resultados de pruebas exhaustivosIMPLEMENTATION_COMPLETE.md - Estado de la implementaciónUNICORN_IMPLEMENTATION_REPORT.md - Detalles de captura de clave XORArquitectura basada en el análisis de la filtración del código fuente de VMP 3.5.1:
Uso educativo/de investigación
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
| Versión |
|---|
| Muestras |
|---|
| Éxito |
|---|
| Tiempo prom. |
|---|
| VMP 1.x | 4 | 4/4 | 38ms |
| VMP 2.x | 6 | 6/6 | 734ms |
| VMP 3.x | 12 | 12/12 | 39ms |
| 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 |