Приветствую Вас Гость | RSS

Reversing and Code

Четверг, 25.04.2024, 21:56
Главная » Файлы » Идентификаторы » ASProtect

[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
Просмотров: 2582 | Загрузок: 558 | Комментарии: 2 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: