-
-
下SEH中断一定要用堆栈吗?
-
发表于:
2004-9-13 15:01
4748
-
添加SEH中断的代码一般如下:
push offset perThread_Handler ;perThread_Handler为我的中断程序
push fs:[0]
mov fs:[0],esp
即总是压了栈后使用ESP.
但看讲SEH的文章上说不用栈,用数据区也可以,所以我就写了测试代码:
.data
PreSehPtr dd 0
SehHandler dd 0
.code
........
mov eax, fs:[0]
mov PreSehPtr, eax
mov eax, offset perThread_Handler
mov SehHandler, eax
mov fs:[0], offset PreSehPtr
然后在后面的程序中产生异常,可却没有中断.不知怎么回事?
注:上面的程序只是个大概的意思,我的程序对SEH链的建立应该是没有问题的,好像就是非要用ESP才能中断不可
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课