最近在复盘关注的B站UP主的视频,看到有一个视频是驱动隐藏进程不蓝屏的视频,视频地址如下:【【ACZR】驱动隐藏进程,断链不蓝屏效果演示,仅演示非教学】 151K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2T1K9h3I4A6j5X3W2D9K9g2)9J5k6h3y4G2L8g2)9J5c8Y4k6A6k6r3g2G2i4K6u0r3b7W2j5I4z5f1Z5@1L8e0q4%4y4$3N6j5i4K6u0r3i4K6y4r3M7$3S2S2M7X3g2Q4y4h3k6K6L8%4g2J5j5$3g2Q4x3@1c8U0L8%4m8&6i4K6g2X3N6$3g2T1i4K6t1$3j5h3#2H3i4K6y4n7N6X3c8Q4y4h3k6K6L8%4g2J5j5$3g2Q4x3@1b7&6x3r3u0U0y4e0W2S2y4X3q4X3y4U0V1#2x3o6y4U0k6h3b7J5k6U0l9$3z5o6j5&6k6X3g2V1x3X3j5I4j5b7`.`.遂想自己动手亲自试试。于是搜索了一大堆方法整理和整合。方法大概如下:一、DKOM 实现进程隐藏DKOM 就是直接内核对象操作技术(Direct Kernel Object Modification 即直接内核对象修改。它的核心思想是不通过任何 Windows API,而是直接通过驱动程序修改内存中的内核结构体体数据(如 EPROCESS、KTHREAD、TOKEN 等),我们所有的操作都会被系统记录在内存中,而驱动进程隐藏的做旧就是操作进程的EPROCESS结构与线程的ETHREAD结构、链表,要实现进程的隐藏我们只需要将某个进程中的信息,在系统EPROCESS链表中摘除即可实现进程隐藏。DKOM 隐藏进程的本质是操作EPROCESS结构体,EPROCESS结构体中包含了系统中的所有进程相关信息,还有很多指向其他结构的指针,首先我们可以通过WinDBG在内核调试模式下输入dt_eprocess 即可查看到当前的EPROCESS结构体的偏移信息,结构较多。但常用的就下面这几个,我这里给摘出来了(可以使用Ai快速摘出来):1: kd> dt _EPROCESS
nt!_EPROCESS
+0x000 Pcb : _KPROCESS
+0x2e8 UniqueProcessId : Ptr64 Void // 进程PID
+0x2f0 ActiveProcessLinks : _LIST_ENTRY // 活动进程双向链表
+0x310 CreateTime : _LARGE_INTEGER // 进程创建时间
+0x360 Token : _EX_FAST_REF // 进程令牌(权限)
+0x3f8 Peb : Ptr64 _PEB // 指向用户态PEB
+0x418 ObjectTable : Ptr64 _HANDLE_TABLE // 句柄表
+0x428 WoW64Process : Ptr64 _EWOW64PROCESS // 32位进程标识
+0x450 ImageFileName : [15] UChar // 进程名(如notepad.exe)
+0x488 ThreadListHead : _LIST_ENTRY // 线程链表头
+0x498 ActiveThreads : Uint4B // 活动线程数
+0x4a4 LastThreadExitStatus : Int4B // 最后线程退出状态
+0x500 Vm : _MMSUPPORT_FULL // 内存管理相关
+0x654 ExitStatus : Int4B // 进程退出状态
+0x658 VadRoot : _RTL_AVL_TREE // 虚拟地址描述符树
+0x6c0 ExitTime : _LARGE_INTEGER // 进程退出时间
+0x6f8 SignatureLevel : UChar // 签名级别
+0x6fa Protection : _PS_PROTECTION // 进程保护级别
+0x850 MitigationFlags : Uint4B // 缓解机制标志要实现进程的隐藏,我们需要关注结构中的 ActiveProcessLinks:ActiveProcessLinks 核心速记
+0x188 ActiveProcessLinks : _LIST_ENTRY // 活动进程双向链表 (DKOM 隐藏进程的“手术位置”)
- 类型: _LIST_ENTRY (包含 Flink 和 Blink 两个指针)
- 作用: Windows 内核通过该链表串联所有活跃进程,供任务管理器、Tasklist 等工具遍历显示。
- 断链原理: 令目标进程的前驱节点指向后继节点,使目标节点在系统遍历路径上“消失”。
- 风险点:
1. PatchGuard 检测: 触发频率极高,需配合其他手段绕过。
2. 进程退出: 若不还原链表直接关闭进程,内核删除节点时会导致 BSoD (蓝屏)。
3. 交叉检测: 无法躲过针对 PspCidTable 或会话链表 (SessionProcessLinks) 的深度扫描。该指针把每个进程的EPROCESS结构体连接成了双向链表,我们可以使用 ZwQuerySystemInformation 这个函数来遍历出所有的进程信息,要实现进程的隐藏,只需要将某个进程的EPROCESS从结构体中摘除,那么通过ZwQuerySystemInformation函数就无法遍历出被摘链的进程了,从而实现了进程的隐藏。在实现进程隐藏之前
...(已截断)
---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-290738.htm
[原创]驱动隐藏进程(1.不蓝屏。2.多种方法。)
356 浏览
12 回复
不好意思,由于时间原因,暂时没能把后续补全,晚点我会对内容进行补全。同时该帖会持续更新方法,以后有其他方法了也会更新到帖子里,希望大家可以收藏一下常来看看
感谢分享。直接COPY第一份驱动源码编译成功,在WIN10x64 LTSB2016中加载驱动,成功隐藏了进程calc.exe。
但是有两个问题:
1、隐藏后的进程用PChunter能看到,并显示红色标记。
2、隐藏进程后,运行带NP保护的游戏,NP加载失败,进不了游戏。关闭calc.exe并卸载驱动后,再次打开带NP保护的游戏,才能正常加载NP并进入游戏。
但是有两个问题:
1、隐藏后的进程用PChunter能看到,并显示红色标记。
2、隐藏进程后,运行带NP保护的游戏,NP加载失败,进不了游戏。关闭calc.exe并卸载驱动后,再次打开带NP保护的游戏,才能正常加载NP并进入游戏。
cjshpzh
感谢分享。直接COPY第一份驱动源码编译成功,在WIN10x64 LTSB2016中加载驱动,成功隐藏了进程calc.exe。
但是有两个问题:
1、隐藏后的进程用PChunter能看到,并显示红 ...
OK,后续会钻研研究这个的,希望你收藏一下帖子,或者等后续我更新了回来会再引用你回复给你提个醒的
感谢分享。直接COPY第一份驱动源码编译成功,在WIN10x64 LTSB2016中加载驱动,成功隐藏了进程calc.exe。
但是有两个问题:
1、隐藏后的进程用PChunter能看到,并显示红 ...
OK,后续会钻研研究这个的,希望你收藏一下帖子,或者等后续我更新了回来会再引用你回复给你提个醒的
感谢分享,我这边没有编译驱动的环境,但感觉方法1和2,用户层能扫描出来(没用到 PID + 4 这种爆力,只是简单的识别)。
有环境的用户可以试试用这个用户层工具,开启检测隐藏进程来试试(进程页,右键,所有进程检测隐藏进程):https://bbs.kanxue.com/thread-284075.htm,按理能扫描出来。当时做这个功能时,找不到有现成的驱动来测试隐藏进程。所以不知这个识别是否有用。有用或无用的和我说一下,谢谢。
最后于 2026-4-14 21:25
被kagayaki编辑
,原因:
有环境的用户可以试试用这个用户层工具,开启检测隐藏进程来试试(进程页,右键,所有进程检测隐藏进程):https://bbs.kanxue.com/thread-284075.htm,按理能扫描出来。当时做这个功能时,找不到有现成的驱动来测试隐藏进程。所以不知这个识别是否有用。有用或无用的和我说一下,谢谢。
最后于 2026-4-14 21:25
被kagayaki编辑
,原因:
kagayaki
感谢分享,我这边没有编译驱动的环境,但感觉方法1和2,用户层能扫描出来(没用到 PID + 4 这种爆力,只是简单的识别)。有环境的用户可以试试用 ...
OK,这周休息日我会细看一下的,感谢分享
感谢分享,我这边没有编译驱动的环境,但感觉方法1和2,用户层能扫描出来(没用到 PID + 4 这种爆力,只是简单的识别)。有环境的用户可以试试用 ...
OK,这周休息日我会细看一下的,感谢分享
BOSC叛忍
OK,这周休息日我会细看一下的,感谢分享
谢谢
OK,这周休息日我会细看一下的,感谢分享
谢谢
kagayaki
谢谢
我这边测试了,发现果然是能够搜到,看来隐藏的还是不够好,得需要更高级的隐藏方式
谢谢
我这边测试了,发现果然是能够搜到,看来隐藏的还是不够好,得需要更高级的隐藏方式
BOSC叛忍
我这边测试了,发现果然是能够搜到,看来隐藏的还是不够好,得需要更高级的隐藏方式
谢谢。
我这边测试了,发现果然是能够搜到,看来隐藏的还是不够好,得需要更高级的隐藏方式
谢谢。
kagayaki
谢谢。
您的工具做的非常优秀,真的很厉害,向您致敬!
谢谢。
您的工具做的非常优秀,真的很厉害,向您致敬!
BOSC叛忍
您的工具做的非常优秀,真的很厉害,向您致敬!
谢谢,优秀说不上,只是个人爱好。
您的工具做的非常优秀,真的很厉害,向您致敬!
谢谢,优秀说不上,只是个人爱好。
直接断active肯定PG的,而且进程的链表有很多维护的地方,比如KT里的processlink,vm里的link等等,还有可以通过调度找到线程,线程+220又可以拿到et等等,隐藏永无止境。。。
wx_垃圾债券之王
直接断active肯定PG的,而且进程的链表有很多维护的地方,比如KT里的processlink,vm里的link等等,还有可以通过调度找到线程,线程+220又可以拿到et等等,隐藏永无止境。。。
受教了,感谢
直接断active肯定PG的,而且进程的链表有很多维护的地方,比如KT里的processlink,vm里的link等等,还有可以通过调度找到线程,线程+220又可以拿到et等等,隐藏永无止境。。。
受教了,感谢