
书: https://pan.baidu.com/s/1XqKbodMZYD_Bu2f_E1ghxw?pwd=y5p9
笔记如下:
- “Windows内核是‘混合内核’架构,兼具微内核的模块化和宏内核的性能。”
- “NT内核的核心组件:执行体(Executive)、内核(Kernel)、硬件抽象层(HAL)、设备驱动。”
- “驱动开发环境(WDK)必备:
Visual Studio
+Windows Driver Kit
,调试需WinDbg
双机联调。” - “驱动程序类型:
WDM
(传统)、KMDF
(内核模式驱动框架)、UMDF
(用户模式驱动框架)。” DriverEntry
是驱动入口点,Unload
例程处理卸载逻辑,IRP
(I/O请求包)是通信核心。”- “设备对象栈(Device Stack):
IoCreateDevice
创建设备,IoAttachDeviceToDeviceStack
挂载过滤驱动。” - “内存管理:内核态分页池(
ExAllocatePoolWithTag
)与非分页池,ProbeForRead/Write
验证用户缓冲区。” - “同步机制:自旋锁(
KeAcquireSpinLock
)用于高速场景,互斥体(KeWaitForMutexObject
)避免忙等待。” - “IRP处理流程:
IoCallDriver
派发请求,IoCompleteRequest
完成处理,IoSetCompletionRoutine
设置回调。” - “
DKOM
(直接内核对象修改)攻击原理:篡改EPROCESS
链表隐藏进程,需CR0
写保护位关闭。” - “回调机制:
PsSetCreateProcessNotifyRoutine
监控进程创建,CmRegisterCallback
拦截注册表操作。” - “
MiniFilter
文件过滤驱动框架:FltRegisterFilter
注册,FltCreateFile
安全操作文件。” - “
APC
(异步过程调用)和DPC
(延迟过程调用)实现异步内核任务,优先级高于线程调度。” - “
ETW
(事件跟踪Windows)内核日志:EtwRegister
提供者,EtwWrite
记录事件,WPP
扩展跟踪。” - “
PatchGuard
保护内核代码完整性,绕过需硬件虚拟化(如Hyper-V)或未公开漏洞。” - “
WDF
(Windows驱动框架)抽象硬件交互,Wdm.h
和Ntddk.h
是底层API头文件。” - “安全开发原则:验证所有用户输入(
__try/__except
),避免BSOD
(蓝屏死机)。” - “
VSM
(虚拟安全模式)隔离敏感操作,Secure Kernel
保护凭证和加密密钥。” - “调试技巧:
!process
查看进程,!thread
分析线程,!irp
追踪I/O请求。” - “内核编程铁律:‘永远假设代码运行在最高权限,任何错误都会导致系统崩溃’。”