afonp/timerflip

GitHub: afonp/timerflip

通过物理内存访问修改内核计时器变量,实现部分 Windows PatchGuard 绕过的概念验证项目。

Stars: 0 | Forks: 0

# timerflip 这是一个概念验证(proof-of-concept),演示了一种通过物理内存访问修改内部内核计时器值,从而部分禁用或去同步 Windows PatchGuard 的技术。 在撰写本文时,已在当时的最新版 Windows 11 上进行了测试。 ## 概述 PatchGuard 会定期验证几个关键的内核结构,包括: - 系统服务描述符表 (SSDT) - 中断描述符表 (IDT) - 内核代码完整性区域 这些检查是通过 `ntoskrnl` 内部的计时变量来调度的。 `timerflip` 定位这些计时器值并使用 `0xffffffffffffffff` 覆盖它们,导致相关的 PatchGuard 验证例程实际上永远不会执行。 这 **并没有完全禁用 PatchGuard**,但它阻止了一些定时验证路径的触发。 ## 技术 该 POC 执行以下步骤: 1. 加载 `WinIO` 驱动以获取物理内存访问权限 2. 扫描物理内存以定位 `ntoskrnl` 的基址 3. 通过特征码扫描查找 PatchGuard 计时器指令 4. 解析引用的计时器变量 5. 将它们覆盖为最大的 `u64` 值 被修补的计时器包括: - SDT 验证计时器 - IDT 验证计时器 修补完成后,WinIO 驱动将被卸载。 ## 局限性 此方法 **并没有完全禁用 PatchGuard**。 其他的 PatchGuard 上下文可能仍会执行,并根据系统状态和内核修改情况触发 BugCheck。 未来的 Windows 构建版本可能会更改内部布局或指令模式。 ## 免责声明 本项目仅供 **教育和研究目的** 使用。 它演示了内核自我保护机制中的弱点,不应在生产系统上使用。 我不对因使用本软件而造成的任何误用或损害负责。
标签:BugCheck规避, IDT, Kernel Exploitation, PatchGuard绕过, POC验证, Ring0层, Rootkit技术, SSDT, UML, Web报告查看器, Windows 11, Windows内核安全, WinIO驱动, 代码完整性, 偏移量扫描, 内存篡改, 内核定时器修改, 内核补丁保护, 反逆向工程, 情报收集, 消息认证码, 漏洞研究, 物理内存访问, 系统安全机制