-
-
[求助]竹君兄弟帮忙看下 HOOK ZwTerminateProcess的问题
-
发表于:
2011-3-4 01:45
10768
-
[求助]竹君兄弟帮忙看下 HOOK ZwTerminateProcess的问题
在应用层写了一个对话框程序做测试。我发现了一些问题。
1.只有切换到任务管理器的进程列表去结束进程才会成功(也就是HOOK)
2.如果在任务管理的“应用程序”选项卡选择“结束任务”,那么系统会断下。
3.点击受保护进程的窗体的关闭按钮,会系统断下。
希望各位朋友能指点一下。
==========================================
上面时几天前我学习SSDT Hook遇到的问题,依旧十分迷惑。我尽量把问题描述清楚,好让大家弄懂我的意思。
==========================================
今天看了竹君兄弟的《详谈内核三步走Inline Hook实现》,感觉讲的很不错。于是我也照着上面的代码弄了一个Inline Hook ObReferenceObjectByHandle的代码,自己拿到虚拟机上测试了一下,发现了和本帖原来一样的问题(就是上面提到的SSDT Hook出现的问题)。
我的虚拟机环境是XP SP3,物理机用的WinDbg来调试的。
首先加载驱动,然后开一个记事本,进入任务管理器,
点击“进程”选项卡,试图去结束记事本,很好,提示句柄无效,说明代码起作用了。
然后,我
们切换到任务管理器的“应用程序”选项卡,选择结束记事本,这时,虚拟机端了,去WinDbg看看,提示一个异常,这里连续输入好几次g才使得虚拟机继续运行起来。
虽然虚拟运行了起来,但是记事本弹出一个错误对话框:
点击“关闭”,虚拟机又断了,WinDbg还是提示这哪个first chance的异常,继续连着输入好几个g,虚拟机又运行起来了,但是又弹出一个错误提示:
点确定,WinDbg又会重复前面的错误提示,重复输入g,虚拟机运行,记事本终于“关闭”了。但此时进程选项卡中还能看到“notepad.exe”,还被驱动保护着。
停止驱动,就可以把这个进程强制结束了。
如果上面不是在任务管理器的“应用程序”选项卡中结束记事本,而是直接关闭记事本,会出现同样的问题。实在是想不明白是哪里有问题,所以就直接改了下帖子,两个问题放一起了。
对于我前面的SSDT HOOK,问题是一样的。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)