正版资源天草驱动开发教程
《天草驱动开发教程》1.环境的搭建(虚拟机+WinDbg) 2.内核的环境与数据类型 3.驱动程序数据结构 4.生成过滤设备 5.绑定过滤设备 6.串口获得实际数据 7.完整的串口过滤 8.第一个HelloWDM 9.键盘过滤从敲击到内核 10.HelloWDM.inf文件剖析 11.Win驱动程序中重要数据结构 12.NT式驱动的基本结构 13.Unload与WinObj观察 14.WDM驱动程序的基本结构 15.WDM的DriverEntry和AddDevice函数 16.WDM的Unload例程与查看WDM设备对象 17.Win内存管理 18.在驱动中使用链表 19.Lookaside结
支付成功后自动发货,可在「我的订单」查看网盘链接;链接失效可联系客服免费补链。
这套天草驱动开发教程围绕 Windows 内核态编程展开,主线是把驱动从"编译出来能加载"推进到"能拦截真实数据"。资料包的组织方式偏向动手:环境先行,数据结构铺垫,然后用串口过滤、键盘过滤、文件与注册表操作这几条线把 WDM 和 NT 式驱动的骨架拆开讲。如果你打算对着屏幕敲一遍而不是只看视频,它的顺序基本是按调试链路排的,跟得上。
技术栈与调试环境
驱动开发的第一个门槛不在代码,而在能不能看见内核在干什么。资料从虚拟机加 WinDbg 的双机调试搭起,这是后续所有实验的前提:宿主机跑调试器,虚拟机跑被调试系统,符号路径配好,断点才落得下去。这一点必须先跑通,不然后面内核断点触发不了,只能靠猜。
语言层面是 C,配合 WDK 的构建环境。需要注意的是驱动里不能随便调用用户态的 CRT,能用的运行时函数有限,字符串操作、内存分配都得换成内核版本(ExAllocatePool、RtlString 系列等)。资料里对内存管理、Lookaside 结构、链表、运行时函数这几块单独拎出来讲,原因也在这里:用户态习惯的写法在内核里大多不可用,必须重建一套。
从 NT 式驱动到 WDM 的骨架
前段用 HelloWDM 做切入,重点不在"打印一行字",而在解剖 DriverEntry、AddDevice、Unload 这几个入口的职责划分,以及 inf 文件到底把哪些信息写进了注册表。WinObj 观察设备对象这一步很关键——加载成功与否,不是看编译输出,而是看设备对象有没有出现在对象管理器里。
把 NT 式驱动和 WDM 驱动分开讲是有意为之。两者在 DriverEntry 的注册方式、设备对象的创建时机上并不一样,WDM 多了 AddDevice 回调,设备栈的层次关系也更明确。搞清楚这层差异,再去看后面的过滤设备就不会乱。
过滤驱动的完整链路
串口过滤是这套资料里最完整的一条工程线索:先生成过滤设备,再绑定到目标设备栈,然后从串口拿到实际数据,最后拼成一个可用的完整过滤。这个过程把 IRP 的分层处理、设备扩展、以及如何在不破坏原有栈的前提下插入自己的处理逻辑讲清楚了。键盘过滤从敲击到内核那段,思路类似但对象不同,可以对照着看,理解过滤驱动的复用点在哪。
这两条线合起来,基本覆盖了驱动开发里最常见的一类需求:不改变原设备功能,只在数据通路上加一层观察或改写。
内核里的文件与注册表操作
后段转向驱动如何操作文件与注册表,包括打开文件、读写、以及注册表项的创建与其他操作。这块容易踩的坑在于路径格式和对象引用:内核里访问文件系统要用对象管理器能识别的路径,注册表操作则涉及 Zw 系列函数与对象属性的配合。把这几节和前面的内存、字符串操作连起来看,能得到一套相对自洽的内核编程习惯。
怎么用这份资料
建议的路径是:先把调试环境跑通并验证断点可命中,再按 HelloWDM 走一遍加载与卸载,确认设备对象可见;之后进入串口过滤,把每条 IRP 的走向用 WinDbg 跟一遍;最后用文件与注册表操作做收尾练习。配套的源码和 inf 配置文件适合直接拿来改——改一处、重新加载、观察行为变化,比按顺序看完所有视频更接近实际开发。天草这套内容的价值也在这里:它给的是可运行的骨架,你可以把它当成模板去套自己的过滤需求,而不是从零推导内核对象模型。
1.环境的搭建(虚拟机+WinDbg) 2.内核的环境与数据类型 3.驱动程序数据结构 4.生成过滤设备 5.绑定过滤设备 6.串口获得实际数据 7.完整的串口过滤 8.第一个HelloWDM 9.键盘过滤从敲击到内核 10.HelloWDM.inf文件剖析 11.Win驱动程序中重要数据结构 12.NT式驱动的基本结构 13.Unload与WinObj观察 14.WDM驱动程序的基本结构 15.WDM的DriverEntry和AddDevice函数 16.WDM的Unload例程与查看WDM设备对象 17.Win内存管理 18.在驱动中使用链表 19.Lookaside结构 20.运行时函数 21.内存管理--(其他) 22.内核模式下的字符串操作 23.内核模式下的文件操作 24.文件的打开 25.驱动对文件的相关操作 26.驱动操作注册表--(创建) 27.驱动对注册表的其他操作 28.派遣函数的简单处理 29.应用程序打开驱动 30.编写更通用的派遣函数 31.跟踪IRP的利器IRPTrace 32.缓冲区的操作与读写 33.缓冲区设置模拟文件读写 34.Sys与Exe文件的通讯A 35.实战EXE和SYS通信(缓冲模式) 36.实战EXE和SYS通信(直接) 37.实战EXE和SYS通信-(其它模式)
课程推荐
《天草驱动开发教程》1.环境的搭建(虚拟机+WinDbg) 2.内核的环境与数据类型 3.驱动程序数据结构 4.生成过滤设备 5.绑定过滤设备 6.串口获得实际数据 7.完整的串口过滤 8.第一个HelloWDM 9.键盘过滤从敲击到内核 10.HelloWDM.inf文件剖析 11.Win驱动程序中重要数据结构 12.NT式驱动的基本结构 13.Unload与WinObj观察 14.WDM驱动程序的基本结构 15.WDM的DriverEntry和AddDevice函数 16.WDM的Unload例程与查看WDM设备对象 17.Win内存管理 18.在驱动中使用链表 19.Lookaside结构 20.运行时函数 21.内存管理--(其他) 22.内核模式下的字符串操作 23.内核模式下的文件操作 24.文件的打开 25.驱动对文件的相关操作 26.驱动操作注册表--(创建) 27.驱动对注册表的其他操作 28.派遣函数的简单处理 29.应用程序打开驱动 30.编写更通用的派遣函数 31.跟踪IRP的利器IRPTrace 32.缓冲区的操作与读写 33.缓冲区设置模拟文件读写 34.Sys与Exe文件的通讯A 35.实战EXE和SYS通信(缓冲模式) 36.实战EXE和SYS通信(直接) 37.实战EXE和SYS通信-(其它模式)【技能收获】学完可掌握:教程、开发。课程以实战为导向,覆盖从基础概念到完整项目落地的关键步骤,配套章节笔记便于课后复盘与面试前快速回顾。【学习建议】建议按目录顺序逐节学习,重点章节可反复观看;学完后整理一份技术笔记或博客,将所学转化为可展示的项目经验。【就业发展】可面向岗位:Linux 运维工程师、SRE、云计算工程师、DevOps 工程师。云原生与自动化运维仍是企业 IT 刚需方向,认证 + 实战项目组合能显著提升面试通过率,适合向中高级运维或架构岗进阶。 若你已有一定编程或运维基础,本课程可帮助你在现有技能栈上快速叠加热门方向能力,提升求职时的项目说服力与薪资谈判空间。




