Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
VMDragonSlayer — Многофункциональный фреймворк для распаковки и анализа бинарных файлов, защищённых виртуальными машинами, использующий динамическое отслеживание меток, символьное выполнение, классификацию шаблонов и приоритизацию на основе машинного обучения для автоматизации обратной разработки коммерческих и пользовательских протекторов. | Kitploit
Инструменты/GitHubGitHub/poppopjmp/vmdragonslayer
Статический анализДинамический анализ (песочница)Анализ уязвимостейОбратная инженерияОтладчикиФаззингАнализ вредоносных программАнализ Бинарных ФайловМашинное Обучение

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Статьи и Исследования
Обучение и Образование
GitHubpoppopjmp/vmdragonslayer

VMDragonSlayer

Репозиторий
4316810 месяцев назадПроверено Kitploit

Описание

Многофункциональный фреймворк для распаковки и анализа бинарных файлов, защищённых виртуальными машинами, использующий динамическое отслеживание меток, символьное выполнение, классификацию шаблонов и приоритизацию на основе машинного обучения для автоматизации обратной разработки коммерческих и пользовательских протекторов.

Поделиться

VMDragonSlayer

Проект будет опубликован к середине октября. Рефакторинг в процессе.

Продвинутая платформа для обнаружения и анализа виртуальных машин

VMDragonSlayer — это комплексная платформа для анализа бинарных файлов, защищённых протекторами на основе виртуальных машин (VM), такими как VMProtect 2.x/3.x, Themida и пользовательскими вредоносными VM. Платформа объединяет несколько аналитических движков, включая динамическое отслеживание меток (DTT), символьное выполнение (SE), классификацию шаблонов и машинное обучение, чтобы автоматизировать процесс обратной разработки.

Цель: Превратить сложный анализ защищённых бинарных файлов, занимающий недели/месяцы ручной работы, в структурированный, автоматизированный анализ с объяснимыми результатами.

Ключевые особенности

  • Мультидвижковый анализ: Сочетает статические, динамические и гибридные методы анализа
  • Обнаружение VM: Автоматическое детектирование коммерческих и пользовательских VM-протекторов
  • Экосистема плагинов: Интеграции с Ghidra, IDA Pro и Binary Ninja
  • Машинное обучение: Концептуальные ML-модели для классификации шаблонов
  • Расширяемая архитектура: Модульный дизайн для пользовательских рабочих процессов анализа
  • Исследовательская платформа: Создана для исследований вредоносного ПО и обучения обратной разработке

Базовые возможности

ОбластьДвижок / МодульОсновные возможности
Обнаружение VManalysis.vm_discoveryИдентификация диспетчера и таблицы обработчиков, эвристика вложенных VM
Анализ шаблоновanalysis.pattern_analysisНа основе правил + по сходству + ML (гибридный авто-выбор)
Отслеживание метокanalysis.taint_trackingОтслеживание меток на уровне байтов через Intel Pin, обнаружение обработчиков, уверенность потока
Символьное выполнениеanalysis.symbolic_execution.executorИсследование с весами PathPrioritizer (ML), отслеживание ограничений и состояний
Гибридная оркестровка(ядро Python)Последовательные / параллельные / адаптивные рабочие процессы (отчёт Ghidra указывает на реализацию)
Синтетические данныеdata/training/synthetic_sample_generator.pyМутации обфускации, генерация образцов для нескольких архитектур
База шаблоновdata/patterns/JSON + расширенная БД + шаблоны времени выполнения на основе SQLite
Плагин Ghidraplugins/ghidra/В разработке UI-интеграция (несколько шаблонов отсутствуют)
Схемы / Валидацияdata/schemas/Выходные данные анализа и форматы шаблонов, проверенные по JSON-схеме

Обзор архитектуры

VMDragonSlayer использует модульную архитектуру, в которой несколько аналитических движков работают совместно:

root@kitploit:~
graph TD
    A[VM Discovery Engine] --> B[Pattern/ML Classifier]
    B --> C[Symbolic Execution Engine]
    B --> D[Dynamic Taint Tracker]
    D --> C
    
    subgraph DataSources ["Data Sources"]
        E[Pattern Database]
        F[ML Models - PoC]
    end
    
    subgraph Coordination
        G[Orchestrator - Workflow Management & Coordination]
    end
    
    E --> B
    F --> B
    A --> G
    B --> G
    C --> G
    D --> G
    E --> G
    F --> G
    G --> H[REST API Server]
    G --> I[Plugins - RE Tools]

Основные аналитические движки

1. Движок обнаружения VM (dragonslayer.analysis.vm_discovery)

  • Назначение: Обнаружение и классификация схем защиты на основе VM
  • Методы: Обнаружение цикла диспетчера, анализ таблицы обработчиков, эвристика управления потоком
  • Цели: VMProtect, Themida, пользовательские вредоносные VM, вложенная защита

2. Динамическое отслеживание меток (dragonslayer.analysis.taint_tracking)

  • Назначение: Отслеживание потока данных при выполнении VM для выявления критических путей
  • Реализация: Инструментирование на основе Intel Pin с точностью до байта
  • Возможности: Теневая память, обход антианализа, автоматическое обнаружение обработчиков

3. Анализ шаблонов (dragonslayer.analysis.pattern_analysis)

  • Назначение: Классификация и категоризация VM-шаблонов и поведений
  • Методы: Сопоставление на основе правил, анализ сходства, ML-классификация
  • База данных: Расширяемая база шаблонов с JSON-схемами

4. Символьное выполнение (dragonslayer.analysis.symbolic_execution)

  • Назначение: Символьное исследование путей выполнения VM
  • Возможности: Решение ограничений, приоритизация путей, слияние состояний
  • Интеграция: Использует результаты анализа меток для запуска исследования

5. Конвейер машинного обучения (dragonslayer.ml)

  • Назначение: Автоматизированная классификация и помощь в анализе
  • Модели: Базовые концептуальные модели для исследований и обучения
  • Компоненты: Извлечение признаков, обучение моделей, ансамблевое предсказание

Структура репозитория

root@kitploit:~
VMDragonSlayer/
├── dragonslayer/                    # Главный пакет Python
│   ├── analysis/                   # Аналитические движки
│   │   ├── vm_discovery/          # Обнаружение и классификация VM
│   │   ├── pattern_analysis/      # Сопоставление шаблонов и ML-классификация
│   │   ├── symbolic_execution/    # Движок символьного выполнения
│   │   ├── taint_tracking/        # Динамический анализ меток
│   │   └── anti_evasion/          # Контрмеры против антианализа
│   ├── api/                       # REST API сервер и клиент
│   ├── core/                      # Базовые компоненты платформы
│   ├── ml/                        # Конвейер машинного обучения
│   ├── analytics/                 # Отчётность и метрики анализа
│   ├── gpu/                       # Поддержка ускорения на GPU
│   ├── utils/                     # Вспомогательные функции
├── data/                          # Файлы конфигурации и данных
│   ├── patterns/                  # База шаблонов
│   ├── models/                    # ML-модели и метаданные
│   │   ├── pretrained/           # Предобученные модели (PoC)
│   │   └── metadata/             # Метаданные моделей и схемы
│   ├── samples/                   # Примеры файлов и реестры
│   ├── schemas/                   # JSON-схемы для валидации
│   └── training/                  # Конфигурации обучения
├── plugins/                       # Плагины для инструментов обратной разработки
│   ├── ghidra/                   # Плагин Ghidra (Java/Gradle)
│   ├── idapro/                   # Плагин IDA Pro (Python)
│   └── binaryninja/              # Плагин Binary Ninja (Python)
├── tests/                         # Набор тестов
├── documentation/                 # Документация
└── LICENSE                        # Лицензия GPL v3

Экосистема плагинов

VMDragonSlayer интегрируется с основными инструментами обратной разработки:

Плагин Ghidra

  • Язык: Java с системой сборки Gradle
  • Возможности: UI для анализа VM, визуализация шаблонов, автоматизированные рабочие процессы
  • Статус: Платформа реализована, компоненты UI в разработке

Плагин IDA Pro

  • Язык: Python
  • Возможности: Бесшовная интеграция с аналитическим движком IDA
  • Статус: Базовая функциональность доступна

Плагин Binary Ninja

  • Язык: Python
  • Возможности: Нативная интеграция с API Binary Ninja
  • Статус: Реализована базовая интеграция

Компоненты машинного обучения

Примечание: Включённые ML-модели — это базовые концептуальные реализации, предназначенные для исследовательских и образовательных целей.


Установка

Предварительные требования

  • Python 3.8 или выше
  • Один или несколько инструментов обратной разработки:
    • Ghidra 10.0+ (для плагина Ghidra)
    • IDA Pro 7.0+ (для плагина IDA)
    • Binary Ninja (для плагина Binary Ninja)

Требования к оборудованию

Минимальные требования

  • CPU: Современный x64 процессор
  • ОЗУ: Минимум 8 ГБ, рекомендуется 16 ГБ
  • Хранилище: 5 ГБ свободного места
  • ОС: Windows 10/11, Linux (Ubuntu 20.04+), macOS 11+

Требования к GPU (опционально, но рекомендуется)

  • GPU NVIDIA: GTX 1060 или новее для оптимальной производительности
  • CUDA: Версия 11.8 или 12.1+ (устанавливается автоматически вместе с PyTorch)
  • VRAM: Минимум 4 ГБ для ML-моделей

Важные ограничения

  • Виртуальные машины: Функции, ускоренные GPU, требуют прямого доступа к оборудованию и могут не работать в ВМ
  • WSL: Некоторые функции GPU могут иметь ограниченную функциональность в средах WSL
  • Удалённые серверы: Убедитесь, что драйверы CUDA правильно установлены для безголового доступа к GPU

Текущее состояние (исправленные проблемы)

Проверенные рабочие примеры

root@kitploit:~
# Теперь работает отлично:
from dragonslayer.core.orchestrator import Orchestrator, AnalysisType

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

# Результаты правильно структурированы:
vmd = result.get("vm_discovery", {})
print(f"VM обнаружена: {vmd.get('vm_detected', False)}")
print(f"Найдено обработчиков: {len(vmd.get('handlers_found', []))}")

Быстрый старт

root@kitploit:~
# 1. Установка со всеми зависимостями
pip install -r requirements.txt
pip install -e .

Базовая платформа

root@kitploit:~
# Клонирование репозитория
git clone https://github.com/poppopjmp/VMDragonSlayer.git
cd VMDragonSlayer

# ОБНОВЛЁННАЯ УСТАНОВКА
# Установка всех необходимых зависимостей, включая z3-solver
pip install -r requirements.txt

# Установка платформы в режиме разработки
pip install -e .

Установка для разного оборудования

root@kitploit:~
# Установка только с CPU (базовая функциональность)
pip install -r requirements.txt
pip install -e .

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

# NVIDIA GPU с CUDA 11.8 (старые GPU)
pip install -r requirements.txt  
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install -e .

Создание виртуального окружения

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

или

venv\Scripts\activate # Windows

Установка зависимостей

pip install -r requirements.txt

Установка платформы

cd dragonslayer pip install -e .

Установка плагинов

Выберите предпочитаемый дизассемблер:

Плагин Ghidra

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

# Установка в Ghidra
cp dist/VMDragonSlayer.zip $GHIDRA_INSTALL_DIR/Extensions/

Быстрый старт

1. Базовое использование платформы

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

# Инициализация оркестратора (автоматически загружает конфигурацию по умолчанию)
orchestrator = Orchestrator()

# Анализ бинарного файла
result = orchestrator.analyze_binary("path/to/protected_binary.exe", analysis_type=AnalysisType.VM_DISCOVERY)

# Извлечение результатов обнаружения VM
vmd = result.get("vm_discovery", {})
print(f"Обнаружена защита VM: {vmd.get('vm_detected', False)}")
print(f"Количество обработчиков: {len(vmd.get('handlers_found', []))}")
print(f"Успех анализа: {result.get('success', False)}")

Статус плагинов

Интеграции с инструментами обратной разработки


Архитектура

VMDragonSlayer использует модульную архитектуру с несколькими аналитическими движками:

Аналитические движки

Движок обнаружения VM

  • Обнаружение диспетчера: Идентификация циклов диспетчера VM с помощью анализа управления потоком
  • Сопоставление обработчиков: Сопоставление обработчиков VM и их взаимосвязей
  • Распознавание архитектур: Обнаружение VMProtect, Themida и пользовательских VM-архитектур

Движок отслеживания меток

  • Динамический анализ: Отслеживание потока данных через обработчики VM
  • Контроль точности: Гранулярность на уровне байтов или инструкций
  • Обход антианализа: Обход распространённых методов обнаружения анализа

Движок анализа шаблонов

  • Сопоставление сигнатур: Распознавание шаблонов на основе правил
  • ML-классификация: Классификация обработчиков на основе машинного обучения
  • Анализ сходства: Нечёткое сопоставление для обнаружения вариантов

Движок символьного выполнения

  • Исследование путей: Систематическое исследование путей выполнения
  • Решение ограничений: Решение ограничений на основе Z3
  • Анализ с учётом VM: Специализированная обработка виртуализированного кода

Модели машинного обучения

Платформа включает несколько концептуальных моделей:

Доступные модели

  • Классификатор байт-кода: Распознавание шаблонов в последовательностях VM-байт-кода
  • Детектор VM: Бинарная классификация наличия VM-защиты
  • Классификатор обработчиков: Классификация типов обработчиков VM
  • Детектор VMProtect: Специализированный детектор шаблонов VMProtect
  • Ансамблевая модель: Объединяет несколько классификаторов для повышения точности

Характеристики моделей

  • Формат: Совместимость со Scikit-learn (сериализация joblib)
  • Размер: Небольшие модели, подходящие для быстрого прототипирования
  • Назначение: Обучающие примеры и исследовательские базовые линии
  • Обучающие данные: Синтетические и ограниченные реальные образцы

Конфигурация

Переменные окружения

root@kitploit:~
# Базовая конфигурация
export VMDS_CONFIG_PATH="/path/to/config"
export VMDS_MODEL_PATH="/path/to/models"
export VMDS_LOG_LEVEL="INFO"

# Конфигурация базы данных
export VMDS_DB_URL="sqlite:///vmds.db"

# Конфигурация API
export VMDS_API_HOST="localhost"
export VMDS_API_PORT="8000"

Файлы конфигурации

  • data/database_config.json: Настройки базы данных
  • data/taint_config.properties: Параметры анализа меток
  • data/models/model_registry_config.toml: Конфигурация ML-моделей

Примеры

Расширенная конфигурация

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

# Пользовательская конфигурация
config = Config({
    'vm_discovery': {
        'min_handler_count': 10,
        'dispatcher_threshold': 0.8
    },
    'taint_tracking': {
        'precision': 'byte_level',
        'max_depth': 1000
    }
})

# Инициализация конкретных движков
vm_engine = VMDiscoveryEngine(config)
taint_tracker = TaintTracker(config)

# Запуск целенаправленного анализа
vm_result = vm_engine.analyze("binary.exe")
if vm_result.vm_detected:
    taint_result = taint_tracker.analyze(vm_result.handlers)

Пакетный анализ

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

# Обработка нескольких бинарных файлов
manager = WorkflowManager()
results = manager.process_batch([
    "sample1.exe",
    "sample2.exe",
    "sample3.exe"
])

# Генерация сводного отчёта
manager.generate_report(results, "analysis_report.json")

Участие в разработке

Мы приветствуем вклад! См.:

  • CONTRIBUTING.md — Руководство по разработке
  • CODE_OF_CONDUCT.md — Стандарты сообщества
  • SECURITY.md — Политика безопасности

Лицензия

Этот проект лицензирован на условиях GNU General Public License v3.0. Подробности см. в LICENSE.


Цитирование

Если вы используете VMDragonSlayer в своих исследованиях, пожалуйста, цитируйте:

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

Контакты

  • Автор: van1sh
  • Email: [email protected]
  • GitHub: @poppopjmp

Благодарности

Особая благодарность сообществу обратной разработки и разработчикам базовых инструментов и библиотек анализа, которые сделали возможным создание этой платформы.

Скачать инструмент
ИнструментСтатусОжидаемая датаПримечания
Прямой APIСтабиленДоступен сейчасРекомендуемый подход
Плагин GhidraВ процессеОктябрь 2025Базовая функциональность доступна
Плагин IDA ProВ разработкеНоябрь 2025В процессе — не функционален
Плагин Binary NinjaВ разработкеНоябрь 2025В процессе — не функционален