
SDK для фильтра реестра ядра Windows и нативный пользовательский интерфейс на C++ для аудита и контроля записи в ключи приложений с ограниченной областью действия. Altitude/подпись на рассмотрении; интеграция с OEM: Discord titancsa.
Собственные правила на C++ для наблюдения за выбранными записями в реестр и их запрета в ветках HKLM\SOFTWARE, принадлежащих приложению. Небольшой настольный интерфейс поясняет сработавшее правило и вызывающий процесс.
[!IMPORTANT] Полная версия и коммерческое лицензирование
Имя пользователя Discord:
titancsaОткройте Discord, выберите Friends > Add Friend, введите
titancsa, затем отправьте личное сообщение. Укажите RegistryGuard и спросите о полной / производственной версии, коммерческом использовании или OEM-распространении.Укажите предполагаемое использование и масштаб развёртывания, чтобы обсудить цену, доступность и соответствующие инструкции по лицензированию / доступу.
Инженерный предпросмотр: приложение/SDK доступны; подлинное выделение altitude от Microsoft, подпись и проверка в реальном ядре пока не выполнены. Устанавливаемый драйвер ещё не опубликован.

Vendor\Product не выбирает также Vendor\ProductOther.Сценарии использования включают проверку целостности настроек приложений, регрессионное тестирование установщиков и компонент политики OEM. Начальная допустимая область — собственная ветка ниже \REGISTRY\MACHINE\SOFTWARE\; общесистемные корни реестра, SAM, SECURITY и SYSTEM отклоняются. В сценариях 32-битных приложений явно выбирайте фактический собственный ключ, включая WOW6432Node, где это применимо.
Эта версия не охватывает создание ключей, загрузку/восстановление/замену кустов, изменения дескрипторов безопасности, транзакции, изменения, исходящие из ядра, или все псевдонимы реестра. Неизвестные/неразрешимые или усечённые имена пропускаются и подсчитываются; заявления о защищённой от вмешательства изоляции реестра нет. Другой доверенный фильтр может повлиять на итоговый результат. Сохраняйте ACL Windows и резервные копии.
Скачайте полный ZIP-архив для Windows x64 со страницы Releases. Распакуйте архив перед запуском приложения.
Целевые платформы сборки — Windows 10 версии 2004+ / Windows 11 x64. См. validation and deployment для платформ, которые фактически проверялись. Одна лишь подпись 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, идентификатор/ключ запуска процесса, поколение политики, операцию, совпавшее правило, решение и ограниченный нативный путь. Кольцевой буфер на 256 записей сообщает о переполнении вместо неограниченного выделения памяти. Интерфейс отображает до 400 записей и обновляется каждые 200 мс; эта частота отображения не задерживает решения ядра. Это атрибуция политики до выполнения операции, а не полный аудит итоговых результатов и не измерение аппаратной задержки. Вызовы в рамках одной Session сериализуются; остановите всех вызывающих перед её уничтожением.
Установите инструменты C++ Visual Studio 2022, CMake и Windows SDK. Запустите ./Build.ps1 в PowerShell. Он собирает нативное приложение, консоль, пример, исходники установщика и офлайн-тесты со статической средой выполнения 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. Отдельно поставляемая реализация ядра является закрытой и не покрывается этой лицензией на исходный код. Данная инженерная предварительная версия не реализует таймер пробного периода, удалённую активацию или принудительно применяемую лицензионную квоту.