用于在应用程序拥有的 HKLM\SOFTWARE 分支下观察和拒绝选定注册表写入的原生 C++ 规则。一个小型桌面界面会说明匹配的规则和调用进程。
[!IMPORTANT] 完整版本与商业许可
Discord 用户名:
titancsa打开 Discord,选择 Friends > Add Friend,输入
titancsa,然后发送私信。提及 RegistryGuard 并咨询 完整版 / 生产版本、商业使用或 OEM 再分发。请说明您的预期用途和部署规模,以便讨论定价、可用性以及相应的许可 / 访问说明。
工程预览版: 应用程序/SDK 可用;真正的 Microsoft altitude 分配、签名和实时内核资格认证仍在等待中。目前尚未发布可安装的驱动程序。

Vendor\Product 不会同时选中 Vendor\ProductOther。用例包括应用程序设置完整性测试、安装程序回归测试和 OEM 策略组件。初始接受的范围是 \REGISTRY\MACHINE\SOFTWARE\ 下的原生分支;系统级注册表根、SAM、SECURITY 和 SYSTEM 会被拒绝。在 32 位应用程序场景中,请显式选择实际的 native 键,包括适用时的 WOW6432Node。
此版本不涵盖键创建、配置单元加载/还原/替换、安全描述符更改、事务、源自内核的更改或所有注册表别名。未知/无法解析或截断的名称会继续执行并被计数;不声称具备防篡改的注册表隔离。另一个受信任的筛选器可以影响最终结果。请保留 Windows ACL 和备份。
从 Releases 下载完整的 Windows x64 ZIP。在启动应用程序之前解压归档文件。
构建目标是 Windows 10 版本 2004+ / Windows 11 x64。有关实际测试过的平台,请参阅验证与部署。仅有 Microsoft 签名并不能证明正确性、兼容性或 Microsoft 认可。
将 SDK/RegistryGuard.cpp 与您的程序一起编译,并包含 SDK/RegistryGuard.h。使用 C++17 并链接 setupapi.lib。策略决策不需要运行时服务、云账户或可执行脚本引擎。
#include "RegistryGuard.h"
int main() {
RegistryGuard::Session policy;
policy.Start({RegistryGuard::Rule(1,
L"\\REGISTRY\\MACHINE\\SOFTWARE\\Vendor\\Product",
RegistryGuard::Action::Deny)});
// Keep policy alive while your authorized application runs.
// Call policy.Read() to inspect attributed decisions.
}
该作用域必须按预期存在于目标机器上。读取操作仍然可用。这个微型示例会立即返回,因此会移除其策略;Examples/policy.cpp 会保持会话打开,直到按下 Enter 键。SDK 本身不会创建或重写任何注册表值。
| 函数 | 用途 |
|---|---|
Session::Start(rules) | 打开仅限管理员使用的独占接口,并原子地安装最多 16 条规则。 |
Session::SetRules(rules) | 替换完整的活动规则集;第一条匹配的规则生效。 |
Session::Read() | 立即排空最多 16 条元数据记录。空批次表示没有排队的记录。 |
Session::Status() | 读取策略代次、计数器、环形缓冲区占用情况和 QPC 频率。 |
Session::Stop() / 析构函数 | 关闭所有者句柄并移除其策略。 |
Rule(id, path, action) | 构建一条有界的审计/拒绝规则。id 必须唯一且非零。 |
事件包含序列号、QPC 时间、进程 ID/启动键、策略代次、操作、匹配的规则、决策以及一个有界的原生路径。256 条记录的环形缓冲区会报告溢出,而不是无限制地分配内存。UI 最多显示 400 条记录,并每 200 ms 刷新一次;此显示节奏不会延迟内核决策。这是操作前的策略归因,而不是对最终结果的完整审计,也不是硬件延迟测量。对同一个 Session 的调用是串行化的;在销毁它之前,请停止所有调用方。
安装 Visual Studio 2022 C++ 工具、CMake 和 Windows SDK。在 PowerShell 中运行 ./Build.ps1。它会使用静态 C++ 运行时构建原生应用、控制台程序、示例、安装程序源文件和离线测试。./Build.ps1 -Asan 会添加用户模式 AddressSanitizer 检查。离线检查不会加载驱动程序。安装程序源文件通过 -DriverPackageDirectory 接受一个不透明的已签名包;未签名或不相关的嵌入式包会在运行时被拒绝。
App/ Native Windows UI and console
SDK/ RegistryGuard.h + RegistryGuard.cpp
Examples/ Small integration example
Installer/ UI/console setup source; kernel implementation excluded
Tests/ Offline protocol validation
docs/ Usage boundaries, validation and commercial integration
公开的应用程序、SDK 和安装程序源代码采用 MIT 许可证。单独交付的内核实现为私有,不在该源代码许可证的覆盖范围内。此工程预览版不实现试用计时器、远程激活或可强制执行的许可配额。
如需范围限定的集成试点、OEM 再分发权利、部署资格认证或维护服务,请在 Discord 上联系 titancsa。参见商业选项。请勿将预览版作为您唯一的安全控制措施进行部署。
请仅在您拥有或获授权管理的系统上使用本软件。本软件旨在用于合法的集成、诊断和应用程序策略开发。您需对自己的部署及遵守适用法律负责。本软件依据其适用许可证按“原样”提供,不附带任何担保;除适用法律要求外,不作任何损失预防、免于绕过或责任免除的保证。