アプリケーションが所有する HKLM\SOFTWARE ブランチ配下で、選択されたレジストリ書き込みを監視および拒否するためのネイティブ C++ ルール。小さなデスクトップインターフェースが、一致したルールと呼び出し元プロセスを説明します。
[!IMPORTANT] フルバージョンと商用ライセンス
Discord ユーザー名:
titancsaDiscord を開き、フレンド > フレンドを追加 を選択し、
titancsaを入力して、ダイレクトメッセージを送信してください。RegistryGuard に言及し、フル / 本番バージョン、商用利用、OEM 再配布についてお問い合わせください。価格、入手可能性、適切なライセンス / アクセス手順について相談するため、想定用途と導入規模をお知らせください。
エンジニアリングプレビュー: アプリケーション/SDK は利用可能です。正規の Microsoft 高度割り当て、署名、およびライブカーネル認定は保留中です。インストール可能なドライバーはまだ公開されていません。

Vendor\Product は Vendor\ProductOther も選択することはありません。ユースケースには、アプリケーション設定の整合性テスト、インストーラーの回帰テスト、OEM ポリシーコンポーネントなどがあります。初期の受け入れスコープは \REGISTRY\MACHINE\SOFTWARE\ 配下のネイティブブランチです。システム全体のレジストリルート、SAM、SECURITY、SYSTEM は拒否されます。32 ビットアプリケーションのシナリオでは、該当する場合は 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 ごとに更新します。この表示周期はカーネルの判定を遅延させません。これは操作前のポリシー帰属であり、最終結果の完全な監査やハードウェアのレイテンシ測定ではありません。1 つの 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 までお問い合わせください。商用オプションを参照してください。プレビューを唯一のセキュリティ制御として導入しないでください。
本ソフトウェアは、自身が所有するか、管理を許可されているシステムでのみ使用してください。本ソフトウェアは、正当な統合、診断、アプリケーションポリシー開発を目的としています。導入および適用法の遵守については、お客様が責任を負います。本ソフトウェアは、適用されるライセンスの下で無保証で提供されます。損失防止、バイパスに対する免疫、または適用法を超える責任免除についての保証は行われません。