这门课补的是哪一块缺口
能写出来一个能加载、能通信的驱动,和能写出来一个在真实对抗环境下站得住的内核模块,中间隔着的不是语法,是对操作系统机制的理解深度。很多人卡在这个位置:IRP 会填了,但说不清一次文件操作从应用层到内核经过了哪些结构、哪些回调、哪些可以被动手脚的地方;能编译出 sys 文件,但一上目标机就被 PATCHGUARD、回调枚举或者简单的交叉视图检测揪出来。
这门进阶课对准的就是这段落差。它假设你已经过了「驱动能跑起来」这一步——会建工程、会写入口、会调试基本崩溃——然后往下压:进程、文件、注册表这三条主线上的内核行为究竟怎么运转,以及在这些位置上做安全操作时,哪些做法是过时的、哪些是当前还成立的。
隐藏技巧这部分,值不值得学
课程简介里提到「独特的隐藏技巧」,这是最容易被误解的部分。需要先说清楚:隐藏不是目的,理解为什么某种隐藏会失效才是。驱动里常见的隐藏手段,从早期的链表摘除到后来的各种回调处理,每一代都对应着一次检测手段的升级。学这门课的意义不在于背下一套隐藏代码,而在于搞清楚每个操作在内核里动了哪个数据结构、这个结构还有谁在引用、哪些路径能交叉验证到它。
如果你只想要一段能过检测的代码,这类内容基本没有长期价值,因为检测方一直在跟进。但如果你想知道「我动了这个字段之后,系统里还有哪些地方会露馅」,那么这部分内容会直接改变你写代码时的思考顺序:先想检测面,再想实现方式。
手写代码从零开始意味着什么
课程全程在 VS2013 里手写,不依赖现成框架,代码兼容 XP 到 Windows 7,32 位和 64 位都覆盖。这个设定在今天看有点老,但对内核安全方向反而有实际用处:不同版本之间内核结构和行为是有差异的,把同一份逻辑在多个版本上跑通,比在单一大版本上跑通更能暴露你对机制理解的漏洞。比如同一种对象引用方式在 32 位和 64 位下的指针对齐、结构大小差异,不亲手踩一次很难记住。
另外,不用现成框架意味着你要自己处理工程配置、签名绕过(实验环境)、加载方式这些边缘问题,这些在真实工作中反而占时间。
Windbg 的高级用法放在这里的作用
调试器用法单独拎出来讲,是因为内核安全方向的调试和普通驱动调试目标不同。普通驱动调试是「我为什么蓝屏」,内核安全调试更多是「我改了之后系统里还有什么地方能看出来」。前者看调用栈和崩溃地址就够了,后者需要你会查没导出的结构、会手动解析对象、会在不触发断点的情况下观察状态。课程里这部分内容偏实战,和前面进程、文件、注册表的主线是配合使用的,不是独立的工具教学。
看完应该能回答的问题
用几个具体问题自检,比看目录更能判断这门课是否对得上你的缺口:
- 一次文件打开操作在内核里会经过哪些可被介入的节点,各自适合做什么、不适合做什么?
- 进程相关的内核结构在 32 位和 64 位下的差异具体体现在哪几个字段上?
- 注册表回调之外,还有哪些路径能观察到注册表操作?
- 你写的隐藏逻辑,会被哪几种常规检测方式交叉验证出来?
- Windbg 里不依赖符号的情况下,怎么定位一个未导出结构的实例?
如果这些问题里有一半你现在答不上来,这门课的进阶定位就是合适的;如果大部分都能答,那你要找的可能是更专的方向,而不是一门覆盖面较宽的体系课。
windows驱动开发进阶篇-内核安全视频课程
课程详情
课程标题
Windows驱动开发进阶篇-内核安全视频课程
适合人群
- windows内核安全感兴趣的人
- 有志从事内核安全的技术人员
学习收获
- 深刻理解Windows操作系统机制
- 学习内核安全驱动开发方法
- 掌握windbg的一些高级用法
课程简介
本课题是驱动开发中的进阶部分,基于前期基础进行深化,旨在提高驱动安全水平。课程中提供了新颖的安全方式,包括独特的隐藏技巧。所有驱动开发内容均以手写代码从0开始,涉及进程、文件、注册表等方面。
课程采用VS2013集成开发环境全程演示编写,代码兼容XP、Windows 7等操作系统,同时支持32位和64位。这提高了代码的可用性,并增强了对不同操作系统的理解,有助于认清操作系统间的差异。此外,课程还提供了windbg的一些高级用法,增加了实用性,并更加重视实战。
课程目录
01 第一课 驱动开发进阶篇介绍.mp4 02 第二课 常用工具介绍.mp4 03 第三课 实现驱动实现最早启动.mp4 04 第四课 程序安装实现驱动最早启动.mp4 05 第五课 将驱动打包到exe安装包里实现.mp4 06 第六课 驱动程序重新初始化(共2种).mp4 07 第七课 注册关机通知方.mp4 08 第八课 方法2注册关机通知.mp4 09 第九课 驱动层内存操作修改控制寄存器.mp4 10 第十课 windows系统里一块特殊的内存.mp4 11 第十一课_驱动层文件操作文件复制.mp4 12 第十二课 驱动层删除文件操作.mp4 13 第十三课 驱动层文件重命名操作.mp4 14 第十四课 驱动遍历文件夹.mp4 15 第十五课 枚举进程操作.mp4 16 第十六课 暂停进程恢复进程.mp4 17 第十七课 结束进程.mp4 18 第十八课 枚举线程.mp4 19 第十九课 线程的终止操作.mp4 20 第二十课 驱动卸载时对系统线程的处理.mp4 21 第二十一课 枚举进程模块.mp4 22 第二十二课 枚举驱动1.mp4 23 第二十三课 枚举驱动2.mp4 24 第二十四课 驱动程序的深度隐藏(过ark工具).mp4 25 第二十五课 ssdt与sssdt.mp4 26 第二十六课 64位下ssdt函数的枚举.mp4 27 第二十七课 ssdthook实现进程保护.mp4 28 第二十八课 64位下ssdthook.mp4 29 第二十九课 内联钩子的原理.mp4 30 第三十课 实战64位inlinehookunhook.mp4 31 第三十一课 进程监控与线程监控.mp4 32 第三十二课 进程监控与线程监控2.mp4 33 第三十三课 进程监控与线程监控3.mp4 34 第三十四课 监控模块加载.mp4 35 第三十五课 拦截指定的驱动.mp4 36 第三十六课 注册表回调与注册表保护.mp4 37 第三十七课 注册表超强保护.mp4 38 第三十八课 进程与线程保护.mp4 39 第三十九课 实现进程保护.mp4 40 第四十课 线程保护.mp4 41 第四十一课 时间变更回调.mp4 42 第四十二课 驱动代码里内联汇编.mp4 43 第四十三课 驱动读写进程.mp4 44 第四十四课 进程隐藏(防蓝屏版).mp4 45 模块加载32位补充拦截指定驱动.mp4 46 第四十六课 驱动锁定浏览器主页.mp4





