Показать сообщение отдельно

  #3  
Старый 25.06.2008, 06:55
0x0c0de
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме:
4226446

Репутация: 1564
Отправить сообщение для 0x0c0de с помощью ICQ
По умолчанию

>> Мне особо было понятно, как с исключениями бороться, не сталкивался с отладкой...

особо или не особо?) Если я по контексту правильно понимаю, то не особо.

Оключи игнорирование исключения int 3 (Alt+O - > Exceptions и сними галочку с int 3 command). Первый раз сработает после чтения текста из эдита. Смотришь в стек

Код:
0006FB04   0006FB94  Pointer to next SEH record
0006FB08   004023A5  SE handler
Переходишь по адресу SEH handler - он и есть наш обработчик.

Код:
004023A5   $ 55             PUSH EBP                                 ;  Structured exception handler
004023A6   . 89E5           MOV EBP,ESP
004023A8   . B8 5690EB03    MOV EAX,3EB9056
004023AD   .^EB FA          JMP SHORT CrackME.004023A9
004023AF     15             DB 15
004023B0   . 8B75 10        MOV ESI,DWORD PTR SS:[EBP+10]
004023B3   . 8B86 B8000000  MOV EAX,DWORD PTR DS:[ESI+B8]
004023B9   . 8386 B8000000 >ADD DWORD PTR DS:[ESI+B8],0B
004023C0   . 40             INC EAX
004023C1   . A3 18104000    MOV DWORD PTR DS:[401018],EAX
004023C6   . E8 35FCFFFF    CALL CrackME.00402000
004023CB   . 5E             POP ESI
004023CC   . 31C0           XOR EAX,EAX
004023CE   . C9             LEAVE
004023CF   . C2 1000        RETN 10
Нам вообще нужна процедура, которая вызывается из этого обработчика.

Код:
004023C6   . E8 35FCFFFF    CALL CrackME.00402000
вызов...

А далее на ее начало бряк и исключения можно игнорить снова.

Последний раз редактировалось 0x0c0de; 25.06.2008 в 07:01..
 
Ответить с цитированием