-
-
[求助]hook sysenter
-
发表于:
2009-3-30 15:45
4203
-
借用大牛的源代码hook sysenter,能成功在虚机和真正的机器里都能成功.
我想绕过SSDT的hook,在中间加了几句代码后,在虚机了能成功,在真正的机器里面就不能,请大牛指点一二.
下面是部分的关键代码部分:
ULONG i;
__declspec(naked) void MyKiFastCallEntry(void)
{
__asm{
pop edi //因为用到了edi来跳转 这里恢复
mov i, eax //得到服务ID
}
__asm{
pushad
push fs
push 0x30
pop fs
}
// DbgPrint("sysenter was hooked! Get service ID:%X",i); //证明自己存在
__asm{
pop fs
popad
// mov eax,i 这句加上就不行,不加就 OK
jmp pMovedSysenterCode //第二跳,跳转到原来的函数头代码
}
}
注:mov eax,i 这句我想把拦截的服务号,处理后重新放回去.
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课