Невозможно передать исключение в отладчике Olly - PullRequest
1 голос
/ 05 марта 2012

Я отлаживаю программу с помощью Olly Debugger.Он устанавливает обработчик исключений при выполнении следующим образом:

push 004010a9
xor eax, eax
push dword ptr fs:[eax]
mov dword ptr fs:[eax], esp

Итак, обработчик исключений, расположенный по адресу 004010a9, теперь установлен.

Следующая инструкция вызывает нарушение доступа к памяти, как показано ниже:

add eax, 40
sub dword ptr ds:[00410000], eax

Поскольку у кода нет разрешений на запись в раздел кода, он вызывает нарушение доступа к памяти и останавливается.

Теперь у меня есть возможность передать исключение взапрограммируйте, нажав Shift + F9.

Однако, когда я нажимаю, ничего не происходит, и программы остаются в состоянии паузы.

Моя цепочка SEH на этом этапе выглядит так, как показано ниже:

004010a9 // exception handler installed above
7c839aa8 // final exception handler

Мои параметры отладки в Olly Debugger установлены так, как показано ниже:

На вкладке «Исключение» у меня отмечена только следующая опция:

Игнорировать нарушения доступа к памяти в Kernel32

Я не могу понять, почему программа не передает исключение в обработчик исключений, расположенный по адресу 004010a9, когда я нажимаю Shift + F9, так как этообработчик исключений текущих потоков.

Спасибо.

1 Ответ

0 голосов
/ 21 мая 2014

check mark ignore the following exceptions и / или флажок диапазона

click кнопка add last exception

the list box должно быть filled with c0000005 access violation после нажатия кнопки

press ok.

ollydbg is now setup, чтобы разрешить передачу said exception в программу

shift + f9 will only work теперь, чтобы пропустить еще одно исключение, скажем, делим на зеор, эту процедуру нужно повторить

или вы можете добавить полный диапазон, например от 0 до ffffffff

...