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

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

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

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

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

Категории

Все категории
Loading categories
vmpdump — Динамический дампер VMP и фиксатор импорта, на основе VTIL. | Kitploit
Инструменты/GitHubGitHub/0xnobody/vmpdump
Динамический анализ (песочница)ЭксплуатацияОбратная инженерияОтладчикиАнализ Бинарных Файлов
GitHub0xnobody/vmpdump

vmpdump

Динамический дампер VMP и фиксатор импорта, на основе VTIL.

Репозиторий
1.4k2315 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

VMPDump

Динамический дампер VMP и фиксатор импортов на основе VTIL. Работает для VMProtect 3.X x64.

До и После

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

VMPDump.exe <Target PID> "<Target Module>" [-ep=<Entry Point RVA>] [-disable-reloc]

Аргументы:

  • <Target PID>: ID целевого процесса в десятичной или шестнадцатеричной форме.
  • <Target Module>: Имя модуля, который необходимо дампить и фиксировать. Может быть пустой строкой (""), если требуется модуль образа процесса.
  • [-ep=<Entry Point RVA>]: Опционально предоставляемый RVA точки входа в шестнадцатеричной форме. VMPDump просто перезаписывает точку входа в опциональном заголовке этим значением.
  • [-disable-reloc]: Опциональная настройка, указывающая VMPDump пометить, что релоки были удалены в выходном образе, заставляя образ загружаться по сохранённому ImageBase. Полезно, если требуются исполняемые дампы.

Инициализация и распаковка VMProtect в целевом процессе должны быть завершены до запуска VMPDump. Это означает, что процесс должен находиться на OEP (Original Entry Point) или после него. Дамп и фиксированный образ появятся в директории модуля образа процесса под именем <Target Module Name>.VMPDump.<Target Module Extension>.

Как это работает

VMProtect внедряет заглушки для каждого вызова или перехода импорта. Эти заглушки разрешают «обфусцированный» thunk в секции .vmpX и добавляют фиксированную константу для его «деобфускации». Сами вызовы или переходы затем выполняются с помощью инструкции ret.

VMPDump сканирует все исполняемые секции на наличие этих заглушек и поднимает их в VTIL с помощью лифтера VTIL x64. Затем выполняется анализ этих заглушек для определения типа заменяемого вызова и байтов, которые необходимо перезаписать.

После получения всех вызовов VMPDump создаёт новую таблицу импорта и добавляет thunk к существующему IAT. Вызовы к заглушкам импорта VMP заменяются прямыми вызовами к этим thunk.

Обратите внимание, что в мутированных процедурах бывают ситуации, когда недостаточно байт для замены вызова заглушки импорта VMP на прямой вызов thunk, так как последний на 1 байт больше. В таких случаях секция расширяется, и внедряется заглушка, которая переходит к thunk импорта. Затем вызов заглушки импорта VMP заменяется 5-байтовым относительным вызовом или переходом на эту внедрённую заглушку.

Сборка (CMake)

root@kitploit:~
mkdir build && cd build
cmake -G "Visual Studio 16 2019" ..
cmake --build . --config Release

Сборка (Visual Studio)

Сборка в VS выполняется простой заменой каталогов include/library на VTIL-NativeLifers/VTIL-Core/Keystone/Capstone в файле vcxproj.

Проект требует C++20.

Проблемы и ограничения

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

Если вы столкнулись с этим, пожалуйста, создайте issue с соответствующей информацией, и я рассмотрю его.

Лицензия

Лицензировано под GPL-3.0. Никаких гарантий любого рода не предоставляется.

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