VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 246|回复: 6

[分享] 今日一贴!内核下结束其它进程!

[复制链接]
75_avatar_middle
最佳答案
18 
online_supermod 发表于 2020-3-1 18:20:59 | 显示全部楼层 |阅读模式
#include<ntddk.h>//驱动头文件


测试环境为32xp   具体进程的pid值每台机器不一样,你调取你的任务管理器查看pid





void Unload(PDRIVER_OBJECT drivdr_object)//卸载例程 每一个驱动程序都需要有一个卸载例程的指向 否者该驱动无法卸载
{
        KdPrint(("卸载成功"));
}
NTSTATUS ZwOpenProcess(//定义函数原型
        _Out_ PHANDLE ProcessHandle,//进程句柄  会在该参数返回
        _In_ ACCESS_MASK DesiredAccess,//进程权限
        _In_ POBJECT_ATTRIBUTES ObjectAttributes,//指向object_attributes的结构对象属性
        _In_opt_ PCLIENT_ID ClientId);//指向客户端的ID的指针
NTSTATUS ZwTerminateProcess(//退出线程函数
        _In_opt_ HANDLE ProcessHandle,
        _In_ NTSTATUS ExitStatus);

void KillProcess()//自定义函数在43行中被调用
{
        NTSTATUS status = STATUS_SUCCESS;//定义一个 ntstatus的成员用来检查返回的结果是否正确
        OBJECT_ATTRIBUTES oa;//初始化对象属性该参数在zwopenprocess函数中的参数3中被调用
        HANDLE hProcess = NULL;//定义一个通用的句柄该参数在zwopenprocess函数中1被调用
        CLIENT_ID ClientID;//该参数在zqopenprocess最后一个参数被调用
        ULONG dwPid = 892;//该参数用进程pid  notepad的进程pid在XP环境下的id是2744    可修改此参数用来结束其他的进程 只需要修改此pid即可
        InitializeObjectAttributes(&oa, 0, 0, 0, 0);//初始化 对象属性成员   这里因为只需要初始化并不需要其他的参数  所以后面的参数全部为0
        ClientID.UniqueProcess = (HANDLE)dwPid;//将进程的pid  传递进去
        ClientID.UniqueThread = 0;//将线程为空
        status = ZwOpenProcess(//内核下打开进程
                &hProcess,//句柄用来接收被打开的进程句柄
                PROCESS_ALL_ACCESS,//打开权限
                &oa//指向对象进程的句柄属性
                ,&ClientID//指向客户端ID的指针,表示要打开的进程线程,可为空
                );
        ZwTerminateProcess(hProcess, 0);//退出进程,  参数1退出的进程句柄  参数2退出的通知码
        KdPrint(("成功干掉notepad进程"));
        ZwClose(hProcess);//退出进城后关闭进程句柄

}


NTSTATUS DriverEntry(PDRIVER_OBJECT pdriver_object, PUNICODE_STRING punicode_string)
{

        pdriver_object->DriverUnload = Unload;//     指向驱动的卸载回调函数,每一个驱动框架都有一个该函数 可以为空  但是一定要写否则驱动无法下载
        KillProcess();
        return STATUS_SUCCESS;//返回执行状态
}




上一篇:今日一贴!驱动环境下的文件创建
下一篇:[转]C++ 获取系统版本号

本帖被以下淘专辑推荐:

04_avatar_middle
最佳答案
2 
online_vip 发表于 2020-3-1 18:57:20 | 显示全部楼层
这里可以用zwquerysysteminfomation来遍历下进程,更加方便些
75_avatar_middle
最佳答案
18 
ico_lz  楼主| 发表于 2020-3-1 19:36:13 | 显示全部楼层
xiao14116 发表于 2020-3-1 18:57
这里可以用zwquerysysteminfomation来遍历下进程,更加方便些

老哥说的对,   考虑到代码的复杂性所以没有写出来,   老哥的思路是枚举所有进程 然后动态的的结束任意的的进程对吧,我感觉写得太长很多人懒得看今日一贴!内核下结束其它进程!
04_avatar_middle
最佳答案
2 
online_vip 发表于 2020-3-1 22:04:39 | 显示全部楼层
wl1383838438 发表于 2020-3-1 19:36
老哥说的对,   考虑到代码的复杂性所以没有写出来,   老哥的思路是枚举所有进程 然后动态的的结束任意 ...

差不多吧,很久以前给一个私服写过一个驱动版的进程守护,现在都快忘光了,可以做个扩展题目
75_avatar_middle
最佳答案
18 
ico_lz  楼主| 发表于 2020-3-1 22:13:28 | 显示全部楼层
xiao14116 发表于 2020-3-1 22:04
差不多吧,很久以前给一个私服写过一个驱动版的进程守护,现在都快忘光了,可以做个扩展题目

大佬  ,,,,,,,,厉害      我也是最近在学习驱动,也就顺便把自己的笔记发到论坛  看看有没有也在学习驱动的一起交流!今日一贴!内核下结束其它进程!
80_avatar_middle
最佳答案
0 
在线会员 发表于 2020-3-10 12:47:46 | 显示全部楼层
可以直接删除吗,我就是来弄点积分,好下一个东西。
75_avatar_middle
最佳答案
18 
ico_lz  楼主| 发表于 2020-3-10 18:58:12 | 显示全部楼层
u52231 发表于 2020-3-10 12:47
可以直接删除吗,我就是来弄点积分,好下一个东西。

我没有看明白  啥意思 你想积分    很简单啊  每个帖子 留言一下就很多积分了  但是 别打一些乱七八糟的就行
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-7-9 16:31

Powered by CcTry.CoM

© 2009-2020 cctry.com

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