Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #57, АВГУСТ 2005 г.

Техника отладки

Крис Касперски ака мыщъх

Спецвыпуск: Хакер, номер #057, стр. 057-020-7


Заходим в Loader32, выбираем пункт File->Load Export, указываем имя библиотеки (oorwiz.dll). В списке Loader Symbols немедленно появляется новое имя. Теперь загружаем основной исполняемый файл (в данном случае oodled.exe) и устанавливаем точки останова на интересующие нас функции ("bpx RegWiz_InitReadOnly", "bpx RegWiz_InitTrial", "bpx RegWiz_InitLicMgr"), заставляя отладчик всплывать при их вызове.

Поскольку динамические библиотеки перемещаемы, адреса в дизассемблере могут не совпадать с отладчиком. Вот, например, в oorwiz.dll IDA определяет адрес функции RegWiz_InitTrial как 10001D00h, а SoftIce - как F60000. Ну и как с этим жить? А вот как: базовый адрес загрузки (Imagebase) равен 10000000h, в чем IDA честно признается в начале файла. Но загрузить библиотеку по этому адресу не получается, и операционная система перемещает ее по адресу xxxx, о чем говорит команда "MOD" в SoftIce:

ЛИСТИНГ

:mod

hMod Base Module Name File Name

80400000 804000C8 ntoskrnl \WINNT\System32\ntoskrnl.exe

…

00400000 00400108 oodled \Program Files\OO Software\DriveLED2\oodled

00F30000 00F300B8 oodlrwrs \Program Files\OO Software\DriveLED2\oodlrwrs

00F60000 00F600F8 oorwiz \Program Files\OO Software\DriveLED2\oorwiz

10000000 100000C0 oodledrs \Program Files\OO Software\DriveLED2\oodledrs

Разница базовых адресов составляет 10001000-F60000 == F0A1000, поэтому, чтобы перевести адрес из отладчика в дизассемблер, к нему необходимо добавить F0A1000, а из дизассемблера в отладчик - отнять.

Заключение

Отладчик - это сложный инструмент, и за один день его не освоить. Исследование машинных кодов - настоящее искусство, которому учатся всю жизнь. Так что не нужно огорчаться, если что-то не получается. Чем хитрее защита и чем труднее взлом, тем больше удовлетворения она приносит в конечном итоге! Кто-то сравнил это чувство с экстазом. Ничего подобного! Хакерство намного круче!

Испытания методик отладки мы проводим над программой Drive LED от компании O&O Software. Ее 30-дневную демонстрационную версию можно скачать с сайта www.oo-software.com/en/download/index.shtml.

Назад на стр. 057-020-6  Содержание