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

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

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

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

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

Категории

Все категории
Loading categories
vmprotect-research | Kitploit
Инструменты/GitHubGitHub/rasetsuu/vmprotect-research
Статический анализДинамический анализ (песочница)Обратная инженерияОтладчикиАнализ Бинарных ФайловСтатьи и ИсследованияОбучение и ОбразованиеАнализ ПрошивокЭксплуатация Бинарных Файлов
GitHubrasetsuu/vmprotect-research

vmprotect-research

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

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

VMP Devirtualizer — производственный релиз

Универсальный девиртуализатор VMProtect с поддержкой версий 1.x, 2.x и 3.x. Автономный CLI-инструмент + плагин для Ghidra.

Статус: ✅ Готов к продакшену | Валидация: 22/22 образцов (100%) | Охват: VMP ≤3.6 (для 3.7+ требуется реверс-инжиниринг)


Возможности

  • Поддержка нескольких версий: VMP 1.x, 2.x, 3.x (1.1 → 3.10.5)
  • Определение версии: автоматическое распознавание на основе эвристик
  • Извлечение таблицы диспетчеризации: перехват XOR-ключей через Unicorn для зашифрованных таблиц
  • Классификация хэндлеров: 256 типов хэндлеров для всех версий
  • Декодирование байткода: восстановление инструкций x86-64 из VM-операций
  • Поддержка платформ: бинарники Windows PE + Linux ELF
  • Интеграция с декомпилятором: VM-байткод → псевдокод
  • Плагин Ghidra: интерактивный анализ хэндлеров + аннотации

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

Сборка

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

Бинарник: target/release/vmp_devirt

Использование

root@kitploit:~
# Analyze binary
./target/release/vmp_devirt <binary_path>

# Export handlers
./target/release/vmp_devirt <binary_path> --export-handlers handlers.json

# Export bytecode
./target/release/vmp_devirt <binary_path> --export-bytecode bytecode.json

Результаты валидации

Сводка

  • Всего образцов: 22
  • Процент успеха: 22/22 (100%)
  • Среднее время обработки: 229мс
  • Общее время: 5,0 секунд

По версиям

Протестированные образцы:

  • 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

Подробные результаты см. в VALIDATION_REPORT.md.


Архитектура

root@kitploit:~
Input Binary
    ↓
PE/ELF Loader (src/pe_loader.rs)
    ↓
Version Detector (src/version.rs)
    ↓
Dispatch Table Extractor (src/dispatch_table.rs)
    ├─ Unicorn XOR Key Capture (src/unicorn_emulator.rs)
    └─ Pattern Matching Fallback
    ↓
Handler Classifier (src/handler_classifier.rs)
    ↓
Bytecode Decoder (src/bytecode.rs)
    ├─ Operand Decryption (src/decrypt.rs)
    └─ ALU Reconstruction (src/alu.rs)
    ↓
Output (JSON/Pseudo-asm)

Основные модули

Итого: ~2800 строк производственного кода на Rust


Детали реализации

Определение версии

Эвристики на основе:

  • Паттернов входов хэндлеров (опкоды POP/PUSH)
  • Механизма диспетчеризации (jumptable против зашифрованной цепочки против цепочки хэндлеров)
  • Структуры PE-секций (.vmp0, .vmp1, .text)
  • Паттерна входного стаба (PUSH encrypted + CALL/JMP)

Извлечение таблицы диспетчеризации

VMP 1.x/2.x: извлечение XOR-ключей сопоставлением с образцом в секции .text

  • Сканирует паттерны инструкций XOR
  • Выводит ключи из последовательностей опкодов
  • Проверяет по диапазону базового адреса образа

VMP 3.x: диспетчеризация через цепочки хэндлеров

  • Находит точки диспетчеризации (DP0-DP5)
  • Прослеживает цепочки хэндлеров
  • Извлекает 256 записей диспетчеризации

Классификация хэндлеров

Сопоставление с образцом по:

  • Паттерну входа (49 8b 2a = POP для VMP 3.x)
  • Базовой операции (SUB, ADD, XOR и т.д.)
  • Типам операндов (slot, offset, immediate)
  • Механизму диспетчеризации (push/ret, прямой jmp)

Декодирование байткода

  1. Прочитать опкод из секции байткода
  2. Найти семантику хэндлера
  3. Извлечь операнды (slot, offset)
  4. Расшифровать операнды через цепочки ValueCryptor
  5. Восстановить инструкцию x86-64
  6. Обработать VM-контекст (регистровый файл, флаги, стек)

Известные ограничения

  1. VMP 3.7+ (объединённые хэндлеры) — не поддерживается. В VMP 3.7+ появились объединённые хэндлеры (несколько операций на один вход хэндлера), что ломает текущий классификатор. Требуется реверс-инжиниринг с реальным образцом 3.7+. Подробности см. в FUTURE_WORK.md.
  2. Предупреждения проверки XOR-ключей — ожидаемы для VMP 1.x/2.x (не критично)
  3. Определение диспетчеризации VMP 3.x — использует резервную стратегию для более новых обфускаций
  4. Образцы Linux — не включены в текущий набор тестов (поддержка ELF реализована)

Производительность

  • Пропускная способность: ~4,4 образца/сек
  • Память: <50 МБ на образец
  • Задержка: 5 мс–3,25 с в зависимости от размера бинарника

Документация

  • VALIDATION_REPORT.md — полные результаты тестирования
  • IMPLEMENTATION_COMPLETE.md — статус реализации
  • UNICORN_IMPLEMENTATION_REPORT.md — детали перехвата XOR-ключей

Исходные материалы

Архитектура основана на анализе утечки исходного кода VMP 3.5.1:

  • Структура хэндлеров и механизм диспетчеризации
  • Реализация цепочек ValueCryptor
  • Паттерны ALU-операций
  • Управление VM-контекстом

Лицензия

Использование в исследовательских/образовательных целях


Контакты

По вопросам и проблемам обращайтесь к отчётам о валидации или документации по реализации.

Последнее обновление: 2026-06-01 Статус: Готов к продакшену

Скачать инструмент
Version
Samples
Success
Avg Time
VMP 1.x44/438ms
VMP 2.x66/6734ms
VMP 3.x1212/1239ms
ModulePurposeLines
src/lib.rsОсновной интерфейс библиотеки150
src/version.rsОпределение версии VMP200
src/pe_loader.rsЗагрузка PE/ELF-бинарников350
src/dispatch_table.rsИзвлечение таблицы диспетчеризации400
src/unicorn_emulator.rsПерехват XOR-ключей308
src/handler_classifier.rsОпределение типов хэндлеров280
src/bytecode.rsЧтение и декодирование байткода320
src/decrypt.rsЦепочки ValueCryptor250
src/alu.rsВосстановление ALU-операций200
src/opcode_table.rsУправление опкодами180
src/bin/cli.rsCLI-инструмент400