Harryson3001/Patch-0xC0000022

GitHub: Harryson3001/Patch-0xC0000022

通过向 SysMain 进程的 NtCreateFile 函数应用运行时补丁,强制返回 ACCESS_DENIED 状态码,以研究预取服务在文件创建被阻止时的行为表现。

Stars: 0 | Forks: 0

# Patch-0xC0000022 原生的 C++ 研究工具,用于通过修改 `NtCreateFile` 的响应来研究 SysMain/Superfetch 的行为。 ![C++](https://img.shields.io/badge/C++-00599C?style=for-the-badge&logo=cplusplus&logoColor=white) ![Windows](https://img.shields.io/badge/Windows%2010%2F11-0078D4?style=for-the-badge&logo=windows&logoColor=white) ![WinAPI](https://img.shields.io/badge/WinAPI-111827?style=for-the-badge) ![研究](https://img.shields.io/badge/Pesquisa%20de%20Sistema-8B5CF6?style=for-the-badge) ## 概述 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