阅读:2464回复:14
如何驱动程序中拦截WIN2000的创建进程请求?
我在拦截内核API时找不到ZwCreateProcess函数,不知道如何拦截这个API!
|
|
最新喜欢:cyliu |
沙发#
发布于:2003-09-29 16:22
使用PsSetCreateProcessNotifyRoutine注册回调函数即可!
|
|
|
板凳#
发布于:2003-09-29 17:12
谢谢!已经给分了!
再问一句,能知道进程名吗? |
|
地板#
发布于:2003-10-03 22:59
hook int2e
|
|
|
地下室#
发布于:2003-10-05 11:40
我知道HOOK INT 2E,个人觉得会比拦截内核API更影响系统性能
而且不知道怎样判断是创建进程请求! |
|
5楼#
发布于:2003-10-06 12:08
注册PsSetCreateProcessNotifyRoutine只能得到进程创建和销毁的通知,不能拦截进程。并且这时只能得到进程的文件名,没有路径,因为系统这时候还没有把参数信息填进进程空间,得想其他得办法才可以得到。
在Ntoskrnl里面没有显式引出ZwCreateProcess (XP下是ZwCreateProcessEx) 这个函数,你可以先找到它的Call Number然后再去Hook它。 你可以Hook ZwCreateSection来拦截进程得创建。在创建进程的时候调用ZwCreateSection和创建一般的Section所使用的参数是不同的,这里面可以得到进程得全路径,也可以拦截进程 |
|
6楼#
发布于:2003-10-06 12:09
你参考一下RootKit吧
|
|
7楼#
发布于:2003-10-06 14:56
进程名
PsLookupProcessByProcessId((ULONG)ProcessId, &ProcessPointer); CurProc = (char *)ProcessPointer; CurProc += 0x1FC; KdPrint( (\"PROCESS: Process %s has been Created\\n\",CurProc) ); |
|
8楼#
发布于:2003-10-13 17:27
哪天看错了,回调函数是一个完成函数。并且在回调函数中得到的是ProcessID而不是_EPROCCESS这个结构,但是使用Navtion函数:PsLookupProcessByProcessId()可由ProcessID得到PEPROCCESS。NTSTATUS PsLookupProcessByProcessId(
IN ULONG ulProcId, OUT PEPROCESS * pEProcess ); 拿到PEPROCESS在取名字就好说了!不过这个函数只能运行在Win2K下,好运! |
|
|
9楼#
发布于:2003-10-13 17:30
我靠,都有人贴了!呵呵,看来又来说废话了!该打! :D :D :D :D
|
|
|
10楼#
发布于:2004-05-21 14:47
RootKit是什么?哪位能简单说一下?急!!
|
|
|
禁止发言
|
11楼#
发布于:2004-07-20 12:27
用户被禁言,该主题自动屏蔽! |
12楼#
发布于:2004-07-27 14:42
rootkit简单的说就是后门程序,嵌入系统内核,拥有自己的TCP/IP协议栈,可以访问网络而不被发觉,可以隐藏进程,可以隐藏文件,可以窃取密码,等等。 COOL! 哪儿有原代码? |
|
13楼#
发布于:2004-07-29 12:50
http://www.rootkit.com
|
|
|
14楼#
发布于:2004-09-14 08:01
注册PsSetCreateProcessNotifyRoutine只能得到进程创建和销毁的通知,不能拦截进程。并且这时只能得到进程的文件名,没有路径,因为系统这时候还没有把参数信息填进进程空间,得想其他得办法才可以得到。 在创建进程的时候调用ZwCreateSection和创建一般的Section所使用的参数有什么不同呢?能不能讲详细一点。如何判断这是创建进程时执行的ZwCreateSection还是其他时候执行的ZwCreateSection呢? |
|