name: Windows内核安全 description: Windows内核安全研究指南,包括驱动开发、系统回调、安全特征和内核利用。使用此技能时,当处理Windows驱动、PatchGuard、DSE或内核级安全机制时。
Windows内核安全
概述
该技能涵盖了来自awesome-game-security集合的Windows内核安全主题,包括驱动开发、系统回调、安全特征绕过和内核模式利用。
核心内核概念
重要结构
- EPROCESS / ETHREAD
- PEB / TEB
- DRIVER_OBJECT
- DEVICE_OBJECT
- IRP (I/O请求包)
关键表
- SSDT (系统服务描述符表)
- IDT (中断描述符表)
- GDT (全局描述符表)
- PspCidTable (进程/线程句柄表)
安全特征
PatchGuard (内核补丁保护)
- 保护关键内核结构
- 定期验证检查
- 检测篡改时导致BSOD
- 多种触发机制
驱动程序签名强制 (DSE)
- 需要签名驱动程序
- CI.dll验证
- 测试签名模式
- WHQL认证
超级管理器代码完整性 (HVCI)
- 基于VBS的保护
- 内核代码完整性
- 驱动程序兼容性要求
- 内存限制
安全启动
- 基于UEFI的启动验证
- 启动加载器链验证
- 内核签名检查
- DBX (禁止签名)
内核回调
进程回调
PsSetCreateProcessNotifyRoutine
PsSetCreateProcessNotifyRoutineEx
PsSetCreateProcessNotifyRoutineEx2
线程回调
PsSetCreateThreadNotifyRoutine
PsSetCreateThreadNotifyRoutineEx
映像加载回调
PsSetLoadImageNotifyRoutine
PsSetLoadImageNotifyRoutineEx
对象回调
ObRegisterCallbacks
// OB_OPERATION_HANDLE_CREATE
// OB_OPERATION_HANDLE_DUPLICATE
注册表回调
CmRegisterCallback
CmRegisterCallbackEx
微过滤器回调
FltRegisterFilter
// IRP_MJ_CREATE, IRP_MJ_READ, 等.
驱动开发
基本结构
NTSTATUS DriverEntry(
PDRIVER_OBJECT DriverObject,
PUNICODE_STRING RegistryPath
) {
DriverObject->DriverUnload = DriverUnload;
DriverObject->MajorFunction[IRP_MJ_CREATE] = DispatchCreate;
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = DispatchIoctl;
// 创建设备、符号链接...
return STATUS_SUCCESS;
}
通信方法
- IOCTL (DeviceIoControl)
- 直接I/O
- 缓冲I/O
- 共享内存
易受攻击驱动利用
常见漏洞类型
- 任意读写原语
- IOCTL处理器漏洞
- 池溢出
- 使用后释放
知名的易受攻击驱动
- gdrv.sys (技嘉)
- iqvw64e.sys (英特尔)
- MsIo64.sys
- Mhyprot2.sys (原神)
- dbutil_2_3.sys (戴尔)
- RTCore64.sys (微星)
- Capcom.sys
利用步骤
- 加载已签名的易受攻击驱动
- 触发漏洞
- 实现内核读写
- 禁用DSE或加载未签名驱动
- 执行任意内核代码
PatchGuard绕过技术
基于时序
- 预测PG定时器
- 在检查之间修改
上下文操作
- 异常处理
- DPC操作
- 线程上下文篡改
基于超级管理器
- EPT操作
- 内存虚拟化
- 拦截PG检查
内核钩子
ETW (Windows事件追踪)
- InfinityHook技术
- HalPrivateDispatchTable
- 系统调用追踪
SSDT钩子 (遗留)
- 修改服务表条目
- 需要PG绕过
- 高检测风险
IRP钩子
- 钩子驱动分发例程
- 比SSDT监控少
- 针对每个驱动
内存操作
物理内存访问
MmMapIoSpace
MmCopyMemory
\\Device\\PhysicalMemory
虚拟内存
ZwReadVirtualMemory
ZwWriteVirtualMemory
KeStackAttachProcess
MmCopyVirtualMemory
MDL操作
IoAllocateMdl
MmProbeAndLockPages
MmMapLockedPagesSpecifyCache
研究工具
分析
- WinDbg / WinDbg预览版
- Process Hacker / System Informer
- OpenArk
- WinArk
实用工具
- KDU (内核驱动实用程序)
- OSR驱动加载器
- DriverView
监控
- Process Monitor
- API Monitor
- ETW消费者
EFI/UEFI集成
启动时访问
- EFI运行时服务
- 启动驱动加载
- 预操作系统执行
内存访问
- GetVariable/SetVariable
- 运行时内存映射
- 物理内存访问
超级管理器开发
Intel VT-x
- VMCS配置
- EPT (扩展页表)
- VM退出处理
AMD-V
- VMCB结构
- NPT (嵌套页表)
- SVM操作
用例
- 内存隐藏
- 系统调用拦截
- 安全监控
- 反作弊规避
资源组织
README包含分类链接,用于:
- PatchGuard研究和绕过
- DSE绕过技术
- 易受攻击驱动利用
- 内核回调枚举
- ETW/PMI/NMI处理器
- Intel PT集成
数据源
重要提示:此技能提供概念指导和概述信息。详细信息包括:
- 特定GitHub仓库链接
- 完整项目列表及描述
- 最新工具和资源
- 代码示例和实现
请从主仓库获取完整数据:
https://raw.githubusercontent.com/gmh5225/awesome-game-security/refs/heads/main/README.md