Harryson3001/Patch-0xC0000022
GitHub: Harryson3001/Patch-0xC0000022
通过向 SysMain 进程的 NtCreateFile 函数应用运行时补丁,强制返回 ACCESS_DENIED 状态码,以研究预取服务在文件创建被阻止时的行为表现。
Stars: 0 | Forks: 0
# Patch-0xC0000022
原生的 C++ 研究工具,用于通过修改 `NtCreateFile` 的响应来研究 SysMain/Superfetch 的行为。




## 概述
Patch-0xC0000022 会定位 SysMain 服务进程并在运行时应用一个小补丁,强制 `NtCreateFile` 返回 `STATUS_ACCESS_DENIED` (`0xC0000022`)。其目的是研究当文件创建尝试被阻止时,与预取相关的行为会如何变化。
## 功能说明
- 激活 debug 权限。
- 查找 `SysMain` 服务进程。
- 解析 `NtCreateFile` 的远程地址。
- 在应用补丁前请求确认。
- 应用一个 6 字节的补丁。
- 在目标函数中强制产生 `ACCESS_DENIED` 行为。
## 系统要求
- Windows 10 或 Windows 11 x64。
- 带有 C++ 工具的 Visual Studio。
- 管理员权限。
- 受控的测试环境。
## 如何编译
在 Visual Studio 中打开解决方案并编译项目:
- `Patch_00.slnx`
- `Patch_00.vcxproj`
- `Patch_00.cpp`
- `patch.cpp`
- `patch.h`
## 如何使用
以管理员身份运行编译后的程序。
程序会显示解析出的地址并请求确认:
```
Voce Deseja Aplicar Um Patch No Endereco 00000000 ? (s/n):
```
输入 `s` 以应用补丁,或输入 `n` 以取消。
## 安全提示
- 这是一个研究项目,不是用于日常使用的调整工具。
- 请在虚拟机或实验机器中进行测试。
- 请勿在生产系统上运行。
- 重启 Windows 即可恢复原始的运行时状态。
## 后续计划
- 添加恢复/移除补丁的选项。
- 改进状态消息。
- 添加日志记录。
- 添加带有图片的构建说明。
- 从技术上解释补丁的字节。
## 负责任的使用
本仓库旨在用于 Windows internals 的教育性研究。请仅在您拥有或获得明确授权进行测试的系统上使用。
标签:C++, Hooking, NtCreateFile, Superfetch, SysMain, VQL, WinAPI, Windows服务, 云资产清单, 内存补丁, 内核研究, 协议分析, 原生开发, 安全测试, 攻击性安全, 数据擦除, 权限提升, 系统安全研究, 访问拒绝, 调试权限, 运行时修改, 进程操作, 逆向工程, 错误代码0xC0000022