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

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

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

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

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

Категории

Все категории
Loading categories
vmp-devirt — Исследовательская платформа для девиртуализации VMProtect с поддержкой трассировки: фронтенды версий передают данные в общий бэкенд Remill/LLVM для лифтинга обработчиков, восстановления потоков данных и генерации нативных объектов. | Kitploit
Инструменты/GitHubGitHub/rasetsuu/vmp-devirt
Статический анализДинамический анализ (песочница)Анализ КодаОбратная инженерияОтладчикиАнализ вредоносных программУтилиты и фреймворкиАнализ Бинарных ФайловСтатьи и ИсследованияОбратная Разработка с Помощью ИИЭксплуатация Бинарных Файлов
71 день назадЕщё не проверено
GitHubrasetsuu/vmp-devirt

vmp-devirt

Исследовательская платформа для девиртуализации VMProtect с поддержкой трассировки: фронтенды версий передают данные в общий бэкенд Remill/LLVM для лифтинга обработчиков, восстановления потоков данных и генерации нативных объектов.

Репозиторий

Популярное

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

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

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

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

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

vmp-devirt

Исследование девиртуализации VMProtect с поддержкой трассировки: фронтенды версий (1.x gate / 2.x table / 3.x FDJ), питающие один общий бэкенд (лифтинг Remill → оптимизация LLVM → семантические карточки → поток данных → нативные объекты).

Проверено на самостоятельно собранных бинарниках VMP 3.9.4 в нескольких режимах защиты. Совместимость с VMP 3.8.x/3.10.x экспериментальна и зависит от образца.

Область применения и ограничения (прочитать в первую очередь)

Это исследовательская платформа для анализа защищённых VMProtect бинарников, которыми вы владеете или на реверс-инжиниринг которых у вас есть лицензия — а не универсальный девиртуализатор «нажатием одной кнопки»:

  • VMP 3.7+ требует исполнения: потоки выборки, ключи и адреса обработчиков берутся из инструментированных снимков Unicorn, а не из статического анализа.
  • Покрытие ограничено трассой: восстанавливаются только исполненные пути. Многосостоянийные прогоны + слияние ветвей расширяют его; восстановление CFG всей программы для сложных целей остаётся ручным.
  • Анти-эмуляция (временные шлюзы, ловушки ввода-вывода, проверки окружения) требует заглушек под каждую цель — харнесс предоставляет механизм, вы предоставляете значения.
  • Фронтенды VMP 1.x/2.x — это эвристические сканеры; их старые статические обходчики сохранены как перекрёстные оракулы, а не как основные пути.

Структура

src/
  lib.rs               корень крейта, data_dir()
  pe_loader.rs         разбор PE / чтение VA
  opcode_map.rs        канонический 3.5.1 opcode -> карта обработчиков
  frontend/
    mod.rs             трейт VmFrontend (detect/fetch_stream/handler_addrs)
    fetch_finder.rs    movzx-byte FDJ сканирование + помощники watchset/snapshot
    cryptor_miner.rs   майнинг ValueCryptor по сайтам (с следованием ветвям)
    site_emulator.rs   специфичные для образца оракульные декодеры (legacy)
    handler_classifier.rs  классификация обработчиков через legacy-паттерны
    classifier_legacy.rs   паттерны первых байт (слабые; только как fallback)
    v1_gate.rs         фронтенд сканирования шлюзов VMP 1.x
    v2_walker.rs       фронтенд таблицы диспетчеризации VMP 2.x
    v3_fdj.rs          фронтенд FDJ VMP 3.x
  backend/
    value_cryptor.rs   цепочки ADD/SUB/XOR/ROL/ROR/NOT/NEG/...
    lifter.rs          текстовый лифтинг iced-x86 + бэкенд подпроцесса Remill
    llvm_pipeline.rs   opt -O3 над Remill IR (реальные проходы)
  harness/
    snapshot.rs        снимки Unicorn: отображение секций+scratch,
                       IN-хуки, заглушки импортов, попадания watch, memlog,
                       zero-slide fast-forward
tests/
  smoke.rs             синтетический PE64 + вручную собранная цепочка выборки (без фикстур)
tools/                 (драйверы анализа; каждый документирует свои входные данные)
scripts/               помощники Triton/angr/Ghidra (внешние зависимости)

Сборка

# Debian/Ubuntu (LLVM 22 для опциональной фичи llvm)
sudo apt install llvm-22-dev libclang-22-dev clang-22
cargo build --release          # чистый Rust (без линковки LLVM)
cargo build --release --features llvm   # проверка линковки llvm-sys
pip install triton-library capstone pefile   # python-помощники
# Remill (опциональный бэкенд лифтера): собрать upstream, экспортировать REMILL_LIFT=<path>/remill-lift
# Souper (опциональный MBA-супероптимизатор): только внешний, подключить его CLI `souper`
#   к выводу scripts/triton_handlers.py при желании; не вендорится.

Dockerfile воспроизводит полное окружение. CI запускает cargo build/test --release (фичи по умолчанию, без линковки LLVM, без коммерческих фикстур; тесты, зависящие от образцов, пропускаются, tests/smoke.rs выполняется всегда). Опциональная проверка линковки --features llvm запускается как неблокирующая CI-задача (требует LLVM 22).

Окружение

ПеременнаяПо умолчаниюЗначение
DATA_DIR./dataвсе артефакты инструмента
WATCH_FILE$DATA_DIR/watch.txtVA выборки для отслеживания
CARDSopen_cards3.jsonфайл кэша карточек Remill
BIN_PATHпуть к целевому бинарнику (по умолчанию в tools: заглушка ./target.exe)целевой бинарник
IAT_JSON—карта заглушек импорта {api_name: iat_va}
VMP_TEST_BIN / VMP_ORACLEtests/fixtures/…тесты на лицензированных образцах
REMILL_LIFTremill-lift-22 в PATHбинарник лифтинга Remill
DEVIRT / FORCE_EDGE / REPO_ROOT./target/… / .вызываемые скриптами бинарники + корень репозитория
VMP_WORK_DIRсистемный tempрабочая область лифтинга
EFLAGS / IN_RET / DLL_MAIN—варианты состояния снимка

Метод (3.x, проверенный путь)

  1. Снять снимок бинарника с его точки входа в Unicorn (секции + scratch, нулевая страница ret, заглушки импортов, IN-хук).
  2. Обнаружить сайты выборки (исполненные movzx byte [reg] превосходят статические паттерны — чисто статические попадания показали 0% исполнения на укреплённых целях).
  3. Извлечь крипторы по сайтам из кода (worklist со следованием ветвям).
  4. Декодировать raw^key с помощью архитектурного регистра ключа (свободные переборы переобучаются — ограничивайте извлечённым ключом).
  5. Лифтить достигнутые обработчики через Remill, opt -O3, выдавать карточки/поток данных, перекомпилировать с llc (ld -r доказывает композируемость).

Лицензия

MIT (см. LICENSE) с примечаниями о зависимостях (в частности, Unicorn GPL-2.0). Только для исследовательского/образовательного использования, на бинарниках, которыми вы владеете или которые можете анализировать.

Скачать инструмент