Здравствуйте! Имеется кусок кода, который насколько я понял, устанавливает SEH.
Code:
.code:008714CD push ebx ; Это адрес нового хэндлера
.code:008714CE push large dword ptr fs:0 ; Это сохранение предыдущего хэндлера
.code:008714D5 mov large fs:0, esp
.code:008714E2 int 1 ; - internal hardware - SINGLE-STEP
.code:008714E2 ; generated at end of each machine instruction if TF bit in FLAGS is set
Хочу отдебажить этот хэндлер. Для этого беру адрес, который был запушен командой . Его же я вижу, используя команду !exchain.
Code:
WINDBG>!exchain
002ffcbc: image011e0000+1d60 (011e1d60)
002ffd28: ntdll!RtlAddMandatoryAce+33c (7761e125)
Invalid exception stack at ffffffff
Хочу посмотреть, что по этому адресу находится, в IDA жму G, ввожу 011e1d60. И вижу следующее (приатачил архив с фото). Как функция, данные значения не распознаются. Если ставлю hardware брейкпоинт, приложение просто падает. Да и вообще, непонятно что это за значения. В общем, как мне отдебажить нужный мне хэндлер? И второй вопрос. Хэндлер начинает выполняться, после инструкции , но я не понимаю почему. 1 - это ведь номер прерывания для дебаггинга. При чем тут он? После этой инструкции что-то явно происходит, потому как меняется значение регистра eax. Трейс данного участка ничего не дает.