神呀,救救我吧!!这个程序怎么会蓝屏呢??!!
这是今天下午写的一个程式。通过修改IDT来切入RING0,RING0的代码是清除CMOS密码。
运行以后,出现蓝屏的错误。但是,CMOS的密码确实也清除了。那为什么还会蓝屏??
.386
.model flat,stdcall
include\masm32\include\kernel32.inc
includelib\masm32\lib\kernel32.lib
.data
HookExceptionNumbe equ 5
null dd 0
.code
start:
push eax
push ebx
push ebp
sidt [esp-2]
pop ebx
add ebx,HookExceptionNumbe*8+04h
cli
mov ebp,ebx
mov bp,[ebx-04h]
lea eax, MyHookFuction
mov [ebx-04h],ax
shr eax,16
mov [ebx+2],ax
int HookExceptionNumbe
MyHookFuction PROC
mov al,10h
out 70h,al
mov al,10h
out 71h,al
iret
MyHookFuction endp
mov [ebx-04h],bp
shr ebp,16
mov [ebx+2],bp ;恢复IDT
pop ebp
pop ebx
pop eax
push null
CALL ExitProcess
end start