VMP VMProtect (Туторы, скрипты, плагины, ...)

Rio

Администратор
Администратор
Сообщения
162
Реакции
188
Решил создать отдельную тему по VMProtect'у, чтобы собирать в одном месте информацию по этому проту и обсуждать детали.

Для начала ответ на самый распространенный вопрос.

1. Почему OllyDbg вылетает при запуске программы, защищенной VMProtect'ом?

Потому что VMProtect использует баг с переполнением буфера в старых версиях dbghelp.dll, из-за которого отладчик падает. Чтобы обойти его необходимо исправить баг в dbghelp.dll или положить в папку отладчика новую версию файла dbghelp.dll, который можно взять из комплекта Debugging Tools for Windows:

http://www.microsoft.com/whdc/devtools/ ... fault.mspx

Добавлено

Microsoft включил дистрибутив Debugging Tools в состав пакета Windows SDK (который весит достаточно прилично), поэтому вот альтернативные ссылки на:

1. Дистрибутив Debugging Tools v6.12.2.633 x86 от 26.02.2010 (18,3 Мбайт)
http://www.revenge-crew.com/xchg/kio/Debugging_Tools_for_Windows_v6.12.2.633_x86.msi

2. Только библиотека dbghelp.dll из дистрибутива Debugging Tools v6.12.2.633 x86 (0,5 Мбайт)
http://www.revenge-crew.com/xchg/kio/dbghelp_v6.12.2.633_x86.zip

Темы на форуме -
Use of syscall and sysenter in VMProtect 3.1
Патч и кейген RSA в VMProtect 3.x
VMProtect ULTIMATE v3.5.0 Build 1213
Анализ VMProtect c Triton (dynamic binary analysis (DBA) framework)
Inside VMProtect
Vm2Import
Исследование кода VMProtect. Часть 1. Патч хешей
VTIL (Virtual-machine Translation Intermediate Language) -
NoVmp , vmpattack , vmpdump
VMProtect Windows API Address Decoder (IDA Pro - Python)
VMProtect xx_vm Chinese Decompiler
Quick PoC for a taint based attack on VMProtect

Сборник версий
VirtualizedFuncFinder
ZVM - пакет для изучения и практики по VMP2, сорсы и пример, док на Драконском
VmpGetHWID - может быть полезен
Плагин и Сорсы для OllyDBG, цель VMP2 - Unpacking VMProtect With ODPlugin
Деобфускация VMProtect в IDA Pro используя Qiling Framework
Collection of code for HWID-Locking .NET apps with VMProtect 3.4.0
VMP.NET-Kill V2.1 (VMP 1213-1261)
GH VMProtect 3 Import Fixer 1.0.1 x86 & x64
FixVmpDump - use python script to fix vmp dump api in ida. support x86 and x64
Vm2Import - fix vmprotect import function used unicorn-engine
VMPImportFixer - VMPImportFixer is a tool aimed to resolve import calls in a VMProtect'd (3.x) binary
VMUnprotect.NET
- VMUnprotect is a project engaged in hunting virtualized VMProtect methods

Detailed Analysis of the Virtual Machine Architecture - VMProtect 2 Reverse Engineering
+ Source https://githacks.org/vmp2 or https://cracklab.team/index.php?threads/12/post-2346,
+ Bin - https://githacks.org/vmp2/um-tracer/-/tree/master/refbuilds)

Detailed Analysis of the Virtual Machine Architecture - VMProtect 2 Reverse Engineering - Part Two, Complete Static Analysis

Quick look around VMP 3.x - Part 1 : Unpacking
Quick look around VMP 3.x - Part 2 : Code Mutation
Quick look around VMP 3.x - Part 3 : Virtualization

Автоматическая классификация VM Handler-ов - The idea of using machine learning to analyze vmp

Tickling VMProtect with LLVM: Part 1 + https://github.com/LLVMParty/TicklingVMProtect
Tickling VMProtect with LLVM: Part 2 + https://github.com/LLVMParty/TicklingVMProtect
Tickling VMProtect with LLVM: Part 3 + https://github.com/LLVMParty/TicklingVMProtect
Тема по LLVM - LLVM, Clang для реверсинга
 
Последнее редактирование модератором:

djeck

Посетитель
Авторы статей
Ветеран
Сообщения
16
Реакции
81
Мой старенький туториал по инлайн патчу VMProtect. Выложу для истории, возможно кому-то пригодится.

Исследование кода VMProtect. Часть 1. Патч хешей.

Туториал состоит из 3 глав.
В первой главе происходит знакомство с протектором VMProtect, обсуждается литература по его распаковке и обсуждается общий план работы, которая будет проделана в последующих главах.
Во второй главе учимся распаковывать VMProtect с помощью OllyDbg и скрипта VMProtect Ultra Unpacker 1.0. После распаковки дорабатываем дамп (проверяем импорт и правим ВМ).
В третьей главе делаем инлайн патч программы, с помощью патча хешей. Рассмотрим несколько вариантов инлайна, а также сделаем инлайн патч к коммерческой программе Movienizer.

Автор: djeck
Год: 2013
Страниц: 75


 

Artrix

Зарегистрированный
Сообщения
8
Реакции
2
Обновите пожалуйста ссылки:

1. Дистрибутив Debugging Tools v6.12.2.633 x86 от 26.02.2010 (18,3 Мбайт)
http://www.revenge-crew.com/xchg/kio/Debugging_Tools_for_Windows_v6.12.2.633_x86.msi

2. Только библиотека dbghelp.dll из дистрибутива Debugging Tools v6.12.2.633 x86 (0,5 Мбайт)
http://www.revenge-crew.com/xchg/kio/dbghelp_v6.12.2.633_x86.zip

В шапке нет возможности скачать (файлы не скачиваются).
 
  • Понравилось
Реакции: mak

mak

Соломенные сандалии
Администратор
Сообщения
803
Реакции
576
@Artrix, это был старый пост кажется, актуальные линки - https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/, а там https://go.microsoft.com/fwlink/p/?linkid=2120735, 700 метров архив, внутри есть X64 Debuggers And Tools-x64_en-us и X64 Debuggers And Tools-x86_en-us, после установки в папке C\Program Files (x86)\Windows Kits\10\Debuggers\x64 или х86 есть всё (y)

А шапку нужно обновить :)(y)
 

=TS=

Посетитель
Наставник
Сообщения
12
Реакции
29
Сборник разных версий WinDbg
 
  • Понравилось
Реакции: mak

mak

Соломенные сандалии
Администратор
Сообщения
803
Реакции
576
Vm2Import - https://github.com/nblog/Vm2Import
fix vmprotect import function used unicorn-engine.

it can repair functions such as call [module.function] or jmp [module.function] or reg(mov) [module.function] that are statically imported by the VM.

it is effective in vmp2 and vmp3.

Use
  1. copy to x64dbg
x64dbg\release\x32\plugins\unicorn.dll
x64dbg\release\x32\plugins\Vm2Import.dp32

x64dbg\release\x64\plugins\unicorn.dll
x64dbg\release\x64\plugins\Vm2Import.dp64
  1. select "VM_Start" call vmp0.xxxxxxxx, right click menu "Vm2Import"->"Fix Import Call Address"
 

ChVL

Зарегистрированный
Сообщения
7
Реакции
11
Осмелюсь предложить в шапке сделать раздельчик "Полезные инструменты", куда собрать ссылки, по которым можно скачать статические или последние версии оных.
Например.

x64dbg x64/x32 debugger for Windows. Download Latest Version: https://sourceforge.net/projects/x64dbg/files/snapshots
Current version 2021-02-09_17-28

ScyllaHide Download Latest Version: https://github.com/x64dbg/ScyllaHide/releases
Current version 2021-01-26_02-47-19

TitanEngine Download Latest Version: https://github.com/x64dbg/TitanEngine
Current version 2.0.3
 

mak

Соломенные сандалии
Администратор
Сообщения
803
Реакции
576
@Rio, мне кажется, лучше оставить всё в одном топике, т.к. топик по этим инструментам уже есть - x64dbg отладчик, другое дело его дополнить.
 

mak

Соломенные сандалии
Администратор
Сообщения
803
Реакции
576
Microsoft включил дистрибутив Debugging Tools в состав пакета Windows SDK (который весит достаточно прилично), поэтому вот альтернативные ссылки на:

1. Дистрибутив Debugging Tools v6.12.2.633 x86 от 26.02.2010 (18,3 Мбайт)
http://www.revenge-crew.com/xchg/kio/Debugging_Tools_for_Windows_v6.12.2.633_x86.msi

2. Только библиотека dbghelp.dll из дистрибутива Debugging Tools v6.12.2.633 x86 (0,5 Мбайт)
http://www.revenge-crew.com/xchg/kio/dbghelp_v6.12.2.633_x86.zip
Уже же есть начало .. осталось добавить немного и дополнить другой топ. Инструментов мало и эти топики уже есть на форуме.
 

ChVL

Зарегистрированный
Сообщения
7
Реакции
11
Vm2Import - https://github.com/nblog/Vm2Import
fix vmprotect import function used unicorn-engine.
Есть ещё с картинками: https://githubmemory.com/repo/win18216001/Vm2Import
Помогите, пожалуйста, разобраться в этом чуде.
Исследуемая программа под VMProt 3.0, секция кода закриптована, предварительно отключена проверка CRC.

Читаем Use.
п. 1. - проблем нет.
п. 2. select "VM_Start" call vmp0.xxxxxxxx
Не знаю, что имели ввиду китайцы, я же понял это так:
- загружаем прогу в dbg;
- запускаем (F9) до полной загрузки;
- открываем Карту памяти, находим .vmp0 -> ПК -> Перейти к дизассемблерному коду.
Далее в соответствии с продолжением п. 2:
- в коде .vmp0 выделяем строку с Call;
- ПК -> "Vm2Import" -> "Fix Import Call Address".

В результате в статусной строке dbg (слева внизу) имеем сообщение: "invalid selected address."
Пробовал две разные проги, какие только варианты не мучил... Или зря? VMProt 3.0 уже не берёт?
Где копать?
 

mak

Соломенные сандалии
Администратор
Сообщения
803
Реакции
576
п. 2. select "VM_Start" call vmp0.xxxxxxxx
Не знаю, что имели ввиду китайцы, я же понял это так:
- загружаем прогу в dbg;
- запускаем (F9) до полной загрузки;
- открываем Карту памяти, находим .vmp0 -> ПК -> Перейти к дизассемблерному коду.
"VM_Start" это точка входа в саму ВМ из секции кода в секцию vmp0.xxxxxxxx, этих точек может быть много, можно VTIL взять, там кажется есть перечисление всех точек входа - VTIL (Virtual-machine Translation Intermediate Language)
 
  • Понравилось
Реакции: ChVL

ChVL

Зарегистрированный
Сообщения
7
Реакции
11
"VM_Start" это точка входа в саму ВМ из секции кода в секцию vmp0.xxxxxxxx
Спасибо за подсказку!
Перечень всех точек входа я получил, и их там... более 5000! Пока не разобрался, что с этим добром делать. Править вручную все - это как бэ не комильфо, но Vm2Import подразумевает именно так, по одной (и он это исправно делает), ибо никаких опций нет. Реальный вариант, если не все надо править, а только в определенной области .vmp0. Может только то, что входит в IAT? - Но как-то не логично...
 
Верх Низ