看流星社区

 找回密码
 注册账号
查看: 2171|回复: 0

在内核里面-依据进程PID获取进程句柄

[复制链接]

该用户从未签到

发表于 2013-5-6 08:49:33 | 显示全部楼层 |阅读模式
#include <ntddk.h>//以下代码需要这个头文件
long Ring0OpenProcess(HANDLE Pid)//在内核里面-依据进程PID获取进程句柄
{
        ULONG ProcessHandle=0;
        CLIENT_ID objCid;
        OBJECT_ATTRIBUTES   objOa;
        RtlZeroMemory(&objOa,sizeof(OBJECT_ATTRIBUTES));
        RtlZeroMemory(&objCid,sizeof(CLIENT_ID));
    objOa.Length = sizeof(objOa);
    objCid.UniqueProcess = (HANDLE)Pid;     //进程pid
        ZwOpenProcess (&(HANDLE)ProcessHandle, 0x1F0FFF, &objOa, &objCid);//打开进程
    return ProcessHandle;//返回的进程句柄
}
long  hProcess =Ring0OpenProcess(进程PID);//获取进程句柄
NtTerminateProcess(hProcess);//结束进程
有了进程句柄后就可以。。。读取内存、修改内存、结束进程
如果依据进程名来获取 ,获取进程的PID。这个我在之前的连载中 已经有过了,是驱动连载2.

以上这个是一个驱动杀进程的一个方法思路,不过重要的是今天把一个实用的自定义函数分享给大家:Ring0OpenProcess ,意思就是在内存中依据进程PID获取进程句柄。

  个人觉得,这个自定义函数蛮实用的,我想这里用驱动写东西的人很少。。不过我依旧坚持发下去。
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-5-14 13:52

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

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