Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
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
Herramientas/GitHubGitHub/rasetsuu/vmprotect-research
Análisis EstáticoAnálisis Dinámico (Sandboxing)Ingeniería InversaDepuradoresAnálisis de BinariosPapers e InvestigaciónAprendizaje y EducaciónAnálisis de FirmwareExplotación de Binarios

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
GitHubrasetsuu/vmprotect-research

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.

Ver Repositorio
489hace 2 mesesRevisado por Kitploit

VMP Devirtualizer - Versión de Producción

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)


Características

  • Soporte multi-versión: VMP 1.x, 2.x, 3.x (1.1 → 3.10.5)
  • Detección de versión: Identificación automática mediante heurísticas
  • Extracción de tabla de despacho: Captura de clave XOR de Unicorn para tablas cifradas
  • Clasificación de handlers: 256 tipos de handlers en todas las versiones
  • Decodificación de bytecode: ops de VM → reconstrucción de instrucciones x86-64
  • Soporte de plataforma: binarios PE de Windows + ELF de Linux
  • Integración con descompilador: bytecode de VM → pseudocódigo
  • Plugin Ghidra: Análisis interactivo de handlers + anotación

Inicio Rápido

Compilar

root@kitploit:~
cd /home/ciupix/vmp_devirt_prod
cargo build --release

Binario: target/release/vmp_devirt

Uso

root@kitploit:~
# 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

Resultados de Validación

Resumen

  • Muestras totales: 22
  • Tasa de éxito: 22/22 (100%)
  • Tiempo de procesamiento promedio: 229ms
  • Tiempo total: 5.0 segundos

Por Versión

Muestras probadas:

  • VMP 1.x: HiVmp.vmp.1.1.exe, HiVmp.vmp.1.4.exe, HiVmp.vmp.1.54.exe, HiVmp.vmp.1.70.4.exe
  • VMP 2.x: Branch0.vmp.exe, HiVmp.exe, mfc_algo_demo.vmp.exe, Project1.vmp.exe, Project2.vmp.exe, Project4.vmp.exe
  • VMP 3.x: add_control_flow.vmp.exe, adder.vmp.exe, bitwise.vmp.exe, control_flow_test.vmp.exe, cpuid_test.vmp.exe, fac_fib.vmp.exe, globals.vmp.exe, hello_world.vmp.exe, multiadder.vmp.exe, nested_virt_funccall.vmp.exe, ptr_drf.vmp.exe, switch.vmp.exe

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

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

  1. Leer opcode de la sección bytecode
  2. Buscar semántica del handler
  3. Extraer operandos (slot, offset)
  4. Descifrar operandos mediante cadenas ValueCryptor
  5. Reconstruir instrucción x86-64
  6. Manejar contexto de VM (archivo de registros, flags, pila)

Limitaciones Conocidas

  1. 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.
  2. Advertencias de validación de clave XOR - Esperadas para VMP 1.x/2.x (no crítico)
  3. Detección de despacho VMP 3.x - Usa estrategia de respaldo para ofuscación más reciente
  4. 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

Descargar herramienta
Versión
Muestras
Éxito
Tiempo prom.
VMP 1.x44/438ms
VMP 2.x66/6734ms
VMP 3.x1212/1239ms
MóduloPropósitoLíneas
src/lib.rsInterfaz principal de la biblioteca150
src/version.rsDetección de versión de VMP200
src/pe_loader.rsCarga de binarios PE/ELF350
src/dispatch_table.rsExtracción de tabla de despacho400
src/unicorn_emulator.rsCaptura de clave XOR308
src/handler_classifier.rsIdentificación de tipo de handler280
src/bytecode.rsLectura/decodificación de bytecode320
src/decrypt.rsCadenas ValueCryptor250
src/alu.rsReconstrucción de operaciones ALU200
src/opcode_table.rsGestión de opcodes180
src/bin/cli.rsHerramienta CLI400