我正在使用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的异常处理程序,因为它是当前线程异常处理程序。
感谢。
答案 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