无法在Olly调试器中传递异常

时间:2012-03-05 05:57:01

标签: ollydbg seh

我正在使用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 Chain如下所示:

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

我在Olly Debugger中的调试选项设置如下:

在Exception选项卡下,我只选中了以下选项:

忽略Kernel32中的内存访问冲突

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

感谢。

1 个答案:

答案 0 :(得分: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 exception传递给程序

shift + f9 will only work现在要传递另一个异常,说除了zeor这个程序必须再次进行

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