-
-
[旧帖] inlin HOOK 在卸载的时候还原原来一行指令 但是我蓝屏了 0.00雪花
-
发表于: 2011-10-25 19:34 2377
-
inlin HOOK 在卸载的时候还原原来一行指令 但是我蓝屏了
void __declspec(naked) int3UnHookcode()
{
__asm
{
push 0C4h
}
}
#pragma PAGECODE
VOID UnHookInt3Proc()
{
KdPrint(("\n 卸载 Idt Hook \n"));
__asm
{
cli
mov eax, cr0
and eax, not 10000h
mov cr0, eax
}
////////////////////////////////////// 写回原指令/////////////////////////////////
__asm
{
push ebx
push eax
push ecx
mov ebx,SSDT_Adr //0x804dfaa1
lea ecx,int3UnHookcode
mov eax,[ecx+0]
mov dword ptr ds:[ebx],eax
mov eax,[ecx+4]
mov byte ptr ds:[ebx+4],al
pop ecx
pop eax
pop ebx
}
//////////////////////////////////////////////////////////////////////////////////////////////
__asm
{
mov eax, cr0
or eax, 10000h
mov cr0, eax
sti
}
}
要是把写回原来的指令改回去这么写 就不蓝屏 请问上面哪错了
__asm
{
mov ebx,SSDT_Adr //RealNtOpenAddress
mov byte ptr ds:[ebx],0x68
mov DWORD ptr ds:[ebx+1],0x000000C4
}
、
void __declspec(naked) int3UnHookcode()
{
__asm
{
push 0C4h
}
}
#pragma PAGECODE
VOID UnHookInt3Proc()
{
KdPrint(("\n 卸载 Idt Hook \n"));
__asm
{
cli
mov eax, cr0
and eax, not 10000h
mov cr0, eax
}
////////////////////////////////////// 写回原指令/////////////////////////////////
__asm
{
push ebx
push eax
push ecx
mov ebx,SSDT_Adr //0x804dfaa1
lea ecx,int3UnHookcode
mov eax,[ecx+0]
mov dword ptr ds:[ebx],eax
mov eax,[ecx+4]
mov byte ptr ds:[ebx+4],al
pop ecx
pop eax
pop ebx
}
//////////////////////////////////////////////////////////////////////////////////////////////
__asm
{
mov eax, cr0
or eax, 10000h
mov cr0, eax
sti
}
}
要是把写回原来的指令改回去这么写 就不蓝屏 请问上面哪错了
__asm
{
mov ebx,SSDT_Adr //RealNtOpenAddress
mov byte ptr ds:[ebx],0x68
mov DWORD ptr ds:[ebx+1],0x000000C4
}
、
赞赏
他的文章
看原图
赞赏
雪币:
留言: