Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #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  Содержание