Реферат: Как ломать программы Windows C EDSON UCF, перевод Mr.BocoTCP

:bc 0

(0 - это номер брейкпоинта в списке брейкпоинтов)

И установим новый:

:bpx getdlgitemtexta

Ну что ж, попробуем еще раз...

3.1.3 В отладчике

Wow! Работает! Теперь вы в SoftICE, в самом начале функции GetDlgItemTextA. Чтобы попасть туда, откуда она была вызвана, нажмите F11. Теперь Вы внутри модуля SGLSET.EXE. Если Вы не уверены - посмотрите на строчку между окном кода и окном командной строки, она должна выглядеть так:

----------SGLSET!.text+1B13----------

Сейчас Вы уже можете запретить реакцию на вызов функции:

:bd 0

Если Вам вдруг захочется снова разрешить ее, наберите:

:be 0

Первая строка в окне кода выглядит так:

CALL [USER32!GetDlgItemTextA]

Чтобы посмотреть строчки над ней, нажимайте Ctrl+Up ("стрелка вверх") до тех пор, пока не увидите нижеприведенный кусок кода. Если Вы ничего не понимаете в Ассемблере, я добавил комментарии которые могут Вам помочь.

RET ; Конец функции

PUSH EBP ; Начало другой функции

MOV EBP, ESP ; ...

SUB ESP, 0000009C ; ...

PUSH ESI ; ...

> LEA EAX, [EBP-34] ; EAX = EBP-34

PUSH EDI ; ...

MOVE ESI, ECX ; ...

PUSH 32 ; Макс. длина строки

> PUSH EAX ; Адрес текстового буфера

PUSH 000003F4 ; Идентификатор управления

PUSH DWORD PTR [ESI+1C] ; Идентификатор окна диалога

CALL [USER32!GetDlgItemTextA] ; Получить текст

Команды PUSH означают сохранение значений для последующего использования.

К-во Просмотров: 908
Бесплатно скачать Реферат: Как ломать программы Windows C EDSON UCF, перевод Mr.BocoTCP