WMI (Windows Management Instrumentation) — стандартный API Windows для получения информации о системе. Любая программа может запросить Win32_BIOS, Win32_BaseBoard, Win32_Processor — и получить структурированный ответ.
Под капотом WMI читает данные из реестра, SMBIOS, драйверов и сервисов. То есть это «обёртка» над всеми остальными источниками HWID.
Самый частый сценарий: программа запрашивает SerialNumber из Win32_BIOS, и WMI возвращает значение, которое драйвер считал из SMBIOS на этапе загрузки. Это значение кешируется до перезагрузки.
HWIDChanger перехватывает запросы WMI на уровне сервиса winmgmt и подменяет ответы на лету. Это позволяет менять HWID без перезагрузки — для пользователей это часто критично, особенно в QA-сценариях.
Однако «настоящие» анти-читы вроде Vanguard не доверяют WMI и читают SMBIOS напрямую. Поэтому подмена WMI без подмены SMBIOS — недостаточная защита.
