Как проверить, что спуф действительно применился
Считайте идентификаторы до и после и сравните два списка, а не верьте сообщению об успехе. Как выглядит частичный спуф и какие команды Windows работают только на чтение.
Коротко
Считайте идентификаторы до спуфа и ещё раз после, затем сравните списки: окно с сообщением об успехе ничего не доказывает. Если изменилась только часть значений, спуф частичный, и одного неизменённого серийника может хватить, чтобы связать компьютер с его прежним отпечатком.
На странице9
- Почему сообщения об успехе недостаточно?
- Как сравнить значения до и после
- Команды только для чтения, чтобы проверить идентификаторы
- Что означает результат сравнения?
- Какие значения должны остаться прежними?
- Из-за чего спуф получается частичным?
- Что проверить, прежде чем что-либо запускать
- Гарантирует ли чистое сравнение безопасность?
- Частые вопросы о проверке
Почему сообщения об успехе недостаточно?
Сообщение спуфера об успехе говорит лишь о том, что его собственная процедура завершилась без ошибки, а не о том, что ваш компьютер теперь сообщает другим программам. Одно может расходиться с другим: драйвер мог не загрузиться или инструмент не охватывает это поле. Служба также могла уже закэшировать старое значение, а перезагрузка — откатить временную подмену. Во всех четырёх случаях вы видите бодрое окошко и неизменённый идентификатор. Единственное доказательство, которое имеет вес, — значение, которое вы сами прочитали до и после тем же путём, каким его читают другие программы.
Как сравнить значения до и после
Один прогон занимает пять минут и превращает догадку в факт. Делайте это на том компьютере, который спуфите, в командной строке с правами администратора, закрыв игру и все лаунчеры.
- Перезагрузите компьютер и больше ничего не запускайте
- Выполните приведённые ниже команды (они только читают) и сохраните вывод в файл, по имени которого понятно, когда сделан снимок
- Запустите спуфер так, как указано в его документации, больше ничего не меняя
- Выполните точно те же команды ещё раз и сохраните вывод во второй файл
- Сравните два файла построчно и отметьте, какие поля изменились, а какие нет
- Проверьте, что новые значения выглядят правдоподобно, а не случайно. Серийник платы должен соответствовать формату её производителя, а серийник диска — формату производителя накопителя
- Только после этого запускайте лаунчер и игру
Команды только для чтения, чтобы проверить идентификаторы
Каждая команда ниже только читает состояние: ни одна не меняет идентификатор, куст реестра или прошивку. Сохраните всё, что выше последней строки с fc, как inspect.cmd. Запустите его до спуфа и ещё раз после, а затем сравните два вывода командой fc из последней строки.
REM Save a snapshot. Run the same block again after spoofing into after.txt
REM inspect.cmd > before.txt then inspect.cmd > after.txt
REM Motherboard
powershell -c "Get-CimInstance Win32_BaseBoard | Select-Object Manufacturer, Product, Version, SerialNumber"
REM System UUID and the OEM identifying number
powershell -c "Get-CimInstance Win32_ComputerSystemProduct | Select-Object Name, Vendor, UUID, IdentifyingNumber"
REM BIOS
powershell -c "Get-CimInstance Win32_BIOS | Select-Object Manufacturer, SMBIOSBIOSVersion, SerialNumber, ReleaseDate"
REM Physical disks and their serials
powershell -c "Get-CimInstance Win32_DiskDrive | Select-Object Index, Model, InterfaceType, SerialNumber"
REM Volume identifiers
powershell -c "Get-Volume | Select-Object DriveLetter, FileSystemLabel, UniqueId"
vol C:
REM MAC addresses for every adapter, not just the one you are using
getmac /v /fo list
powershell -c "Get-CimInstance Win32_NetworkAdapter -Filter 'PhysicalAdapter=true' | Select-Object Name, MACAddress"
REM TPM presence and manufacturer, read-only
powershell -c "Get-CimInstance -Namespace root\CIMV2\Security\MicrosoftTpm -ClassName Win32_Tpm | Select-Object ManufacturerIdTxt, ManufacturerVersion, SpecVersion, IsEnabled_InitialValue"
REM GPU, and the vendor UUID where the vendor tooling exposes one
powershell -c "Get-CimInstance Win32_VideoController | Select-Object Name, PNPDeviceID, DriverVersion"
nvidia-smi -L
REM The registry MachineGuid - a query, which only reads
reg query "HKLM\SOFTWARE\Microsoft\Cryptography" /v MachineGuid
REM Compare the two snapshots
fc before.txt after.txtЧто означает результат сравнения?
Найдите строку, которая совпадает с вашими двумя файлами. Частичный спуф — самый опасный случай, потому что инструмент всё равно сообщит об успехе.
| Что показывает сравнение | Что это значит | Что делать |
|---|---|---|
| Изменились все идентификаторы, которые инструмент, по его словам, охватывает, и новые значения выглядят правдоподобно | Спуф применился так, как задумано | Продолжайте остальную последовательность. Сохраните оба файла как образец на следующий раз |
| Часть полей изменилась, остальные совпадают с файлом «до» | Частичный спуф. Одного неизменённого серийника может хватить, чтобы совпасть с прежним набором | Ничего не запускайте. Перечитайте в документации инструмента, что он охватывает, и сообщите в его поддержку о неохваченных полях |
| Не изменилось вообще ничего | Инструмент не сработал: ему нужны были права администратора, не загрузился драйвер или что-то его заблокировало | Перезагрузитесь, запустите его снова после чистой загрузки, ничего больше не открывая, и проверьте ещё раз |
| Значения изменились, а после перезагрузки вернулись | Временный спуф ведёт себя ровно так, как задумано | Выполняйте загрузку, спуф и проверку как единый ритуал в каждой сессии |
| Значения изменились, но выглядят неправдоподобно или противоречат друг другу | Несогласованные идентификаторы сами по себе служат сигналом и заметнее исходных | Используйте профили, которые генерирует сам инструмент, а не произвольные значения, и спросите в его поддержке, как должны выглядеть поля |
| Значения меняются при каждом выполнении одной и той же команды | Что-то генерирует новый ответ на каждый запрос | Остановитесь и спросите: программы, читающие эти идентификаторы, такого поведения не ожидают, и оно очень заметно |
Справка
Какие значения должны остаться прежними?
Смысл проверки — убедиться, что изменились поля, которые инструмент обещает охватывать, а не набрать как можно больше отличий. Сборка Windows, модель процессора, модель видеокарты и объём оперативной памяти должны остаться прежними. Если инструмент выдаёт модель процессора, отличную от той, что стоит в сокете, это несоответствие, а не улучшение. Не ждите и изменения строки с производителем TPM: её читают, чтобы узнать, есть ли TPM вообще и включён ли он.
Из-за чего спуф получается частичным?
У частичного спуфа обычно одна из четырёх причин. Первая — инструмент не охватывает этот идентификатор и никогда этого не обещал. Вторая — значение читается путём, который инструмент не перехватывает; для идентификаторов GPU это обычное дело. Третья — служба, которая стартовала до спуфа и закэшировала старое значение. Четвёртая — перезагрузка, после которой временная подмена тихо исчезла. Все четыре причины видны при сравнении «до» и «после», но незаметны в окне с сообщением об успехе.
Что проверить, прежде чем что-либо запускать
- Снимок «до» сделан после чистой загрузки, до запуска какого-либо лаунчера
- Снимок «после» сделан точно теми же командами
- Каждое поле, которое инструмент, по его словам, охватывает, показывает другое значение
- Новые значения правдоподобны для реального железа и не похожи на случайные строки
- Ничего из того, что должно оставаться постоянным, — сборка Windows, модель процессора или объём оперативной памяти — не изменилось
- Проверены все сетевые адаптеры, а не только тот, что подключён сейчас
- Вы знаете, переживает ли ваш спуф перезагрузку, и проверили это: перезагрузились и снова считали значения
- Оба файла сохранены там, где вы найдёте их в следующий раз
Внимание
Гарантирует ли чистое сравнение безопасность?
Нет. Чистое сравнение доказывает, что ваш компьютер теперь сообщает другие значения. Оно не доказывает, что не уцелел ни один идентификатор, что разработчик не сопоставит вас другим способом или что бан не последует. Оно проверяет, что инструмент сделал заявленное, — и это единственное во всей этой истории, в чём вы можете убедиться сами. Эту проверку стоит делать именно потому, что всё, что идёт после неё, от вас уже не зависит.
Частые вопросы о проверке
Нужны ли для этих команд права администратора?
Большинство CIM-запросов работает и от обычного пользователя, и все они только читают. Всё равно запускайте их в командной строке с правами администратора, чтобы снимки «до» и «после» делались в одинаковых условиях.
Можно ли использовать wmic вместо Get-CimInstance?
Старые аналоги на wmic возвращают те же поля, но wmic признан устаревшим и в актуальных сборках Windows отсутствует. Используйте команды CIM, чтобы тот же блок продолжал работать.
Инструмент пишет об успехе, но ничего не изменилось. Кому верить?
Вашему сравнению: окно сообщает код возврата самой процедуры, а не то, что ваш компьютер отдаёт другим программам. Перезагрузитесь, запустите инструмент после чистой загрузки и проверьте ещё раз, прежде чем что-либо запускать.
Проверять нужно каждую сессию?
Если спуф временный (до перезагрузки), проверяйте каждую сессию, потому что при перезапуске он откатывается. Постоянный спуф проверьте после применения и ещё раз после любого обновления Windows или замены железа.
Есть ли одна команда, которая показывает мой HWID?
Нет, потому что единого HWID не существует. Читать нужно весь набор, поэтому команды для проверки — это список, а не одна строка.
Источники
Команды стандартные для Windows, а порядок проверки команда выработала сама. Нигде не опубликовано, как выглядит частичный спуф.
Читать дальше
Не получилось? Откройте тикет в Discord
Все гайды