Хакер vs Шаровары

FINNAN (finnan@mail.ru)

Xakep, номер #022, стр. 022-060-2


Если ты перезагрузишься, то опять придется проделать все эти действия, чтобы получить нормальный вид консоли. Чтобы не настраивать каждый раз, делаем так: запускаем Symbol Loader, выбираем Edit -> SoftICE Initialization Settings. Теперь в окошечке находим Initialization String - по умолчанию там стоит "X;", и через "; " вписываем необходимые команды. У меня это выглядело так: "LINES 70;WIDTH90;WD;WR;WL;X;". Где "X;" - команда, закрывающая консоль после инициализации. Если эту команду убрать, то при загрузке SoftICE-а каждый раз будет появляться консоль.

Теперь команды, часто используемые в работе:

<F1> - Help

<F4> - показать содержимое экрана Windows

<F5> - выйти

<F6> - перевести курсор в окно кода или из него

<F7> - выполнить команды от текущей строки до курсора

<F8> - трассировка с заходом в функцию

<F9> - контрольная точка в текущей строке

<F10> - трассировка без захода в функцию

<F12> - выполнить команды до ret включительно (т.е. подняться на шаг вверх по иерархии вызовов функций)

BPX xxx - поставить точку прерывания на адрес, функцию API (кстати, на том же сайте есть неплохое описание функций API Windows - рекомендую, в жизни пригодится не раз)

BPM yyy - поставить точку прерывания на обращение по адресу yyy памяти

(bp - сокращение от Break Point)

BL - список всех установленных BP

BD n_of_bp - деактивизировать (т.е. временно выключить) BP

BE n_of_bp - активизировать BP

BC n_of_bp - удалить BP

В этих командах n_of_bp - номер BP, который можно узнать командой BL.

D addr - отобразить в окне данных память, начиная с addr

DB, DW, DT, DD, DS - разновидности команды D, отличающиеся только форматом отображения. Поэкспериментируй - все поймешь.

Команды можно использовать и с регистрами, и с выражениями, например: "DB eax + 08" - показать, что лежит по адресу eax +08.

A - ассемблер. Если хочешь изменить какую-нибудь команду или группу команд, используешь ее. Чтобы закончить, нажми Esc. При этом, естественно, изменится только память, и при следующей загрузке подопытной программы все будет как прежде. Но об этом позже.

Все. Необходимый минимум знаний о SoftICE у тебя уже есть, и мне кажется, что тебе не терпится поскорее что-нибудь сделать (читай - хакнуть) с помощью этого крутого отладчика.

Теперь отхлебни пива и вникай: я тебя посвящу в основы хака shareware-прог на примере CuteFTP v 4.0 (этот FTP-клиент можно слить с ftp1.cuteftp.com/pub/cuteftp/).

SoftICE для хака

Ставь это чудо программерской мысли и запускай. Сразу бросается в глаза "There are 30 days remaining in your 30 day evaluation". Путь пока радуется, скоро исправим ;).

Вообще, при взломе shareware есть несколько путей (по возрастанию сложности):1. Используя проги типа EasyClean, FileMon, RegMon и т.д., подчищаем систему и переставляем программу раз в месяц, что очень запарно.

2. С помощью SoftICE-а находим функции GetSystemTime, GetDateFormat и др. (подробнее смотри API Windows) и "патчим" исходник так, чтобы время для проги остановилось. Результат - крек, патч или уже пропатченный екзешник. Это лучше, чем 1-й способ, но некоторые программы блокируют свои вкусные возможности до регистрации, и тогда он не поможет.

Назад на стр. 022-060-1  Содержание  Вперед на стр. 022-060-3