"ED!SON (пер. Mr.Boco). Как ломать программы Windows" - читать интересную книгу автора


И что Вы видите по адресу EBP-68? Второй серийный номер!

:d ebp-68

Вот и все... Я надеюсь, что у Вас все получилось как доктор прописал? =)


3.2 Command Line 95 - легкая регистрация "имя-код", создание генератора ключей
==============================================================================
Это программа - хороший пример, с легким алгоритмом генерации кода.


3.1.1 "Обследование"
====================
Вы осмотрели программу и увидели, что это 32-битное приложение, требующее
имя и код в окне регистрации. Поехали!


3.1.2 Прерывание программы
==========================
Мы поступаем так же, как и с Task Lock'ом - ставим брейкпоинты. Можно даже
поставить сразу два брейкпоинта на наиболее возможные функции:
GetWindowTextA и GetDlgItemTextA. Нажмите Ctrl-D, чтобы вызвать отладчик
и наберите в окне команд:

:bpx getwindowtexta
:bpx getdlgitemtexta

Теперь возвращайтесь в прерванную программу, идите в окно регистрации и
вводите имя и какой-нибудь номер (обыкновенное целое число - это наиболее
вероятный код). Я написал примерно следующее:

Name: ED!SON '96
Code: 12345

Программа остановилась на GetDlgItemTextA. Так же, как и в случае с Task
Lock'ом, мы нажимаем F11 чтобы вернуться в вызывающюю функцию. Просматриваем
окно кода при помощи Ctrl+Up. Вызов функции выглядит так:

MOV ESI, [ESP+0C]
PUSH 1E ; Максимальная длина
PUSH 0040A680 ; Адрес буфера
PUSH 000003ED ; Идентификатор управления
PUSH ESI ; Идентификатор окна диалога
CALL [User32!GetDlgItemTextA]

Число 40A680 кажется нам интересным, поэтому мы проверяем этот адрес:

:d 40a680