Техника отладки Крис Касперски ака мыщъх Спецвыпуск: Хакер, номер #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. |