![]() |
eXeL@B —› Вопросы новичков —› Как передать исключение в отлаживаемую программу? |
Посл.ответ | Сообщение |
|
Создано: 03 апреля 2017 02:20 · Поправил: motoroller · Личное сообщение · #1 имею код Code:
собственно логика понятна, выделяем кусок памяти, делаем PAGE_GUARD и вызываем его, делая исключение. Вопрос: как попасть на обработчик прерывания, который устанавливается программой? я делал так: ставлю аппаратную точку останова на обработчик (00404B00), затем в ольке отключаю обработку всех исключений, F9 и олька все равно стопорится на вызове CALL DWORD PTR SS:[LOCAL.8]. Не вопрос, думаю я, затем иду на обработчик и New origin here, но какаказалось на стеке нет информации об исключении и все уходит в небытие... Как побороть? ![]() |
|
Создано: 03 апреля 2017 03:15 · Личное сообщение · #2 motoroller пишет: иду на обработчик и New origin here, но какаказалось на стеке нет информации об исключении а откуда бы она там взялась, если обработчик не был вызван, а просто джампнут через "New origin here"? motoroller пишет: в ольке отключаю обработку всех исключений по скрину не заметно чтобы прям всех. Для трассировки одного конкретного случая должно хватить SHIFT-F9 - pass exception to application А чтоб выключить обработку вообще, делай вот так ![]() ![]() |
|
Создано: 03 апреля 2017 04:47 · Личное сообщение · #3 motoroller > как попасть на обработчик прерывания, который устанавливается программой? > какаказалось на стеке нет информации об исключении Исключение начинается в KiUserExceptionDispatcher(). На стеке вся нужная инфа. Далее вызывается VEH, затем SEH. VEH напрямую не доступен, этот вектор нельзя(проблемно) получить удалённо. Установка гварда просто так не юзается, вероятно это антидебаг. ----- vx ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Как передать исключение в отлаживаемую программу? |