"ED!SON (пер. Mr.Boco). Как ломать программы Windows" - читать интересную книгу автора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 означают сохранение значений для последующего использования. Я пометил важные строчки символом '>'. Глядя на этот код, мы видим, что адрес текстового буфера хранился в регистре EAX и что EAX был EBP-34h. Поэтому нам стоит взглянуть на EBP-34h: :d ebp-34 Вы должны были увидеть текст, который вы ввели в диалоговом окне. Теперь мы должны найти место, где Ваш номер сравнивается с реальным серийным номером. |
|
|