1

我正在使用 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 中的内存访问冲突

我无法理解为什么当我按下 Shift + F9 时程序没有将异常传递给位于 004010a9 的异常处理程序,因为它是当前线程异常处理程序。

谢谢。

4

1 回答 1

0

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 exceptionto 程序

shift + f9 will only work现在通过另一个异常说除以 zeor 这个过程必须再次完成

或者您可以添加一个完整的范围,例如 0 到 ffffffff

于 2014-05-21T04:48:09.353 回答