如果你已经写过 WDM 或 WDF 驱动,能编译出第一个 DriverEntry,也大致知道 IRP 怎么往下传,那么接下来大概率会撞上两堵墙:一是文件系统过滤到底挂在哪一层,二是网络数据包怎么在内核里被拦下来。这门《Windows内核安全(第二部)》就是冲着这两堵墙去的,它不负责把你领进内核的门,而是假设你已经在门里站住了。
先确认你缺的是不是这几块
这门课的主题分布很明确,动手之前可以先对着自己的经验打个勾:
- 写过文件过滤驱动,但说不清 Sfilter 和 Minifilter 在加载时机、栈位置、上下文管理上的区别,遇到重入或回调里再发 IRP 就卡住;
- 想实现文件透明加密,却不知道应该拦 IRP_MJ_CREATE 还是 IRP_MJ_READ/WRITE,也不确定缓存管理器和内存映射这条路要不要单独处理;
- 用过 socket 编程,但从没写过 NDIS 协议驱动,不理解小端口驱动、中间层驱动、过滤驱动三者谁绑在谁上面;
- 听过 WFP 这个名字,但没实际注册过 callout,分不清 WFP 和 NDIS 过滤各自适合拦什么流量。
上面任意一条中招,这门课的对应章节就不是"顺便看看",而是必须动手敲一遍的部分。如果四条全中,建议先补第一部分或者找一份能跑通的最小过滤驱动例子,再回来。
文件加密与微过滤:重点在路径,不在算法
文件加密这块,课程真正花时间的地方不是 AES 怎么调,而是加密发生在哪一层。透明加密的难点从来是判断"这次读写该不该解密":进程来自哪里、文件是不是已经被标记、内存映射读走的页缓存要不要同步处理。微过滤框架把这部分拆成了回调注册、上下文绑定、通信端口几条线,课里会顺着一份可运行的加密过滤驱动把这些串起来。
看完这一部分,你应该能回答:为什么在微过滤里做加解密比传统过滤驱动省事?卷的挂载和卸载回调分别在什么时机触发,为什么这时候才适合做上下文清理?如果应用直接用内存映射访问文件,你的加密逻辑会在哪里被绕过,又该怎么兜住?
NDIS:三条驱动路线要分清
网络部分从 NDIS 起步,这条线最容易被学乱,因为协议驱动、小端口驱动、中间过滤层驱动长得像但位置完全不同。课程按这三类分别展开,再落到过滤驱动上,目的是让你知道数据包从网卡到协议栈要经过哪些绑定点,以及在哪一层插入自己的处理逻辑最合适。
这部分偏底层,调试成本比文件过滤更高,建议准备虚拟机加内核调试环境再动手。学完之后至少要能说清楚:中间层驱动和过滤驱动都能拦包,选型时看什么?一个包在你的驱动里被指示上来,接下来是原样转发还是自己吃掉,判断依据是什么?
WFP:不是替代 NDIS,而是换个位置
WFP 过滤平台放在后面讲,是因为它更适合做基于规则的分层过滤,和 NDIS 那条线是互补关系。课程会带你认识分层、子层、callout 这几个概念,并说明纯过滤和带 callout 的过滤分别适合什么场景。这一块的动手门槛相对低一些,适合拿来验证你对"数据包在哪一层被看到"的理解。
需要提前说清楚的是,这门课不涉及绕过检测、不做对抗性内容,重心是让你理解这些内核机制本身怎么工作,以及写过滤驱动时哪些地方容易出稳定性问题。带着具体问题来看,比顺着目录往下翻效率高得多。
windows内核安全(第二部)
课程详情
课程详情
课程名称:Windows内核安全(第二部)
课程核心介绍:本课程深入探讨Windows内核安全,涵盖文件加密、文件微过滤、NDIS和WFP等高级主题。
适合人群:具备Windows内核编程基础和网络编程基础的学员。
学习收获:
- 掌握文件加密技术
- 了解文件微过滤加密原理
- 熟悉NDIS协议驱动开发
- 学习NDIS小端口驱动和中间过滤层驱动开发
- 掌握NDIS过滤驱动开发
- 了解WFP过滤平台应用
课程亮点:
- 深入讲解Windows内核安全机制
- 结合实际案例,提升实战能力
- 系统化学习,全面掌握内核安全知识
课程目录
01 文件加密 01 文件加密的原理和注意事项.mp4 02 让指定进程打开指定文件.mp4 03 文件的读和写.mp4 04 加密文件的标识以及识别.mp4 05 文件加密头的隐藏和文件读写.mp4 06 文件的额外属性和加密.mp4 07 参考书中的编译方法.mp4 02 微软的Minifilter 01 概述.mp4 02 框架浏览.mp4 03 加密文件的标识.mp4 04 文件加密和解密.mp4 05 和应用层的通信.mp4 03 内核网络 01 NDIS概述.mp4 02 NDIS中保存网络数据的内存和网卡参数设置查询.mp4 03 协议驱动准备工作.mp4 04 协议驱动注册和绑定准备.mp4 05 绑定-解绑-注销和卸载.mp4 06 协议驱动所注册的其他函数.mp4 07 协议驱动设备对象相关IRP.mp4 08 读取网络数据.mp4 09 数据的发送和测试.mp4 10 小端口驱动概述.mp4 11 小端口驱动初始化.mp4 12 虚拟小端口驱动的安装.mp4 13 网卡初始化一.mp4 14 网卡初始化二.mp4 15 网卡启动-OID和PNP请求.mp4 16 小端口驱动网卡发送数据.mp4 17 小端口驱动接收网络数据.mp4 18 小端口驱动的暂停和重置.mp4 19 中间层驱动简介.mp4 20 中间层驱动的安装和绑定.mp4 21 虚拟网卡的创建和初始化.mp4 22 数据的接收和发送.mp4 23 拦截数据.mp4 24 网络组件安装概述.mp4 25 安装调用过程.mp4 26 安装调用过程详解.mp4 27 用户配置MUX中间层驱动.mp4 28 过滤驱动.mp4 29 WPF过滤框架概述.mp4 30 用WFP禁用百度网站.mp4





