Продолжаем практиковаться в распаковке, каждый раз используя более трудный упаковщик, постепенно повышая тем самым уровень сложности.
Следующим упаковщиком на шкале сложности является
aspack, очень похожий на
UPX, и для которого у нас есть
крэкми UnPackMe_ASPack2.12.exe, использовавшееся в главе 32.
Для практики установим
OllyDump в директорию с плагинами, чтобы сделать дамп с его помощью.
Здесь была ссылка, но она устарела. Возможно, поможет вот эта.
Открываем
OllyDbg, защищённый плагинами от обнаружения, и находим
OEP с помощью метода
PUSHAD.
Видим, что здесь нам сообщают о том, что точка входа находится за пределами секции кода, как это обычно бывает с большинством упаковщиков.
Видим начальный
PUSHAD, который проходим с помощью F7, а затем делаем
ESP-FOLLOW IN DUMP, чтобы установить в
DUMP’е железную (hardware) точку останова на доступ к значениям двух регистров, которые сохраняются инструкцией
PUSHAD.
Затем нажимаем
F9.
И останавливаемся прямо после
POPAD, который восстанавливает сохранённые в эти регистры значения. Трассируем с помощью F7, пока не прибудем в
OEP.
Как видим, код был не понят, выходим из анализа.
И видим, что если проанализировать его ещё раз, всё становится гораздо лучше.
Затем приступаем к дампу файла. Идём в меню
PLUGINS и ищем там
OllyDump.
Нам открывается окно плагина, в котором уже отображено то, что можно модифицировать. Можно исправить базу кода без необходимости потом править её в заголовке. В окне видим, что база кода равна 4000, а если помним, то
aspack выполняется не в первой секции, поэтому не меняем это значение, которое соответствует 404000, где находится OEP и выполняется программа.
Ещё одна важная фишка – это опция «
REBUILD IMPORT», находящаяся внизу окна.
OllyDbg пытается сделать работу
IMP REC’а, для чего ему служат METHOD1 и METHOD2, которые могут работать для простых упаковщиков. Вы можете сделать два дампа, используя каждый из этих методов, и посмотреть, работает ли хотя бы один из них. Это не всегда срабатывает, но иногда может.
Мы снимаем галочку с «
REBUILD IMPORT», так как мы будем использовать
IMP REC для большей надёжности.
