-
-
这段程序为何会蓝屏
-
发表于:
2004-9-9 02:27
4037
-
程序自己建立了一个SEH handle,
来处理int 1的异常,可是一运行
就蓝屏了!?
.586
.model flat,stdcall
option casemap:none
include kernel32.inc
include user32.inc
include windows.inc
includelib kernel32.lib
includelib user32.lib
.data
szCaption db "SEH",0
szTextSTEP db "程序执行了单步操作!",0
szText db "程序正常运行了!",0
SafeEsp dd 0
assume fs:nothing
.code
start:
push SEH ;自己的结构化异常处理函数
push fs:[0]
mov fs:[0],esp ;加入到SEH链表中
mov [SafeEsp],esp
int 1
nop
invoke MessageBox,0,offset szText,offset szCaption,MB_OK
jmp Exit
SEH:
invoke MessageBox,0,offset szTextSTEP,offset szCaption,MB_OK
Exit:
mov esp,[SafeEsp]
pop fs:[0]
add esp,4
invoke ExitProcess,0
end start
end
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!