从驱动框架到内核防线:填补你的底层安全盲区

在 Windows 应用层开发已经相对成熟的今天,真正的技术深水区在于内核态。这门课直面一个普遍的能力缺口:很多学习者停留在调用 API 的层面,却对驱动加载、设备对象创建以及内核级防护机制缺乏直观认知。课程从环境部署这一最易卡壳的环节切入,系统梳理了从 VC6.0 到 VS2019 的多版本编译环境配置,以及 DDK 安装要点。这不仅仅是工具使用教学,更是为了让你理解不同时代驱动开发规范的演变逻辑,解决“代码写得出,但跑不起来”的基础痛点。门槛方面,建议具备 C 语言指针及内存管理的扎实基础,否则后续的内核对象模型学习会十分吃力。

核心技能链:掌握驱动全生命周期与内核机制

课程主体围绕基础驱动开发展展,重点构建三个维度的知识闭环。首先是驱动的生命周期管理,包括 Hello World 程序的编写、内核常用 API 的调用规范,以及驱动卸载时的资源清理,确保你具备编写稳定驱动代码的基本素养。其次是内核对象模型的理解,特别是设备对象的创建与管理,这是后续进行文件过滤、网络监控等高级开发的基石。最后是 C 与 C++ 在内核驱动中的混用区别,帮助你在实际工程中规避常见的链接错误和运行时异常。建议学习顺序为:先完成环境部署章节,建立可调试的开发环境;接着跟进基础驱动开发中的框架与卸载部分;最后深入设备创建与 API 细节。学完后,你将能够独立搭建驱动开发环境,编写并调试基础的字符设备驱动,并清晰解释内核态与用户态交互的基本原理,能够回答“为什么驱动必须手动签名”等核心问题。

实战配合:理论验证与故障排查训练

本课程的学习效果高度依赖动手实践。资料包中包含了针对不同编译环境的详细配置教程及示例代码,建议在学习每个章节时同步复现环境搭建过程,并对照视频讲解修改代码参数,观察驱动加载与卸载的行为差异。由于内核调试涉及蓝屏风险,必须在虚拟机环境中完成所有练习,利用 WinDbg 等工具逐步分析驱动运行状态。通过这种“配置-编码-调试-排错”的闭环训练,你可以将抽象的内核概念转化为具体的工程能力。学完本阶段内容,你应能独立完成一个具备完整生命周期的基础驱动模块,并能针对常见的驱动加载失败问题进行初步排查,为后续深入研究内核安全或逆向工程打下坚实基础。

课程介绍

内核.png 2024-3-25 19:08 上传 ├─1:驱动开发环境部署 │ 1.1.VS2019驱动开发环境.mp4 │ 1.10再谈VC环境配置.mp4 │ 1.2安装VC++6.0.mp4 │ 1.3安装VS2003-VC++7.0.mp4 │ 1.4安装VS2008-VC++9.0.mp4 │ 1.5安装VC助手.mp4 │ 1.6安装DDK.mp4 │ 1.7VC6环境下编译驱动.mp4 │ 1.8VS2003环境编译驱动.mp4 │ 1.9VS2008环境编译驱动.mp4 ├─2:基础驱动开发 │ 2.10驱动代码中C和C++代码区别.mp4 │ 2.1HelloWorld简单的驱动.mp4 │ 2.2驱动的卸载.mp4 │ 2.3内核常用API.mp4 │ 2.4驱动内核基础框架.mp4 │ 2.5内核驱动创建设备.mp4 │ 2

课程目录

内核.png   2024-3-25 19:08 上传 ├─1:驱动开发环境部署 │ 1.1.VS2019驱动开发环境.mp4 │ 1.10再谈VC环境配置.mp4 │ 1.2安装VC++6.0.mp4 │ 1.3安装VS2003-VC++7.0.mp4 │ 1.4安装VS2008-VC++9.0.mp4 │ 1.5安装VC助手.mp4 │ 1.6安装DDK.mp4 │ 1.7VC6环境下编译驱动.mp4 │ 1.8VS2003环境编译驱动.mp4 │ 1.9VS2008环境编译驱动.mp4 ├─2:基础驱动开发 │ 2.10驱动代码中C和C++代码区别.mp4 │ 2.1HelloWorld简单的驱动.mp4 │ 2.2驱动的卸载.mp4 │ 2.3内核常用API.mp4 │ 2.4驱动内核基础框架.mp4 │ 2.5内核驱动创建设备.mp4 │ 2.6基础驱动开发_Winobj查看设备对象.mp4 │ 2.7EasySYS快速创建驱动框架.mp4 │ 2.8NT式驱动的安装.mp4 │ 2.9NT式驱动的卸载.mp4 │ ├─3:内核开发基础 │ 3.10驱动下的异常处理.mp4 │ 3.1键盘过滤框架(找到所有键盘设备).mp4 │ 3.2在驱动中使用链表.mp4 │ 3.3Lookaside结构.mp4 │ 3.4运行时函数.mp4 │ 3.5内存管理--(其他).mp4 │ 3.6内核模式下的字符串操作.mp4 │ 3.7内核模式下的文件操作.mp4 │ 3.8驱动操作注册表--(创建).mp4 │ 3.9驱动对注册表的其他操作.mp4 │ ├─4:与内核交互 │ 4.10实战EXE和SYS通信-(其它模式).mp4 │ 4.1派遣函数的简单处理.mp4 │ 4.2应用程序打开驱动.mp4 │ 4.3编写更通用的派遣函数.mp4 │ 4.4跟踪IRP的利器IRPTrace.mp4 │ 4.5缓冲区的操作与读写.mp4 │ 4.6缓冲区设置模拟文件读写.mp4 │ 4.7Sys与Exe文件的通讯A.mp4 │ 4.8实战EXE和SYS通信(缓冲模式).mp4 │ 4.9实战EXE和SYS通信(直接).mp4 │ ├─5:内核同步 │ 5.1驱动程序的同步问题--(知识介绍).mp4 │ 5.2提升IRQ与自旋锁.mp4 │ 5.3用户模式的事件与信号灯.mp4 │ 5.4用户模式的互斥体与线程等待.mp4 │ 5.5内核下的事件对象与应用程序的交互.mp4 │ 5.6内核下的互斥体.mp4 │ 5.7IRP的同步与异步操作原理.mp4 │ ├─6:ByPass基础 │ 6.10添加默认派遣例程.mp4 │ 6.1R3对抗R0过保护.mp4 │ 6.2R3对抗R0钩子部分.mp4 │ 6.3R3对抗R0链接库部分.mp4 │ 6.4R3对抗R0派遣部分.mp4 │ 6.5驱动保护原理+实战.mp4 │ 6.6为DDK_HelloWorld添加设备例程.mp4 │ 6.7VM+windbg安装.mp4 │ 6.8VM+Wlndbg调试驱动.mp4 │ 6.9DDK_HelloWorld卸载例程细化.mp4 │ ├─7:ByPass入门 │ 7.10过DXF保护的原理.mp4 │ 7.1需要具备的理论知识.mp4 │ 7.2读出SSDT表当前函数地址1.mp4 │ 7.3读出SSDT表当前函数地址2.mp4 │ 7.4JMP地址转换公式推导.mp4 │ 7.5绕过驱动保护1.mp4 │ 7.6绕过驱动保护2.mp4 │ 7.7如何编程HOOK_SSDT.mp4 │ 7.8再谈HOOK_SSDT.mp4 │ 7.9DXF恢复inline_HOOK原理.mp4 │ ├─8:ByPass循序渐进 │ 8.10绕过所有用户层HOOK.mp4 │ 8.1编程实现过TesSafe保护(有待修改).mp4 │ 8.2实现过TX_inline_hook.mp4 │ 8.3如何获得Shadow_SSDT表(后面详细讲解).mp4 │ 8.4写文件和读文件(选学).mp4 │ 8.5应用层勾子IAT_HOOK.mp4 │ 8.6PE结构实现_IAT_HOOK.mp4 │ 8.7应用层勾子InLine_HOOK.mp4 │ 8.8勾住Shadow_SSDT.mp4 │ 8.9真正勾住Shadow_SSDT.mp4 │ ├─9:ByPass深入浅出 │ 9.1IDT中断描述符表.mp4 │ 9.2过DXF保护实例分析.mp4 │ 9.3DXF驱动保护思路代码.mp4 │ 9.4真正过TP让CE可以附扫描.mp4 │ 9.5过龙之谷GPK游戏保护.mp4 │ 9.6过梦幻西游NECHECK保护.mp4 │ 9.7过DebugProt.mp4 │ 9.8白名单与校验的对抗.mp4 │ ├─10:ByPass过CRC │ 10.1Pass冒险岛CRC1.mp4 │ 10.2Pass冒险岛CRC2.mp4 │ 10.3Pass冒险岛CRC3.mp4 │ ├─11:内核的安全防护入门 │ 11.10钩子艺术HookSSDT.mp4 │ 11.3配置RootKit通讯端口.mp4 │ 11.4操纵数据流文件.mp4 │ 11.5读隐藏数据流文件.mp4 │ 11.6RootKit使用流文件.mp4 │ 11.7安装和卸载RootKit.mp4 │ 11.8原子级交换挂钩原理.mp4 │ 11.9原子级交换SSDT函数.mp4 │ ├─12:内核的安全防护进阶 │ 12.10释放映射空间.mp4 │ 12.1内核函数前缀的意义.mp4 │ 12.2内核下文件名比较.mp4 │ 12.3挂钩内核函数过滤映射DLL名称.mp4 │ 12.4增加内核数据类型.mp4 │ 12.5未公开函数的显示调用.mp4 │ 12.6内核态DLL特征码匹配.mp4 │ 12.7通过PE格式获得PE信息.mp4 │ 12.8PE格式牵扯的结构定义.mp4 │ 12.9MDL大缓存分片映射.mp4 │ ├─13:内核的安全防护提升 │ 13.10修正Detour有效地址.mp4 │ 13.1快速匹配特征码.mp4 │ 13.2PE结构的使用.mp4 │ 13.3导出表匹配函数名.mp4 │ 13.4字符串匹配.mp4 │ 13.5特征码定位挂钩地址.mp4 │ 13.6注入信息初始化.mp4 │ 13.7检测函数字节.mp4 │ 13.8纪录被重写的指令.mp4 │ 13.9构建Detour有效地址.mp4 │ ├─14:内核的安全防护高级1 │ 14.10过滤IRP请求.mp4 │ 14.1运行时地址修正并挂钩.mp4 │ 14.2遍历IDT表信息.mp4 │ 14.3IDT挂钩模板.mp4 │ 14.4IDT挂钩模板地址修正.mp4 │ 14.5HOOK所有IDT.mp4 │ 14.6IRP钩子的概念.mp4 │ 14.7全局IRPHOOK(上).mp4 │ 14.8全局IRPHOOK(下).mp4 │ 14.9HOOK请求报文IRP.mp4 │ ├─15:内核的安全防护高级2 │ 15.1过滤IRP栈.mp4 │ 15.2隐匿端口.mp4 │ 15.3Sysenter简单Hook.mp4 │ 15.4绕过rootkit检测工具的检测.mp4 │ 15.5分层驱动键盘嗅探.mp4 │ 15.6IRP分层直通传递.mp4 │ 15.7键盘嗅探回调完成函数.mp4 │ 15.8直接修改内核对象隐藏进程驱动部分.mp4 │ ├─16:VT虚拟化基础入门(WIN7)-1 │ 16.10VT64虚拟化EPT的4级分页结构与缓存策略.mp4 │ 16.1VT虚拟化技术的概念概述.mp4 │ 16.2VT虚拟化原理与VS+WDK开发环境搭建.mp4 │ 16.3VT64位虚拟化初始化编程C与ASM联合编译.mp4 │ 16.4VT64位虚拟化检查CPU能力并侵染.mp4 │ 16.5VT64位虚拟化浸染CPU.mp4 │ 16.6VT64位虚拟化初始化VMXON与初始化VMCS.mp4 │ 16.7VT64位虚拟化初始化VMCS.mp4 │ 16.8宿主机区域寄存器状态.mp4 │ 16.9Intel-64-32架构手册参考与解释.mp4 │ ├─17:VT虚拟化基础入门(WIN7)-2 │ 17.10GDT与LDT特权级代码转移(门调用).mp4 │ 17.1VT64虚拟化线性地址到物理地址的完整转换.mp4 │ 17.2HandleVmExit回调函数退出原因.mp4 │ 17.3Bochs源码编译启动VT支持.mp4 │ 17.4VT64虚拟化关键词介绍与运行VT内核驱动.mp4 │ 17.5HandleException接管Int3断点.mp4 │ 17.6StartVirtualTechnology.mp4 │ 17.7利用VS2013实现ASM文件与C文件混合编译.mp4 │ 17.8设定SysEnter_Eip回调函数.mp4 │ 17.9DR7与DR6寄存器的拦截与修复.mp4 │ ├─18:VT虚拟化基础入门(WIN7)-3 │ 18.10实现无Hook修改进程EIP绕过所有CRC检测.mp4 │ 18.1VT32虚拟化IDT重定向拦截INT1中断.mp4 │ 18.2IDT拦截修改调试信息原理.mp4 │ 18.3MemorySpecifyCache函数.mp4 │ 18.4BulePill中Bug的排除.mp4 │ 18.5VT虚拟化基于硬件虚拟化技术的内存保护研究.mp4 │ 18.6VT虚拟化反反调试与IDT结构详解.mp4 │ 18.7关闭PAE用Windbg修改物理内存.mp4 │ 18.8开启PAE用Windbg修改物理内存.mp4 │ 18.9HookPage实现无限硬件断点.mp4 │ ├─19:VT虚拟化基础入门(WIN7)-4 │ 19.1过某游戏保护相关信息与遍历系统驱动模块.mp4 │ 19.2某游戏保护3个NotifyRoutine.mp4 │ 19.3游戏保护ObCallBack的利用与遍历.mp4 │ 19.4ValidAccessMask利用与对抗.mp4 │ 19.5调试器基础框架(过64位游戏保护).mp4 │ 19.6HiJackSSDT之前的准备工作.mp4 │ 19.7VT监控劫持MSR所有系统底层调用.mp4 │ │ ├─20:VT内核虚拟化基础入门(WIN10)-1 │ 20.10初始化Guest状态填充VMCS区域.mp4 │ 20.1内核VT虚拟化技术简介.mp4 │ 20.2Win10+VS2017+WDK10的安装.mp4 │ 20.3Win10内核双机调试环境搭建.mp4 │ 20.4内核程序开发基础入门.mp4 │ 20.5开启VMware虚拟化与VT基本原理.mp4 │ 20.7检测CPU对VT虚拟化的支持情况.mp4 │ 20.8初始化VMX与VMCS的非分页内存.mp4 │ 20.9内存对齐与VMCS第1阶段的初始化.mp4 │ ├─21:VT内核虚拟化基础入门(WIN10)-2 │ 21.10VMExitHandler原理与实现.mp4 │ 21.1初始化Host状态与EPT的概念.mp4 │ 21.2通过Windbg学习EPT内存扩展表.mp4 │ 21.3构建EPT内存页表.mp4 │ 21.4初始化EPT.mp4 │ 21.5填充EPT的PML4_PDPT_PDT.mp4 │ 21.6安装VMX与VMCS.mp4 │ 21.7调整Msr配置虚拟机运行控制域.mp4 │ 21.8调整VMExit与Entry控制域.mp4 │ 21.9填充Guest与Host寄存器状态.mp4 │ ├─22:VT内核虚拟化基础入门(WIN10)-3 │ 22.1VMExit必须处理的退出条件.mp4 │ 22.2虚拟化测试案例与退出虚拟化.mp4 │ ├─23:VT虚拟化框架KSM(选学) │ 23.1虚拟化框架移植.mp4 │ 23.2VT框架的初始化.mp4 │ 23.3电源与CPU热拔插回调初始化.mp4 │ 23.4移植侵染CPU基础框架.mp4 │ 23.5EPT的初始化.mp4 │ ├─24:EPT无痕Hook(WIN7-WIN10)-1 │ 24.10无痕Hook融合MTF函数.mp4 │ 24.1虚拟化框架的移植与改造.mp4 │ 24.2进程无痕Hook功能的实现.mp4 │ 24.3进程无痕Hook3环流程详解.mp4 │ 24.4进程无痕Hook内核层流程讲解.mp4 │ 24.5启动无痕Hook伪造页面.mp4 │ 24.6内核无痕Hook框架搭建.mp4 │ 24.7内核无痕Hook的初始化.mp4 │ 24.8无痕Hook页面结构体合并.mp4 │ 24.9无痕Hook处理器共享数据结构体合并.mp4 │ ├─25:EPT无痕Hook(WIN7-WIN10)-2 │ 25.1无痕Hook与切换CR3.avi │ 25.2无痕Hook挂钩完成.mp4 │ 25.3无痕Hook+内存隐藏演示.mp4 │ ├─26:调试器通道重建(WIN7-WIN10)-1 │ 26.1全系统重建调试器通道流程.mp4 │ 26.2重建调试通道代码的编译.mp4 │ 26.3调试通道重建详解.mp4 │ 26.4X64Debug调试器插件开发.mp4 │ 26.6处理DbgBreakPoint.mp4 │ 26.7自建shellcode执行第一次断点.mp4 │ 26.8动态修正shellcode执行int3.mp4 │ 26.9C++提取shellcode.mp4 │ ├─27:调试器通道重建(WIN7-WIN10)-2 │ 27.1Hook设置断点与删除断点函数.mp4 │ │ ├─peoject │ DdiMon-master.zip │ FU_Hypervisor-master.zip │ ksm-master.zip │ SimpleSvmHook-master.zip │ SysCall驱动框架.7z │ └─rnm DebugView.zip IDA.zip VA.zip VirtualBox.zip VS2017.zip VS插件.zip WDK.zip x64Dbg.zip 代码融合.zip 参考书籍.zip 参考源码.zip 双机调试.zip 模板视频.zip 系统激活工具.zip 驱动加载工具.zip