
SDK de filtre de registre du noyau Windows et interface utilisateur native en C++ pour l'audit et le contrôle des écritures dans les clés d'application à portée limitée. Altitude/signature en attente ; intégration OEM : Discord titancsa.
Règles C++ natives pour observer et refuser certaines écritures de registre sous des branches HKLM\SOFTWARE appartenant à l'application. Une petite interface de bureau explique la règle correspondante et le processus appelant.
[!IMPORTANT] Version complète et licence commerciale
Nom d'utilisateur Discord :
titancsaOuvrez Discord, choisissez Amis > Ajouter un ami, saisissez
titancsa, puis envoyez un message direct. Mentionnez RegistryGuard et renseignez-vous sur la version complète / de production, l'utilisation commerciale ou la redistribution OEM.Indiquez votre usage prévu et la taille du déploiement pour discuter des tarifs, de la disponibilité et des instructions de licence / d'accès appropriées.
Aperçu d'ingénierie : application/SDK disponible ; l'attribution d'altitude Microsoft authentique, la signature et la qualification en noyau réel sont en attente. Aucun pilote installable n'est encore publié.

Vendor\Product ne sélectionne pas non plus Vendor\ProductOther.Les cas d'usage incluent les tests d'intégrité des paramètres d'application, les tests de régression d'installateurs et un composant de stratégie OEM. La portée initiale acceptée est une branche native sous \REGISTRY\MACHINE\SOFTWARE\ ; les racines de registre à l'échelle du système, SAM, SECURITY et SYSTEM sont rejetées. Dans les scénarios d'application 32 bits, sélectionnez explicitement la clé native réelle, y compris WOW6432Node le cas échéant.
Cette version ne couvre pas la création de clés, le chargement/la restauration/le remplacement de ruches, les modifications de descripteur de sécurité, les transactions, les modifications d'origine noyau ni tous les alias de registre. Les noms inconnus/irrésolubles ou tronqués continuent et sont comptés ; aucune prétention à une isolation du registre inviolable n'est faite. Un autre filtre de confiance peut influencer le résultat final. Conservez les ACL Windows et les sauvegardes en place.
Téléchargez le ZIP Windows x64 complet depuis Releases. Extrayez l'archive avant de démarrer l'application.
Windows 10 version 2004+ / Windows 11 x64 sont les cibles de compilation. Voir validation et déploiement pour les plateformes réellement exercées. Une signature Microsoft seule ne constitue pas une preuve d'exactitude, de compatibilité ou d'approbation de Microsoft.
Compilez SDK/RegistryGuard.cpp avec votre programme et incluez SDK/RegistryGuard.h. Utilisez C++17 et liez setupapi.lib. Aucun service d'exécution, compte cloud ou moteur de script exécutable n'est nécessaire pour les décisions de stratégie.
#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.
}
La portée doit exister comme prévu sur la machine cible. Les lectures restent disponibles. Le petit exemple retourne immédiatement et supprime donc sa politique ; Examples/policy.cpp garde la session ouverte jusqu'à ce qu'Entrée soit pressée. Aucune valeur de registre n'est créée ou réécrite par le SDK lui-même.
| Fonction | Objectif |
|---|---|
Session::Start(rules) | Ouvre l'interface exclusive réservée à l'administrateur et installe atomiquement jusqu'à 16 règles. |
Session::SetRules(rules) | Remplace l'ensemble complet des règles actives ; la première règle correspondante l'emporte. |
Session::Read() | Vide immédiatement au plus 16 enregistrements de métadonnées. Un lot vide signifie qu'aucun enregistrement n'est en file d'attente. |
Session::Status() | Lit la génération de la politique, les compteurs, l'occupation de l'anneau et la fréquence QPC. |
Session::Stop() / destructeur | Ferme le handle propriétaire et supprime sa politique. |
Rule(id, path, action) | Construit une règle d'audit/refus bornée. id doit être unique et non nul. |
Les événements incluent la séquence, l'heure QPC, l'ID de processus/clé de démarrage, la génération de la politique, l'opération, la règle correspondante, la décision et un chemin natif borné. L'anneau de 256 enregistrements signale un débordement au lieu d'allouer sans limite. L'interface utilisateur affiche jusqu'à 400 enregistrements et s'actualise toutes les 200 ms ; cette cadence d'affichage ne retarde pas les décisions du noyau. Il s'agit d'une attribution de politique pré-opération, et non d'un audit complet des résultats finaux ni d'une mesure de latence matérielle. Les appels sur une même Session sont sérialisés ; arrêtez tous les appelants avant de la détruire.
Installez les outils C++ de Visual Studio 2022, CMake et un Windows SDK. Exécutez ./Build.ps1 dans PowerShell. Il compile l'application native, la console, l'exemple, les sources de l'installateur et les tests hors ligne avec un runtime C++ statique. ./Build.ps1 -Asan ajoute des vérifications AddressSanitizer en mode utilisateur. Les vérifications hors ligne ne chargent pas de pilote. La source de l'installateur accepte un paquet signé opaque via -DriverPackageDirectory ; les paquets non signés ou intégrés non pertinents sont rejetés à l'exécution.