找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 5420|回复: 2

关于SYSENTER HOOK中的一个蓝屏问题

[复制链接]

8

主题

51

回帖

0

精华

银牌会员

积分
369
发表于 2016-8-7 23:17:35 | 显示全部楼层 |阅读模式
今天研究SYSENTER HOOK 测试环境WIN7 32位
  1. __declspec(naked) void MyKiFastCallEntry()
  2. {
  3.         __asm
  4.         {
  5.                 pushad;
  6.                 pushfd;       
  7.         }
  8.         if (KeGetCurrentIrql() < DISPATCH_LEVEL)
  9.         {
  10.                 PEPROCESS  ps = PsGetCurrentProcess();
  11.                 if (ps!=NULL)
  12.                 {
  13.                         UCHAR* pName = ((UCHAR*)ps + PROCESS_NAME_OFFSET);
  14.                         if (pName!=NULL)
  15.                         {
  16.                                 if (0 == _stricmp(pName,"explorer.exe"))
  17.                                 {
  18.                                         KdPrint(("sysCallIndex is %s\n", pName));
  19.                                 }
  20.                         }               
  21.                 }
  22.         }
  23.         __asm
  24.         {
  25.                 popfd;
  26.                 popad;
  27.             jmp g_OrigKiFastCallEntry;
  28.         }
  29. }
复制代码

这是我写的HOOK代码在目标机上测试 不用怀疑【蓝屏】!用windbg查看原因如图
1.png 2.png 3.png 4.png
百思不得其解的是为什么会蓝屏到KeGetCurrentIrql()函数 我查MSDN关于KeGetCurrentIrql()函数 IRQL: Any level  那么
为什么触发IRQL_NOT_LESS_OR_EQUAL (a) 求大牛指点!

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2016-8-8 12:50:32 | 显示全部楼层
WINDBG定位不一定是准确的。。。很多时候甚至定位不到你的代码里。
此外Hook KiFastCallEntry代码这里有:http://www.m5home.com/bbs/thread-4508-1-1.html

8

主题

51

回帖

0

精华

银牌会员

积分
369
 楼主| 发表于 2016-8-8 15:41:05 | 显示全部楼层
Tesla.Angela 发表于 2016-8-8 12:50
WINDBG定位不一定是准确的。。。很多时候甚至定位不到你的代码里。
此外Hook KiFastCallEntry代码这里有:h ...

拜谢!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表