阅读:1491回复:5
关于ZwOpenProcess
我的NewZwOpenProcess函数如下:
NTSTATUS NewZwOpenProcess(PHANDLE ProcessHandle,ACCESS_MASK DesiredAccess,POBJECT_ATTRIBUTES ObjectAttributes,PCLIENT_ID ClientId) { int cid_valid=func_is_good_read_ptr(ClientId,sizeof(CLIENT_ID)); if (cid_valid) { DbgMsg("hooked_proc.cpp: NewZwOpenProcess: ClientId->UniqueProcess=0x%.8X",ClientId->UniqueProcess); } NTSTATUS status; char* processname=GetProcessNameU(); //获取当前进程名 int protect=cid_valid?func_check_process_protection((ULONG)ClientId->UniqueProcess,(char *)processname):FALSE; //检查是否是要拒绝的进程 ULONG pid=(ULONG)PsGetCurrentProcessId(); if (!protect) status=OldZwOpenProcess(ProcessHandle,DesiredAccess,ObjectAttributes,ClientId); else { status=STATUS_ACCESS_DENIED; ZwClose(*ProcessHandle); DbgMsg("hooked_proc.cpp: NewZwOpenProcess(-):STATUS_ACCESS_DENIED"); } return status; } |
|
沙发#
发布于:2007-08-29 15:23
进程名已经判断出来了,并返回了STATUS_ACCESS_DENIED
但进程还是打开了 |
|
板凳#
发布于:2007-08-29 15:24
我想拒绝进程打开,要怎么做?
|
|
地板#
发布于:2007-08-29 16:34
问一个问题:在驱动程序里面可以调用平常一般的Win32 API函数吗?
|
|
地下室#
发布于:2007-08-29 17:17
NewZwOpenSection和NewZwOpenFile都能拒绝,ZwOpenProcess怎么关掉进程啊
|
|
5楼#
发布于:2007-08-31 10:35
怎么会不行呢,我的可以阻止打开。。。。。。
难道你的程序逻辑有问题?!匹配条件? |
|
|