[Sources] ASProtect Virtual Machine for marker "UserPolyBuffer"
[ Скачать с сервера (195.3 Kb)
]
| 22.09.2011, 22:00 |
* Что это? * Это исходный код виртуальной машины, при компиляции дающий бинарник полностью бинарно- и форматно- совместимый с одной из виртуальных машин защиты исполняемых файлов ASProtect. Это значит, что переход в виртуальную машину ASProtect можно заменить на переход в получившуюся виртуальную машину и код интерпретируется правильно. Кроме того, любой примитив оригинальной виртуальной машины можно заменить примитивом получившейся и в этом случае тоже ошибки не будет. В исходном коде практически полностью восстановлен стиль программирования автора, большинство ошибок и недоработок. Самые абсурдные места я пометил комментарием "WTF?". Полученный бинарник тестировался на версии 2.58.
* Цель * Очень многие не понимают сути виртуальной машины. Кому то просто интересен принцип работы. Кто то хочет посмотреть код виртуальной машины коммерческой защиты исполняемых файлов. В данном случае код будет интересен в первую очередь разработчикам программ, которые доверяют защиту, своего программного обеспечения протектору ASProtect. Т.е. цель - исключительно исследовательская, это не декомпилятор защиты, это именно исходный интерпретатор.
* История * Данная виртуальная машина была впервые применена для сокрытия кода QuickVM. QuickVM - виртуальная машина, интерпретирующая всего 4 типа инструкций: call, jmp, jcc, cmp+jcc. Но на тот момент устройство QuickVM уже было полностью изучено и всё, чего добились разработчики ASProtect - это резкое снижение быстродействия всей защиты. Поэтому в следующем же билде эту виртуальную машину сняли с кода QuickVM. Но, т.к. виртуальная машина уже была реализована, то ее стали применять для маркеров UserPolyBuffer, установленных в коде приложения. Видимо для того, чтобы не придумывать новые маркеры, а может просто для тестирования. Но, спустя небольшой промежуток времени с маркеров UserPolyBuffer ее убрали и для защиты пользовательского кода не используют больше вообще. В виртуальной DLL ASProtect, что извлекается во время запуска защищенной программы в память, тоже используются маркеры UserPolyBuffer. Вот для них теперь и используется эта виртуальная машина, т.е. она теперь защищает функции самого ASProtect.
|
Категория: ASProtect | Добавил: PE_Kill
|
Просмотров: 2583 | Загрузок: 558
| Комментарии: 2
| Рейтинг: 0.0/0 |
|