首页
社区
课程
招聘
[求助]的到进程的pid 了,怎么kill掉他呢
发表于: 2009-6-21 21:19 4485

[求助]的到进程的pid 了,怎么kill掉他呢

2009-6-21 21:19
4485
驱动程序设计中
我想问一下,我得到了进程pid怎么杀掉他呢?
网上查了一下!
NTSTATUS NtTerminateProcess(
                    IN HANDLE ProcessHandle OPTIONAL,
                    IN NTSTATUS ExitStatus
                    );
NTSTATUS
NTAPI
NewNtTerminateProcess(
            IN HANDLE ProcessHandle OPTIONAL,
            IN NTSTATUS ExitStatus
            )
PspTerminateProcess()
这些函数,都未导出函数
pragram comment(lib,ntdll.lib)
并在 ntddk.h 申明了
可用的时候老出错
NewNtTerminateProcess  是返回 错误
其他的是编译报错说 __stdcall  @8    (我就在申明那加了个extend "C") 还是不行!
高手能说一下怎么用这几个函数么? 希望提供点代码参考和申明写法!
知道的,希望不要问题太菜而不理!谢谢!

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
ZwOpenProcess->ZwTerminateProcess
2009-6-21 21:44
0
雪    币: 184
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
申明:
extern "C"
NTSYSAPI
NTSTATUS
NTAPI
ZwOpenProcess(
OUT PHANDLE ProcessHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN PCLIENT_ID ClientId OPTIONAL
);

extern "C"
NTSYSAPI
NTSTATUS
NTAPI
ZwTerminateProcess(
IN HANDLE ProcessHandle OPTIONAL,
IN NTSTATUS ExitStatus
);


函数:
bool TerminateProcess(IN ULONG pid)
{
bool ret = false;
HANDLE ProcessHandle;
CLIENT_ID ClientId;
OBJECT_ATTRIBUTES ObjectAttributes;
ClientId.UniqueProcess = (HANDLE)pid;
ClientId.UniqueThread = (HANDLE)0;
ObjectAttributes.Attributes = 0;
ObjectAttributes.Length = sizeof(OBJECT_ATTRIBUTES);
ObjectAttributes.ObjectName = NULL;
ObjectAttributes.RootDirectory = NULL;
ObjectAttributes.SecurityDescriptor = NULL;
ObjectAttributes.SecurityQualityOfService = NULL;
NTSTATUS ntstatus = ZwOpenProcess(&ProcessHandle, PROCESS_ALL_ACCESS, &ObjectAttributes, &ClientId);
if (NT_SUCCESS(ntstatus))
{
DbgPrint("OpenProcess Successed!\n");
ntstatus = ZwTerminateProcess(ProcessHandle, 0);
if (NT_SUCCESS(ntstatus))
{
DbgPrint("TerminateProcess Successed!\n");
ret = true;
}
ZwClose(ProcessHandle);
}
return ret;
}
2009-6-22 01:02
0
雪    币: 245
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
太感谢了!
要是所有人,都像这样回答,我们菜鸟成长速度何愁不快!
(大牛并不是技术高就是大牛)
2009-6-22 01:23
0
雪    币: 245
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
ZwOpenProcess:
我在请教一下:这些数据结构,我找了好久,就是找不到这些的定义,
手册上也没有,google 也不好找!
我想问一下,这些资料是从哪得到得,要不以后遇到就得问!请大牛授之渔!
OBJECT_ATTRIBUTES
CLIENT_ID
2009-6-22 01:28
0
雪    币: 184
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
google baidu都有,你关键字不对。
http://www.pediy.com/document/Windows_System_Call_Table/Windows_System_Call_Table.htm
http://bbs.pediy.com/showthread.php?t=83024   6楼
2009-6-22 01:35
0
雪    币: 437
活跃值: (273)
能力值: ( LV12,RANK:240 )
在线值:
发帖
回帖
粉丝
7
那你意思就是楼上是个技术不高但回答的好的大牛 ~~~~~~~~~~~
2009-6-22 01:57
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
8
楼主自己不会搜索,还招来一堆人的不喜欢...
2009-6-22 08:43
0
雪    币: 245
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
我没那意思!呵呵!谢谢了!
2009-6-22 09:55
0
游客
登录 | 注册 方可回帖
返回
//