Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
vmp-devirt — Plataforma de investigación de devirtualización de VMProtect asistida por trazas: los front-ends de versiones alimentan un backend compartido de Remill/LLVM para elevar manejadores, recuperar el flujo de datos y emitir objetos nativos. | Kitploit
Herramientas/GitHubGitHub/rasetsuu/vmp-devirt
Análisis EstáticoAnálisis Dinámico (Sandboxing)Análisis de CódigoIngeniería InversaDepuradoresAnálisis de MalwareUtilidades y FrameworksAnálisis de BinariosPapers e InvestigaciónReversing Asistido por IAExplotación de Binarios
7hace 1 díaAún no revisado
GitHubrasetsuu/vmp-devirt

vmp-devirt

Plataforma de investigación de devirtualización de VMProtect asistida por trazas: los front-ends de versiones alimentan un backend compartido de Remill/LLVM para elevar manejadores, recuperar el flujo de datos y emitir objetos nativos.

Ver Repositorio

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

vmp-devirt

Investigación de devirtualización de VMProtect asistida por trazas: front-ends de versión (gate 1.x / tabla 2.x / FDJ 3.x) alimentando un backend compartido (elevación Remill → opt de LLVM → tarjetas semánticas → flujo de datos → objetos nativos).

Validado contra binarios VMP 3.9.4 compilados por uno mismo en múltiples modos de protección. La compatibilidad con VMP 3.8.x/3.10.x es experimental y depende de la muestra.

Alcance y limitaciones (leer primero)

Esta es una plataforma de investigación para analizar binarios protegidos con VMProtect que posees o tienes licencia para realizar ingeniería inversa — no un devirtualizador universal de un solo botón:

  • VMP 3.7+ necesita ejecución: los flujos de fetch, las claves y los objetivos de los handlers provienen de instantáneas instrumentadas de Unicorn, no de análisis estático.
  • La cobertura está limitada por la traza: solo se recuperan las rutas ejecutadas. Las ejecuciones multi-estado + la fusión de ramas la amplían; la recuperación completa del CFG del programa para objetivos complejos sigue siendo manual.
  • La anti-emulación (barreras de temporización, trampas de E/S, comprobaciones de entorno) necesita stubs por objetivo — el harness proporciona el mecanismo, tú proporcionas los valores.
  • Los front-ends de VMP 1.x/2.x son escáneres heurísticos; sus antiguos recorredores estáticos se conservan como oráculos de verificación cruzada, no como rutas primarias.

Estructura

src/
  lib.rs               crate root, data_dir()
  pe_loader.rs         PE parsing / VA reads
  opcode_map.rs        canonical 3.5.1 opcode -> handler map
  frontend/
    mod.rs             VmFrontend trait (detect/fetch_stream/handler_addrs)
    fetch_finder.rs    movzx-byte FDJ scan + watchset/snapshot helpers
    cryptor_miner.rs   per-site ValueCryptor mining (branch-following)
    site_emulator.rs   sample-specific oracle decoders (legacy)
    handler_classifier.rs  handler classification via legacy patterns
    classifier_legacy.rs   first-bytes patterns (weak; fallback only)
    v1_gate.rs         VMP 1.x gate-scan front-end
    v2_walker.rs       VMP 2.x dispatch-table front-end
    v3_fdj.rs          VMP 3.x FDJ front-end
  backend/
    value_cryptor.rs   ADD/SUB/XOR/ROL/ROR/NOT/NEG/... chains
    lifter.rs          iced-x86 text lift + Remill subprocess backend
    llvm_pipeline.rs   opt -O3 over Remill IR (real passes)
  harness/
    snapshot.rs        Unicorn snapshots: sections+scratch mapping,
                       IN hooks, import stubs, watch hits, memlog,
                       zero-slide fast-forward
tests/
  smoke.rs             synthetic PE64 + hand-built fetch chain (no fixtures)
tools/                 (analysis drivers; each documents its inputs)
scripts/               Triton/angr/Ghidra helpers (external deps)

Compilación

# Debian/Ubuntu (LLVM 22 for optional llvm feature)
sudo apt install llvm-22-dev libclang-22-dev clang-22
cargo build --release          # pure Rust (no LLVM link)
cargo build --release --features llvm   # llvm-sys link check
pip install triton-library capstone pefile   # python helpers
# Remill (optional lifter backend): build upstream, export REMILL_LIFT=<path>/remill-lift
# Souper (optional MBA superoptimizer): external only, wire its `souper` CLI
#   to scripts/triton_handlers.py output if desired; not vendored.

Dockerfile reproduce el entorno completo. CI ejecuta cargo build/test --release (features por defecto, sin enlace a LLVM, sin fixtures comerciales; las pruebas condicionadas por muestra se omiten, tests/smoke.rs siempre se ejecuta). La comprobación opcional de enlace --features llvm se ejecuta como un trabajo de CI no bloqueante (necesita LLVM 22).

Entorno

VarPor defectoSignificado
DATA_DIR./datatodos los artefactos de la herramienta
WATCH_FILE$DATA_DIR/watch.txtVAs de fetch a vigilar
CARDSopen_cards3.jsonarchivo de caché de tarjetas de Remill
BIN_PATHruta del binario objetivo (por defecto en las herramientas: marcador de posición ./target.exe)binario objetivo
IAT_JSON—mapa de stubs de importación {api_name: iat_va}
VMP_TEST_BIN / VMP_ORACLEtests/fixtures/…pruebas con muestras licenciadas
REMILL_LIFTremill-lift-22 en PATHbinario de elevación de Remill
DEVIRT / FORCE_EDGE / REPO_ROOT./target/… / .binarios invocados por scripts + raíz del repositorio
VMP_WORK_DIRtemp del sistemascratch de elevación
EFLAGS / IN_RET / DLL_MAIN—variantes de estado de la instantánea

Método (3.x, la ruta probada)

  1. Tomar una instantánea del binario desde su entrada en Unicorn (secciones + scratch, ret de página cero, stubs de importación, hook IN).
  2. Detectar sitios de fetch (los movzx byte [reg] ejecutados superan a los patrones estáticos — los aciertos solo estáticos midieron 0% de ejecución en objetivos endurecidos).
  3. Minar los cryptors por sitio desde el código (worklist con seguimiento de ramas).
  4. Decodificar raw^key con el registro de clave arquitectónico (los barridos libres sobreajustan — restringir a la clave minada).
  5. Elevar los handlers alcanzados vía Remill, opt -O3, emitir tarjetas/flujo de datos, recompilar con llc (ld -r demuestra la composabilidad).

Licencia

MIT (ver LICENSE) con notas de dependencias (en particular Unicorn GPL-2.0). Solo para uso de investigación/educativo, sobre binarios que posees o puedes analizar.

Descargar herramienta