-
-
求助
-
发表于:
2006-4-28 15:35
4021
-
我想问个问题,我写了个小程序
就是熟悉一下seh 但问题是 这个程序会产生异常 在我们进到异常代码时不是已经由ring-3 到 ring-0了吗 为什么还会产生异常 请不要笑 我就是这么想的 如果不用virtualprotect 在tasm的批处理文件中:
tasm32 /m3 /ml seh2,,;
tlink32 /Tpe /aa seh2,seh2,,d:\tasm50\lib\import32.lib
应该加什么条件呢?
请指教 谢谢!
.386
.model flat,stdcall
option casemap:none
extrn MessageBoxA:proc
extrn ExitProcess:proc
.data
tit1 db 'you are here~!',0
msg1 db 'the goal is you!',0
.code
start:
xor eax,eax
push offset seh_handler
push fs:[0]
mov fs:[0],esp
mov eax,100
xor edx,edx
cdq
div edx
xor ebx,ebx
push ebx
call ExitProcess
seh_handler:
push ebp
mov ebp,esp
lea esi,dword ptr[ebp+10h]
xor ecx,ecx
mov [esi+10h],ecx
mov [esi+04h],ecx
mov [esi+08h],ecx
mov [esi+0ch],ecx
lea edx,dword ptr[_change]
mov dword ptr[edx],0cd20h
_change:
nop
nop
nop
nop
xor ebx,ebx
push ebx
push offset tit1
push offset msg1
push ebx
call MessageBoxA
mov esp,ebp
pop ebp
mov eax,-1
retn
end start
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!