🛡️ Утилита для защиты системной приватности и унификации аппаратного слепка (Hardware Fingerprint).
Проект создан исключительно в ознакомительных и исследовательских целях. Он не предназначен для обхода анти-читов на уровне ядра (kernel-level). Главная цель проекта — унификация системы, то есть защита оригинального аппаратного слепка ПК от утечки и сбора другими программами (tracking/fingerprinting). Использование программы осуществляется исключительно на ваш собственный риск. Автор не несет ответственности за возможные неполадки или блокировки.
Проект выделяется на фоне аналогов рядом нестандартных архитектурных и технических решений:
- Динамический поиск оффсетов (PDB Resolver): Вместо хардкода оффсетов под разные версии Windows, используется динамическая загрузка
ntoskrnl.exePDB. Это делает программу более адаптивной к обновлениям ОС. - Безопасная работа с памятью ядра: Модификация памяти происходит через механизм MDL и
MmMapIoSpaceExс флагамиPAGE_READWRITE. Устаревший и опасный сброс регистраCR0.WPне используется. - Широкое покрытие периферии: Помимо стандартных SMBIOS и дисков, реализованы компоненты подмены для GPU, Audio, Display, USB, что делает изменения глубокими и комплексными.
- Умный System Cleaner: Встроенный модуль очистки (эвристика) находит и безопасно удаляет остаточные файлы, профили игр (и покера) и системный мусор (с поддержкой обширного Whitelist'а вендоров).
- Изолированная UI-Архитектура и Связи Классов: Строгое разделение бизнес-логики и UI (
Spectre.Console). Для разработчиков важно понимать ключевые связи:- Навигация и UI: Работает через кастомный
Stack<IPage>. Если компоненту нужно отправить лог в UI, он не использует напрямую консоль, а получаетIUiReporterчерез конструктор. - Оркестратор (
HardwareSpoofer.cs): Управляет всем процессом (Снятие Snapshot -> Backup -> UserMode подмена -> Загрузка PDB -> Работа драйвера). - Связь с драйвером (
DriverCommunicator.cs): Взаимодействует с ядром через Shared Memory (MemoryMappedFile) и поллинг статусов.
- Навигация и UI: Работает через кастомный
- Нет кастомного маппера драйвера: Для загрузки драйвера используется публичный KDU (
kdu.exe + drv64.dll). Его сигнатуры известны ядру и защитным механизмам. - Отсутствие CPU / Hypervisor хуков: Для перехвата некоторых специфичных инструкций процессора необходим гипервизор. Это выходит за рамки задачи "унификации", так как требует сложной и нестабильной инфраструктуры.
- Итог: Проект не является rootkit-ом для обхода защит; это инструмент приватности, предоставляемый для открытого изучения и самостоятельной доработки.
Программа умеет модифицировать следующие компоненты системы:
- SMBIOS (Type 0-4): BIOS, System, Baseboard, Chassis, CPU.
- Периферия: Диски (Disk/Volume/SMART), Видеокарты (GPU/UUID), Мониторы (EDID), Аудио устройства, USB-контроллеры.
- Система и Сеть: Сетевые карты (генерация LAA/OUI, MAC), обход детекта ВМ, MachineGuid, HWProfile и реестр (NT).
- ОС: Windows 10 или Windows 11 (x64).
- Безопасность: Необходимо обязательно отключить Windows Defender (или добавить папку с софтом в исключения), так как использование KDU и модификация ядра неизбежно детектируются как угроза. Рабочую папку программы лучше держать в исключениях антивируса.
- Подписи драйверов: Отключать проверку цифровой подписи драйверов (Driver Signature Enforcement) или включать тестовый режим НЕ НУЖНО. Программа использует маппер KDU, который загружает драйвер в память в обход этих проверок.
Если появится желание дописать проект или скомпилировать его самостоятельно, потребуется:
- .NET 9.0 SDK (Для C# части и консольного интерфейса).
- Visual Studio с установленным WDK (Windows Driver Kit) (Для сборки C драйвера).
- Интегрированные зависимости (уже присутствуют в проекте):
KDU(маппинг драйвера) иdbghelp.dll(для работы с PDB).
- Драйвер (C): Запрещено компилировать через CLI (
msbuild). Сборка выполняется строго вручную через Visual Studio в режиме Debug. Так как это не классический WDM-драйвер (он маппится в память вручную), для его сборки требуются специфические флаги компиляции. Они уже настроены в проекте для режима Debug, поэтому изменение профиля сборки приведет к неработоспособности драйвера. - Клиент (C#): Можно собирать стандартной командой
dotnet build. Специфических требований к конфигурации (Debug/Release) со стороны интерфейса нет.
Программа работает по принципу создания «снимка» (Snapshot) вашей системы до начала любых изменений.
Бэкапы и Откат к оригиналу:
- При первом запуске (или перед спуфом) программа автоматически формирует оригинальный бэкап — реальный слепок ваших первоначальных аппаратных данных.
- Откат к оригиналу (Factory Reset) происходит через меню: программа берет данные из оригинального бэкапа и восстанавливает все измененные значения обратно.
Зачем нужны Профили и как работают изменения: Некоторые компоненты (например, ключи реестра) сохраняются навсегда, в то время как другие (например, структуры SMBIOS) модифицируются драйвером напрямую в оперативной памяти (RAM) и восстанавливаются в оригинальное состояние после перезагрузки ОС.
- Система бэкапов это учитывает: архитектура (интерфейс
IPersistentComponent) разделяет постоянные и временные изменения, поэтому откат работает корректно. - Почему выбран такой подход для RAM: Программа не прошивает физический BIOS и не использует bootkits (загрузчики вроде EFI-хуков). Это самый безопасный метод, который гарантирует, что материнская плата не выйдет из строя.
- Как использовать: Достаточно один раз сохранить нужный профиль спуфа в Anonify и загружать его заново после каждой перезагрузки Windows, чтобы восстановить те компоненты, которые сбрасываются из памяти.
Просто подменить железо недостаточно — стороннее ПО или игры часто оставляют скрытые следы ("трейсы") на ПК, по которым можно связать новую систему со старым профилем. Для защиты от этого предусмотрен отдельный блок:
- Эвристический поиск (System Cleaner): Программа динамически сканирует
AppData,Temp, ключи реестра и другие директории на наличие остаточных файлов от игр, покерных клиентов и телеметрии. - Очистка журналов (Event Logs): Windows ведет подробные логи событий, в которых навсегда сохраняется история подключений старого оборудования. Программа умеет корректно очищать эти журналы.
- Интерактивный ручной анализ: Программа не удаляет всё вслепую. Присутствует функция генерации списка подозрительных остаточных файлов. Пользователь может самостоятельно изучить этот список и выбрать, что именно удалить, минимизируя риск потери нужных личных данных.
- Логи: Все действия программы логируются (через встроенный сервис
FileLogger), поэтому в случае непредвиденных ситуаций или ошибок при самостоятельной сборке вы всегда сможете найти детали в лог-файлах.
