这门课讲的是 Windows 内核里的一类机制:系统回调。名字听起来偏底层,但它的落点很具体——当进程被创建、线程启动、驱动或 DLL 被加载、注册表被读写时,系统会在这些时刻主动通知你。课程要解决的,就是怎么接住这些通知,把「系统里正在发生什么」变成可观测、可记录、可判断的东西。
它对应的工作场景
如果你在做游戏安全、反外挂、终端防护或系统监控类的工作,会反复遇到同一个问题:不能靠定时轮询去猜,得在事情发生的那一刻就知道。比如某个进程刚被拉起、某个模块刚被映射进目标进程、某个注册表项被改写,这些动作都有对应的回调点。课程围绕进程、线程、模块加载、注册表四类回调展开,学的不是孤立 API,而是「在哪注册、回调里能拿到什么、哪些事能做哪些事不能做」这套判断。
对做逆向的人来说,价值在另一面:你分析一个保护方案或一个监控工具时,能看出它是挂在哪个回调上、覆盖了哪些行为、哪里是盲区。理解回调机制之后,看这类样本不再是黑盒。
学完能独立做什么
- 说清 Windows 提供了哪几类系统回调,各自在什么时机被触发,回调函数的参数里带着哪些可用信息。
- 写出一个能注册进程/线程回调的驱动模块,在进程创建、线程启动时拿到记录并做基本判断。
- 用模块加载回调观察目标进程里被加载的模块,理解它和用户态枚举模块的差别。
- 用注册表回调拦截或记录关键项的读写,知道回调里返回值不同会导致什么结果。
- 排查注册失败、回调不触发、系统蓝屏这几类常见问题,而不是照抄代码后卡住。
需要说明的是,这门课不教完整的驱动开发入门。它假设你已经能写、能编译、能加载一个最基本的驱动,否则前半程会吃力。
资料适合什么基础
比较合适的起点是:写过 C 语言,了解 Windows 用户态编程(进程、线程、句柄这些概念不陌生),最好动手写过或至少读过简单的内核驱动代码。如果你完全没碰过内核层,建议先把驱动的基本结构、IRP、设备对象这些补一补再进来,否则回调只是背下来,遇到实际问题还是不会用。
纯应用层开发者、只做业务后端或客户端业务逻辑的同学,这门课大概率用不上——它解决的问题不在你的日常工作里。反过来,做安全对抗、外挂分析、EDR/主机监控、沙箱行为采集方向的人,这部分内容是绕不开的基础。
怎么用这份资料
建议按「先理解触发时机,再动手注册,最后做实验对比」的顺序走。每类回调都动手写一遍最小可用的注册代码,然后故意做几个对照实验:注册前后同一操作行为有什么差异、回调里做不同处理会导致什么结果、异常情况下系统怎么反应。这些对照比单纯看讲解更能建立手感。
回调机制涉及内核层,调试和验证比写代码更花时间。虚拟机里做实验,学会看蓝屏代码和调试输出,这部分耐心值得花。学完之后,你手上应该有一套能自己扩展的监控骨架,而不是几段抄完就忘的示例。
课程目录
01 01.进程回调 02 02.线程回调 03 03.模块加载回调 04 04.注册表回调 05 05.时间变更回调 06 06.让回调失效






