关于SYSENTER HOOK中的一个蓝屏问题
今天研究SYSENTER HOOK 测试环境WIN7 32位__declspec(naked) void MyKiFastCallEntry()
{
__asm
{
pushad;
pushfd;
}
if (KeGetCurrentIrql() < DISPATCH_LEVEL)
{
PEPROCESSps = PsGetCurrentProcess();
if (ps!=NULL)
{
UCHAR* pName = ((UCHAR*)ps + PROCESS_NAME_OFFSET);
if (pName!=NULL)
{
if (0 == _stricmp(pName,"explorer.exe"))
{
KdPrint(("sysCallIndex is %s\n", pName));
}
}
}
}
__asm
{
popfd;
popad;
jmp g_OrigKiFastCallEntry;
}
}
这是我写的HOOK代码在目标机上测试 不用怀疑【蓝屏】!用windbg查看原因如图
百思不得其解的是为什么会蓝屏到KeGetCurrentIrql()函数 我查MSDN关于KeGetCurrentIrql()函数 IRQL: Any level那么
为什么触发IRQL_NOT_LESS_OR_EQUAL (a) 求大牛指点! WINDBG定位不一定是准确的。。。很多时候甚至定位不到你的代码里。
此外Hook KiFastCallEntry代码这里有:http://www.m5home.com/bbs/thread-4508-1-1.html Tesla.Angela 发表于 2016-8-8 12:50
WINDBG定位不一定是准确的。。。很多时候甚至定位不到你的代码里。
此外Hook KiFastCallEntry代码这里有:h ...
拜谢!
页:
[1]