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
VMDragonSlayer — 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. | Kitploit
Herramientas/GitHubGitHub/poppopjmp/vmdragonslayer
Análisis EstáticoAnálisis Dinámico (Sandboxing)Análisis de VulnerabilidadesIngeniería InversaDepuradoresFuzzingAnálisis de MalwareAnálisis de BinariosAprendizaje Automático
Papers e Investigación
Aprendizaje y Educación
GitHubpoppopjmp/vmdragonslayer

VMDragonSlayer

Ver Repositorio
431685hace 11 mesesRevisado por Kitploit

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 →

Acerca de

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.

Compartir

VMDragonSlayer

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.

Características principales

  • Análisis multi-motor: Combina técnicas de análisis estático, dinámico e híbrido
  • Detección de VM: Detección automatizada de protectores de VM comerciales y personalizados
  • Ecosistema de plugins: Integraciones con Ghidra, IDA Pro y Binary Ninja
  • Aprendizaje Automático: Modelos de ML conceptuales para clasificación de patrones
  • Arquitectura extensible: Diseño modular para flujos de trabajo de análisis personalizados
  • Marco de investigación: Construido para la investigación de malware y la educación en ingeniería inversa

Capacidades principales

DominioMotor / MóduloDestacados
Descubrimiento de VManalysis.vm_discoveryIdentificación del despachador y tabla de manejadores, heurísticas de VM anidadas
Análisis de Patronesanalysis.pattern_analysisBasado en reglas + similitud + ML (selección automática híbrida)
Seguimiento de Manchasanalysis.taint_trackingSeguimiento de manchas a nivel de byte impulsado por Intel Pin, descubrimiento de manejadores, confianza de flujo
Ejecución Simbólicaanalysis.symbolic_execution.executorExploració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éticosdata/training/synthetic_sample_generator.pyMutación de ofuscación, generación de muestras multiarquitectura
Base de Datos de Patronesdata/patterns/JSON + BD mejorada + patrones runtime respaldados por SQLite
Plugin Ghidraplugins/ghidra/Integración de UI en progreso (faltan varias plantillas)
Esquemas / Validacióndata/schemas/Formatos de salida de análisis y patrones validados por esquemas JSON

Resumen de la Arquitectura

VMDragonSlayer utiliza una arquitectura modular donde múltiples motores de análisis trabajan juntos:

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

Motores de Análisis Principales

1. Motor de Descubrimiento de VM (dragonslayer.analysis.vm_discovery)

  • Propósito: Detectar y clasificar esquemas de protección basados en VM
  • Técnicas: Detección de bucles de despachador, análisis de tabla de manejadores, heurísticas de flujo de control
  • Objetivos: VMProtect, Themida, VMs maliciosas personalizadas, protección anidada

2. Seguimiento Dinámico de Manchas (dragonslayer.analysis.taint_tracking)

  • Propósito: Rastrear el flujo de datos a través de la ejecución de la VM para identificar rutas críticas
  • Implementación: Instrumentación basada en Intel Pin con precisión a nivel de byte
  • Características: Memoria sombra, evasión de anti-análisis, descubrimiento automatizado de manejadores

3. Análisis de Patrones (dragonslayer.analysis.pattern_analysis)

  • Propósito: Clasificar y categorizar patrones y comportamientos de VM
  • Métodos: Coincidencia basada en reglas, análisis de similitud, clasificación ML
  • Base de datos: Base de datos de patrones extensible con esquemas JSON

4. Ejecución Simbólica (dragonslayer.analysis.symbolic_execution)

  • Propósito: Explorar rutas de ejecución de la VM simbólicamente
  • Características: Resolución de restricciones, priorización de rutas, fusión de estados
  • Integración: Utiliza resultados del análisis de manchas para sembrar la exploración

5. Pipeline de Aprendizaje Automático (dragonslayer.ml)

  • Propósito: Clasificación automatizada y asistencia en el análisis
  • Modelos: Modelos conceptuales básicos para investigación y educación
  • Componentes: Extracción de características, entrenamiento de modelos, predicción de conjunto

Estructura del Repositorio

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

Ecosistema de Plugins

VMDragonSlayer se integra con las principales herramientas de ingeniería inversa:

Plugin Ghidra

  • Lenguaje: Java con sistema de construcción Gradle
  • Características: UI de análisis de VM, visualización de patrones, flujos de trabajo de análisis automatizados
  • Estado: Marco implementado, componentes de UI en desarrollo

Plugin IDA Pro

  • Lenguaje: Python
  • Características: Integración perfecta con el motor de análisis de IDA
  • Estado: Funcionalidad central disponible

Plugin Binary Ninja

  • Lenguaje: Python
  • Características: Integración nativa con la API de Binary Ninja
  • Estado: Integración básica implementada

Componentes de Aprendizaje Automático

Nota: Los modelos ML incluidos son implementaciones conceptuales básicas diseñadas para fines de investigación y educativos.


Instalación

Requisitos previos

  • Python 3.8 o superior
  • Una o más herramientas de ingeniería inversa:
    • Ghidra 10.0+ (para el plugin Ghidra)
    • IDA Pro 7.0+ (para el plugin IDA)
    • Binary Ninja (para el plugin Binary Ninja)

Requisitos de Hardware

Requisitos mínimos

  • CPU: Procesador x64 moderno
  • RAM: 8GB mínimo, 16GB recomendado
  • Almacenamiento: 5GB de espacio libre
  • SO: Windows 10/11, Linux (Ubuntu 20.04+), macOS 11+

Requisitos de GPU (Opcional pero recomendado)

  • GPU NVIDIA: GTX 1060 o más reciente para un rendimiento óptimo
  • CUDA: Versión 11.8 o 12.1+ (se instala automáticamente con PyTorch)
  • VRAM: 4GB mínimo para modelos ML

Limitaciones importantes

  • Máquinas Virtuales: Las funciones aceleradas por GPU requieren acceso directo al hardware y pueden no funcionar en VMs
  • WSL: Algunas funciones de GPU pueden tener funcionalidad limitada en entornos WSL
  • Servidores remotos: Asegúrese de que los controladores CUDA estén instalados correctamente para el acceso a GPU sin interfaz gráfica

Estado Actual (Problemas Solucionados)

Ejemplos verificados que funcionan

root@kitploit:~
# Esto ahora funciona perfectamente:
from dragonslayer.core.orchestrator import Orchestrator, AnalysisType

orchestrator = Orchestrator()
result = orchestrator.analyze_binary("your_binary.exe", analysis_type=AnalysisType.VM_DISCOVERY)

# Los resultados están correctamente estructurados:
vmd = result.get("vm_discovery", {})
print(f"VM detected: {vmd.get('vm_detected', False)}")
print(f"Handlers found: {len(vmd.get('handlers_found', []))}")

Inicio Rápido

root@kitploit:~
# 1. Instalar con todas las dependencias
pip install -r requirements.txt
pip install -e .

Marco Principal

root@kitploit:~
# Clonar repositorio
git clone https://github.com/poppopjmp/VMDragonSlayer.git
cd VMDragonSlayer

# INSTALACIÓN ACTUALIZADA
# Instalar todas las dependencias requeridas incluyendo z3-solver
pip install -r requirements.txt

# Instalar el marco en modo desarrollo
pip install -e .

Instalación para Diferentes Hardware

root@kitploit:~
# Instalación solo CPU (funcionalidad básica)
pip install -r requirements.txt
pip install -e .

# GPU NVIDIA con CUDA 12.x (serie RTX 30xx/40xx) 
pip install -r requirements.txt
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
pip install -e .

# GPU NVIDIA con CUDA 11.8 (GPUs más antiguas)
pip install -r requirements.txt  
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install -e .

Crear entorno virtual

python -m venv venv source venv/bin/activate # Linux/macOS

o

venv\Scripts\activate # Windows

Instalar dependencias

pip install -r requirements.txt

Instalar marco

cd dragonslayer pip install -e .

Instalación de Plugins

Elija su desensamblador preferido:

Plugin Ghidra

root@kitploit:~
cd plugins/ghidra
./build.bat  # Windows
# o
./build.sh   # Linux/macOS

# Instalar en Ghidra
cp dist/VMDragonSlayer.zip $GHIDRA_INSTALL_DIR/Extensions/

Inicio Rápido

1. Uso Básico del Marco

root@kitploit:~
from dragonslayer.core.orchestrator import Orchestrator, AnalysisType

# Inicializar orquestador (carga la configuración predeterminada automáticamente)
orchestrator = Orchestrator()

# Analizar un binario
result = orchestrator.analyze_binary("path/to/protected_binary.exe", analysis_type=AnalysisType.VM_DISCOVERY)

# Extraer resultados del descubrimiento de VM
vmd = result.get("vm_discovery", {})
print(f"Protección VM Detectada: {vmd.get('vm_detected', False)}")
print(f"Número de Manejadores: {len(vmd.get('handlers_found', []))}")
print(f"Éxito del Análisis: {result.get('success', False)}")

Estado de los Plugins

Integraciones con Herramientas de Ingeniería Inversa

HerramientaEstadoETANotas
API DirectaEstableDisponible AhoraEnfoque recomendado
Plugin GhidraEn ProgresoOctubre 2025Funcionalidad básica disponible
Plugin IDA ProEn DesarrolloNoviembre 2025Trabajo en progreso - no funcional
Plugin Binary NinjaEn DesarrolloNoviembre 2025Trabajo en progreso - no funcional

Arquitectura

VMDragonSlayer utiliza una arquitectura modular con múltiples motores de análisis:

Motores de Análisis

Motor de Descubrimiento de VM

  • Detección del Despachador: Identifica bucles de despachador de VM mediante análisis de flujo de control
  • Mapeo de Manejadores: Mapea los manejadores de VM y sus relaciones
  • Reconocimiento de Arquitectura: Detecta VMProtect, Themida y arquitecturas de VM personalizadas

Motor de Seguimiento de Manchas

  • Análisis Dinámico: Rastrea el flujo de datos a través de los manejadores de VM
  • Control de Precisión: Granularidad a nivel de byte o instrucción
  • Anti-Evasión: Evita técnicas comunes de detección de análisis

Motor de Análisis de Patrones

  • Coincidencia de Firmas: Reconocimiento de patrones basado en reglas
  • Clasificación ML: Clasificación de manejadores basada en aprendizaje automático
  • Análisis de Similitud: Coincidencia difusa para detección de variantes

Motor de Ejecución Simbólica

  • Exploración de Rutas: Exploración sistemática de rutas de ejecución
  • Resolución de Restricciones: Resolución de restricciones basada en Z3
  • Análisis Consciente de VM: Manejo especializado para código virtualizado

Modelos de Aprendizaje Automático

El marco incluye varios modelos conceptuales:

Modelos Disponibles

  • Clasificador de Bytecode: Reconocimiento de patrones en secuencias de bytecode de VM
  • Detector de VM: Clasificación binaria para presencia de protección VM
  • Clasificador de Manejadores: Clasificación de tipos de manejadores de VM
  • Detector de VMProtect: Detector especializado para patrones de VMProtect
  • Modelo de Conjunto: Combina múltiples clasificadores para mejorar la precisión

Características del Modelo

  • Formato: Compatible con Scikit-learn (serialización joblib)
  • Tamaño: Modelos pequeños adecuados para prototipado rápido
  • Propósito: Ejemplos educativos y líneas base de investigación
  • Datos de Entrenamiento: Muestras sintéticas y limitadas del mundo real

Configuración

Variables de Entorno

root@kitploit:~
# Configuración principal
export VMDS_CONFIG_PATH="/ruta/a/config"
export VMDS_MODEL_PATH="/ruta/a/modelos"
export VMDS_LOG_LEVEL="INFO"

# Configuración de base de datos
export VMDS_DB_URL="sqlite:///vmds.db"

# Configuración de API
export VMDS_API_HOST="localhost"
export VMDS_API_PORT="8000"

Archivos de Configuración

  • data/database_config.json: Configuración de base de datos
  • data/taint_config.properties: Parámetros de análisis de manchas
  • data/models/model_registry_config.toml: Configuración de modelos ML

Ejemplos

Configuración Avanzada

root@kitploit:~
from dragonslayer.core.config import Config
from dragonslayer.analysis.vm_discovery import VMDiscoveryEngine
from dragonslayer.analysis.taint_tracking import TaintTracker

# Configuración personalizada
config = Config({
    'vm_discovery': {
        'min_handler_count': 10,
        'dispatcher_threshold': 0.8
    },
    'taint_tracking': {
        'precision': 'byte_level',
        'max_depth': 1000
    }
})

# Inicializar motores específicos
vm_engine = VMDiscoveryEngine(config)
taint_tracker = TaintTracker(config)

# Ejecutar análisis dirigido
vm_result = vm_engine.analyze("binary.exe")
if vm_result.vm_detected:
    taint_result = taint_tracker.analyze(vm_result.handlers)

Análisis por Lotes

root@kitploit:~
from dragonslayer.workflows.manager import WorkflowManager

# Procesar múltiples binarios
manager = WorkflowManager()
results = manager.process_batch([
    "sample1.exe",
    "sample2.exe", 
    "sample3.exe"
])

# Generar informe resumido
manager.generate_report(results, "analysis_report.json")

Contribuciones

¡Agradecemos las contribuciones! Por favor, consulte:

  • CONTRIBUTING.md - Directrices de desarrollo
  • CODE_OF_CONDUCT.md - Estándares comunitarios
  • SECURITY.md - Política de seguridad

Licencia

Este proyecto está licenciado bajo la Licencia Pública General GNU v3.0. Consulte LICENSE para más detalles.


Cita

Si utiliza VMDragonSlayer en su investigación, por favor cite:

root@kitploit:~
@software{vmdragonslayer_2025,
  title   = {VMDragonSlayer: Automated VM-based Binary Protection Analysis},
  author  = {Panico, Agostino},
  year    = {2025},
  url     = {https://github.com/poppopjmp/VMDragonSlayer}
}

Contacto

  • Autor: van1sh
  • Correo electrónico: [email protected]
  • GitHub: @poppopjmp

Agradecimientos

Un agradecimiento especial a la comunidad de ingeniería inversa y a los desarrolladores de las herramientas y bibliotecas de análisis subyacentes que hacen posible este marco.

Descargar herramienta