Как да проникна SecuROM
Как започна всичко
Виртуална математика
Добре си спомням как в "Изкуството на разглобяване" Крис Kaspersky описано трансформацията в байткод като най-стабилна и мощна защита срещу размяна-инженеринг. Нейното преодоляване на нападателя ще трябва почти целия си живот, а дори и малко повече. Какво да SecuROM 7.33.017, разбирането на принципите на работа и анализ на две пълни седмици виртуална машина структура ми отне, а месец по-късно бях готов да напише Decompiler.
Какво ви е необходимо? Просто се научи да мисли като "мисли" на виртуалната машина, която се счита за набор от асемблер код на още по-високо ниво, отколкото някаква C ++. От друга страна, ако тя не е скрита в код ASCII низ от вицовете за програмисти, щях да си помисля, че всеки път, когато се прекъсне една и съща виртуална машина.
С две думи, VM представлява набор от отделни независими части от код. Обичайната думата "функция", за да Хендли дори е приложимо, защото стека на машината не играе основна роля като регистрите на процесора (EAX, ECX, ESP, и така нататък). Ако се проследи дръжките, sklydvaetsya впечатление, че ние скочи върху островите. Хендли роли са различни:
- Стартиране на дръжките. Инициализиране виртуални регистри VM, издърпайте препратка към р-код лента. Извършва се в самото начало.
- Конвенционални Хендли. Извършване на примитивните операции - смяна на данни, извършване на прости операции като XOR. 95% от работата, тези момчета правят VM.
- Utilities Хендли. Отговорен за свикване на външните функции, които не са пряко свързани с VM, както и за тяхната обработка и опаковане обратно към топлообменника VM. Възстановяване на реалното състояние на стека и CPU регистри.
- Дръжки освобождаване на VM. Те трябва да се търси на първо място. Знайте началото, намерени в края, а след това по веригата отвори.