如果你已经写过驱动、用过 WinDbg 看过栈,但遇到「窗口被保护后钩子失效」「APC 在什么时机插入才不蓝屏」「DPC 和定时器到底谁在什么 IRQL 跑」这类问题时只能靠试,那阶段 5 值得花时间。它不补基础语法,补的是内核里几个最容易「会用不会讲」的机制。

先确认自己缺的是哪一块

这门课的主题分布比较集中,大致落在窗口与 Hook、APC、保护模式、DPC 与定时器、同步、句柄表、进程线程这几条线上。你可以拿下面几个问题自测,答不上来的部分就是该重点看的部分:

  • ETHWHOOK 的原理是什么,它和常规的窗口 Hook 在拦截位置上差在哪?窗口保护做完之后,为什么原来的取 API 方式会拿不到东西?
  • APC 有哪几种插入方式,内核 APC 和用户 APC 的投递条件分别是什么?挂靠(Attach)之后当前线程的环境发生了哪些变化?
  • x86 的保护模式里,段选择子、GDT、页表这几层是怎么串起来的?为什么换页目录会影响整个地址空间?
  • DPC 和定时器分别在什么 IRQL 上执行,能不能等对象、能不能访问分页内存?
  • 句柄表在内核里是怎么组织的,多级表的意义是什么?进程线程对象在创建和退出时,哪些资源是按什么顺序释放的?

这些问题不是知识点罗列,而是实际调试时会被卡住的地方。课程把它们放在一起讲,好处是窗口、APC、同步之间能互相对照,而不是各学各的。

内容组织的取向:偏机制而非 API 手册

从窗口这一块的安排能看出思路:先讲原理,再做准备工作,然后是 HOOK API 的获取,最后落到窗口保护的完整实现。这条线不是教你调某个函数,而是让你理解拦截点选在哪里、为什么这个位置可行。APC 部分同样配套了文档,说明这一块光看代码不够,得回头对概念。挂靠单独成节也合理,因为线程环境切换是后面很多问题的前提。

需要提醒的是,阶段 5 默认你已经能独立编译、加载、调试驱动,也看得懂反汇编里常见的调用约定。如果保护模式、IRQL 这些概念还是模糊的,看窗口和同步部分会比较吃力,建议先把前几阶段或对应基础补上,别硬啃。

怎么看效率更高

  • 窗口与 Hook 部分,跟着做完一遍之后,把拦截点换一个位置自己再实现一次,对比差异。
  • APC 部分,在插入时机上做实验:换不同 IRQL、不同线程状态,观察行为变化,比单纯记结论有用。
  • DPC 与定时器,重点确认执行环境,把「能不能等」这件事用代码验证一遍。
  • 句柄表和进程线程,建议配合 WinDbg 的 !handle、!process 一类命令对照观察结构,别只看文字描述。
  • 同步部分,把死锁和 IRQL 违规各制造一次,再看崩溃现场,印象会深很多。

看完应该能回答的问题

如果这一阶段真的吃透了,下面这些应该不用翻笔记就能说清楚:ETHWHOOK 的原理和适用场景;窗口保护之后原有取 API 路径为什么失效、替代路径是什么;APC 的插入时机与投递条件;挂靠对当前线程地址空间和访问权限的影响;DPC、定时器各自运行在什么 IRQL、有哪些禁忌操作;句柄表的结构以及进程线程退出时的资源回收顺序。答不上来的那一条,就是需要回去重看的地方。

这门课不适合当作查漏的速查手册,它更接近一本需要动手跟做的机制笔记。看的时候把调试器开着,遇到结论就去验证一次,收获会比单纯看完大得多。

火哥的Windows内核阶段5

深入理解Windows内核机制

编辑点评

系统深入,循序渐进,适合有一定基础的Windows内核开发者。

⭐ 编辑推荐

本课程由资深内核专家火哥主讲,系统讲解Windows内核阶段5知识,涵盖窗口、APC、保护模式、DPC与定时器、同步、句柄表、进程线程等多个方面。

课程亮点

• 系统深入讲解Windows内核机制
• 循序渐进,适合进阶学习
• 丰富实践案例,提升实战能力

课程目录

📁 火哥内核上
📁     📁 12.窗口
        12.窗口文档.png  [493.5 KB]
        4.窗口保护完成_ev.mp4  [1.2 GB]
        3.窗口保护HOOKAPI获取_ev.mp4  [1.2 GB]
        2.ETWHOOK窗口保护准备前奏_ev.mp4  [1.2 GB]
        1.ETWHOOK原理_ev.mp4  [1023.1 MB]
📁     📁 7.APC
        7.APC文档.zip  [1.8 MB]
        5.挂靠_ev.mp4  [2.1 GB]
        2.APC插入_ev.mp4  [1.6 GB]
        3.内核APC执行过程_ev.mp4  [1.5 GB]
        1.APC初始化,R3APC注入2_ev.mp4  [1.3 GB]
        1 APC初始化,R3APC注入1_ev.mp4  [55.9 MB]
        4.APC用户执行_ev.mp4  [1.6 GB]
📁     📁 2.保护模式
        2.保护模式必看.zip  [1.8 MB]
        6.中断门_ev.mp4  [533.1 MB]
        5.调用门_ev.mp4  [588.1 MB]
        11.幽灵地址_ev.mp4  [1.2 GB]
        8.任务段_ev.mp4  [923.6 MB]
        17.TLB_ev.mp4  [331.7 MB]
        3.DB_G_ev.mp4  [630.2 MB]
        7.陷阱门与劫持int3作业_ev.mp4  [614.2 MB]
        4.权限检测_ev.mp4  [622.5 MB]
        18.控制寄存器_ev.mp4  [344.7 MB]
        15.29912杂项_ev.mp4  [590.8 MB]
        9.任务门_ev.mp4  [349.3 MB]
        14.29912_ev.mp4  [570.2 MB]
        13.页基址_ev.mp4  [918.9 MB]
        2.段的初探_ev.mp4  [632.2 MB]
        10.101012分页前戏_ev.mp4  [612.0 MB]
        12.页属性_ev.mp4  [738.9 MB]
        16.缓存_ev.mp4  [422.3 MB]
        1.CPU科普_ev.mp4  [567.9 MB]
📁     📁 10.DPC与定时器
        10.DPC与定时器文档.zip  [1.8 MB]
        1.DPC与定时器_ev.mp4  [850.4 MB]
📁     📁 11.同步
        11.同步资料.png  [493.5 KB]
        1.原子指令锁_ev.mp4  [930.2 MB]
        4.事件信号处理_ev.mp4  [577.6 MB]
        3.KeWaitForSingleObject分析_ev.mp4  [852.4 MB]
        2.等待块结构_ev.mp4  [762.2 MB]
        5.信号量与互斥体_ev.mp4  [898.8 MB]
        6.互斥体_ev.mp4  [904.2 MB]
📁     📁 6.句柄表
        6.句柄表资料.zip  [1.8 MB]
        2.保护进程_绝杀.mp4  [4.4 GB]
        3.私有句柄表.mp4  [3.2 GB]
        1.全局句柄表.mp4  [5.9 GB]
        4.句柄防止降权.mp4  [7.6 GB]
        4.句柄防止降权_ev.mp4  [3.0 GB]
📁     📁 5.进程线程
        5.进程线程必看.zip  [1.8 MB]
        3.线程结构01_ev.mp4  [1.7 GB]
        6.被动切换_ev.mp4  [779.8 MB]
        2.进程_ev.mp4  [2.1 GB]
        1.KPCR_进程概念_ev.mp4  [1.2 GB]
        5.线程主动切换_ev.mp4  [930.5 MB]
        4.线程查找_ev.mp4  [782.3 MB]
📁     📁 8.项目
        1.获取模块.mp4  [3.8 GB]
        3.win10通讯与R3封装.mp4  [3.4 GB]
        5.读内存姿势.mp4  [3.5 GB]
        11.远程CALL完成 游戏测试.mp4  [5.1 GB]
        14.易语言模块封装.mp4  [4.1 GB]
        13.自动化加壳签名.mp4  [2.8 GB]
        12.隐藏驱动.mp4  [3.5 GB]
        7.写内存.mp4  [2.7 GB]
        2.通讯.mp4  [4.4 GB]
        4.驱动安装.mp4  [2.9 GB]
        09.让ntoskrnl保护我们的进程.mp4  [1.4 GB]
        10.远程call.mp4  [2.1 GB]
📁     📁 9.回调
        1.进程线程模块回调_ev.mp4  [585.0 MB]
📁     📁 4.系统调用
        2.系统调用进内核_ev.mp4  [1.2 GB]
        3.系统调用返回R3_ev.mp4  [728.5 MB]
        第四章4.SSDThook_ev.mp4  [987.8 MB]
        1.系统调用1_ev.mp4  [474.9 MB]
📁     📁 3.驱动开发
        3.链表_ev.mp4  [1005.8 MB]
        08.驱动内存加载1_ev.mp4  [1.3 GB]
        10.云编译_ev  播放不了.txt
        1.驱动helloworld_ev.mp4  [652.4 MB]
        09.内存加载2_ev.mp4  [2.9 GB]
        05.蓝屏分析_ev.mp4  [1.5 GB]
        10.云编译_Compress.mp4  [550.4 MB]
        06.驱动通信1_ev.mp4  [2.3 GB]
        2.驱动基础1_Compress.mp4  [110.1 MB]
        07.通信封装_ev.mp4  [1.3 GB]
        4.驱动断链_ev.mp4  [1.4 GB]
📁     📁 1.环境配置
        1.环境配置_ev.mp4  [895.6 MB]
    火哥内核上文档.png  [493.5 KB]
📁 火哥内核下
📁     📁 5.调试
        5.调试文档.png  [493.5 KB]
        x5_06.单步与硬件_Compress.mp4  [189.2 MB]
        x5_01.调试体系_Compress.mp4  [178.4 MB]
        x5_02.假消息发送_Compress.mp4  [279.5 MB]
        x5_03.调试等待事件_Compress.mp4  [215.4 MB]
        x5_07.内存断点_Compress.mp4  [53.0 MB]
        x5_05.INT断点原理_Compress.mp4  [208.5 MB]
        x5_04.调试事件返回_Compress.mp4  [166.7 MB]
📁     📁 6.进程伪装
        6.进程伪装说明.zip  [1.8 MB]
        x6_04.伪装完成_Compress.mp4  [346.7 MB]
        x6_03.修改PEB64_Compress.mp4  [284.5 MB]
        x6_02.伪装文件对象_Compress.mp4  [325.3 MB]
        x6_01.伪装进程1_Compress.mp4  [187.5 MB]
📁     📁 8.VT
        8.VT说明.png  [493.5 KB]
        11.事件注入_ev.mp4  [960.4 MB]
        08.SSDT_SHADOW失败_ev.mp4  [2.3 GB]
        05.VT框架完成_ev.mp4  [814.7 MB]
        02.VT检测_ev.mp4  [572.9 MB]
        07.VT退出_msr拦截的前戏_ev.mp4  [857.5 MB]
        10.异常拦截_ev.mp4  [1.1 GB]
        01.VT概述_ev.mp4  [410.0 MB]
        03.初始化VMON区_ev.mp4  [495.8 MB]
        04.VMX_HOST_GUEST区填充_ev.mp4  [1.7 GB]
        09.让我们的VT支持WIN10_ev.mp4  [1.6 GB]
        06.Cpuid拦截,框架完成_ev.mp4  [2.5 GB]
📁     📁 3.X64
        3.X64资料.zip  [1.8 MB]
        05.x64分页_ev.mp4  [885.0 MB]
        09.系统调用1_ev.mp4  [588.0 MB]
        03.X64段简介_ev.mp4  [410.3 MB]
        12.进程回调_ev.mp4  [1.3 GB]
        06.隐藏可执行内存_ev.mp4  [959.4 MB]
        11.内核系统调用_ev.mp4  [850.8 MB]
        13.突破WIN10映射物理页_ev.mp4  [604.4 MB]
        01.X64入门_ev.mp4  [474.4 MB]
        02.x64汇编细节_ev.mp4  [777.7 MB]
        07.注入第一天_ev.mp4  [1.1 GB]
        10.R3SSDT表_ev.mp4  [582.0 MB]
        04.调用门_ev.mp4  [913.8 MB]
        08.隐藏注入线程_ev.mp4  [566.4 MB]
📁     📁 4.X64异常
        4.X64异常文档.png  [493.5 KB]
        x4_14.SEH异常修复_Compress.mp4  [241.6 MB]
        x4_07.VEHBUG修复讲解_Compress.mp4  [26.1 MB]
        x4_11.SEH全局展开_Compress.mp4  [155.7 MB]
        x4_12.最后一道防线_Compress.mp4  [151.4 MB]
        x4_04.32位异常派发流程_Compress.mp4  [169.6 MB]
        x4_06.VEH无痕HOOK_Compress.mp4  [271.1 MB]
        x4_13.x64SEH_Compress.mp4  [171.3 MB]
        x4_02.模拟异常流程_Compress.mp4  [89.7 MB]
        x4_03.异常派发_Compress.mp4  [177.9 MB]
        x4_10.SEH局部展开_Compress.mp4  [108.2 MB]
        x4_01.CPU异常简介_Compress.mp4  [111.9 MB]
        x4_09.SEH编译器扩展_Compress.mp4  [91.3 MB]
        x4_08.SEH异常_Compress.mp4  [140.4 MB]
        x4_05.VEH逆向分析_Compress.mp4  [202.9 MB]
📁     📁 1.开幕
        1.开幕资料.zip  [1.8 MB]
        1.开讲第一天(座谈大会)_ev.mp4  [651.0 MB]
📁     📁 7.调试自建
        3.修复BUG_ETWHOOK调试API.mp4  [4.0 GB]
        5.首次断点绕过PEB检测.mp4  [3.4 GB]
        2.调试代码修复,未完成.mp4  [2.2 GB]
        4.读写函数完成.mp4  [3.9 GB]
        1.调试自建的介绍.mp4  [458.9 MB]
📁     📁 2.内存
        1.VAD私有内存_ev.mp4  [572.0 MB]
        2.映射内存锁页_ev.mp4  [1.2 GB]
        4.修改页属性_ev.mp4  [676.9 MB]
        3.页帧数据库-6大链表_ev.mp4  [749.2 MB]
    火哥内核下资料.zip  [1.8 MB]
📁 VT-全
    16.VTEPT_HOOK2.mp4  [250.6 MB]
    12.EPT概念阐述.mp4  [123.1 MB]
    14.EPT处理.mp4  [241.2 MB]
    08.SSDT_SHADOW失败_ev.mp4  [2.3 GB]
    04.VMX_HOST_GUEST区填充.mp4  [346.8 MB]
    02.VT检测_ev.mp4  [572.9 MB]
    05.VT框架完成_ev.mp4  [814.7 MB]
    18.VT过VMP虚拟化.mp4  [323.4 MB]
    13.VTEPT构建页表.mp4  [180.8 MB]
    06.Cpuid拦截,框架完成_ev.mp4  [2.5 GB]
    03.初始化VMON区.mp4  [118.1 MB]
    09.让我们的VT支持WIN10_ev.mp4  [1.6 GB]
    07.VT退出_msr拦截的前戏_ev.mp4  [857.5 MB]
    15.EPTHOOK.mp4  [320.3 MB]
    17.EPT_HOOK03.mp4  [592.3 MB]
    01.VT概述.mp4  [104.8 MB]
    11.事件注入_ev.mp4  [960.4 MB]
    10.异常拦截_ev.mp4  [1.1 GB]

适合人群

  • Windows内核开发者
  • 系统架构师
  • 对内核技术感兴趣的开发者

学习收获

掌握Windows内核高级特性
提升内核开发能力
深入理解系统架构

祝您学习愉快!

学有所成,前程似锦!