
no-gdid — Updated!
Прочитайте, поймите и заглушите идентификатор устройства Windows GDID (идентификатор, который отслеживал хакера через VPN). Проверено на реальной виртуальной машине с Windows 11. Честно: он подавляет отправку данных, но не делает вас анонимным.
no-gdid
Прочитайте, поймите и заглушите Windows Global Device Identifier (GDID) — скрытый идентификатор устройства, привязанный к учётной записи, который помог ФБР найти подозреваемого, использовавшего VPN.
⚠️ Честный дисклеймер сразу: этот инструмент не стирает ваш GDID и не делает вас анонимным. GDID живёт на серверах Microsoft, привязанный к вашей учётной записи Microsoft, с момента входа в систему.
no-gdidне даёт вашей машине повторно регистрировать и передавать его — он не может отменить то, что Microsoft уже имеет. Для настоящей конфиденциальности при чувствительной работе единственный надёжный ответ — не полагаться на Windows.
Каждый вывод здесь был воспроизведён на реальной виртуальной машине Windows 11 Pro (сборка 26200) перед тем, как
был записан. Ничего теоретического. Смотрите
docs/technical-writeup.md для доказательств, помеченных по
уровню уверенности — и Как это было создано для того, что эта
проверка на самом деле включала.
История
В 2026 году ФБР отследило подозреваемого из Scattered Spider, который менял IP-адреса через VPN в трёх странах. Его выдал GDID — идентификатор устройства, который Microsoft привязывает к установке Windows и передаёт правоохранительным органам по повестке. Он не меняется при смене IP-адреса. Этот репозиторий разбирает этот идентификатор по частям и показывает, что вы можете реально с ним сделать.
Что такое GDID на самом деле
Не аппаратный хэш — 64-битный MSA Device PUID, сгенерированный login.live.com, кэшируемый
локально в реестре, зарегистрированный в графе Device Directory Service от Microsoft и
передаваемый через Delivery Optimization.
wlidsvc ── mint ──► PUID from login.live.com
│ cached at HKCU\SOFTWARE\Microsoft\IdentityCRL\ExtendedProperties\LID
CDPSvc / CDPUserSvc ── register ──► Device Directory Service (dds.microsoft.com)
│
DoSvc ── report ──► UCDOStatus.GlobalDeviceId (Azure Monitor)
Значение LID в реестре (hex) соответствует серверному значению g:<decimal>. Все PUID устройств Windows
находятся в пространстве имён 0x0018… (проверено: наше тестовое значение и значение из судебных документов попадают в него).
Быстрый старт
Все скрипты написаны на PowerShell, содержат только ASCII и работают в любой кодовой странице. Откройте PowerShell с повышенными правами.
# 1. See your own GDID and which parts of the chain are active (read-only, safe)
powershell -ExecutionPolicy Bypass -File .\audit\Get-GDID-Audit.ps1
# 2. Preview what the mitigation would change (no changes yet)
powershell -ExecutionPolicy Bypass -File .\mitigate\Disable-GDID-Services.ps1
powershell -ExecutionPolicy Bypass -File .\mitigate\Block-GDID-Endpoints.ps1
# 3. Apply it: stop the report chain + blackhole its endpoints, keep MSA working
powershell -ExecutionPolicy Bypass -File .\mitigate\Disable-GDID-Services.ps1 -Apply
powershell -ExecutionPolicy Bypass -File .\mitigate\Block-GDID-Endpoints.ps1 -Apply
# Undo everything
powershell -ExecutionPolicy Bypass -File .\mitigate\Revert-GDID.ps1
Сначала протестируйте в виртуальной машине со снимком. Мера защиты отключает системные службы.
Что делает каждая часть
| Путь | Назначение | Вносит изменения? |
|---|---|---|
audit/Get-GDID-Audit.ps1 | Читает ваш GDID + состояние цепочки из 5 служб | Нет |
audit/Get-GDID-Traffic.ps1 | Определяет реальные сетевые конечные точки цепочки | Нет |
mitigate/Block-GDID-Endpoints.ps1 | Блокирует конечные точки DDS/DO в hosts (сохраняет login.live.com) | С -Apply |
mitigate/Disable-GDID-Services.ps1 | Отключает CDPSvc/DoSvc/CDPUserSvc (сохраняет wlidsvc) | С -Apply |
mitigate/Revert-GDID.ps1 | Восстанавливает службы + очищает hosts | Да |
experiments/ | Проверки, требующие снимка, для подтверждения выводов | Разрушительные, требуют снимка |
docs/ | Техническое описание с источниками + FAQ | — |
Что мы доказали (а что не работает)
- Чтение вашего GDID работает. Он прямо там, в реестре.
- Удаление — косметическая мера. Удалите ключ, перезапустите
wlidsvc, запустите любое приложение Microsoft — он вернётся идентичным с сервера. Он привязан к вашей учётной записи. - Отключение «телеметрии» (DiagTrack) ничего не даёт. GDID передаётся через CDP/Delivery Optimization, а не через классическую телеметрию. Этот распространённый совет ошибочен.
- Вы можете заглушить передачу данных без выхода из системы. Отключите службы CDP/DO и
заблокируйте их конечные точки; цепочка замолчит, а ваша учётная запись Microsoft продолжит
работать. Предупреждение:
DoSvcотказывается отSet-Service, даже если вы администратор — он отключается через реестрStart=4(см. описание). - Прошлого не вернуть. PUID уже существует на стороне сервера. Блокировка уменьшает будущую корреляцию; она не отменяет того, что было отправлено.
Компромиссы
Отключение этих служб нарушает одноранговое кэширование Delivery Optimization, Phone Link /
«Continue on PC» и общий доступ поблизости. wlidsvc и login.live.com не затрагиваются, поэтому
вход в учётную запись Microsoft продолжает работать.
Документация
docs/technical-writeup.md— полная цепочка, пути в реестре, конечные точки и каждое утверждение, помеченное по уровню уверенности ([COURT],[OBSERVED],[STATIC],[NO-GDID VÉRIFIÉ]).docs/FAQ.md— краткие ответы на очевидные вопросы.
Как это было создано
Этот проект был исследован и написан с серьёзной помощью ИИ (Claude). История коммитов говорит об этом, и этот раздел тоже — вам не придётся копаться в поисках этой информации.
Что это значит на практике, честно:
- ИИ управлял исследованием. Он читал материалы обратной разработки, выстраивал карту цепочки служб, предлагал гипотезы для проверки и написал большую часть PowerShell и текста, который вы читаете.
- Я сам запускал каждый тест на своей собственной виртуальной машине. Windows 11 Pro, сборка 26200, в VMware, вход в реальную учётную запись Microsoft, снимок перед каждым разрушительным шагом. GDID на скриншотах принадлежит этой виртуальной машине, поэтому я спокойно его показываю.
- Важные утверждения проверялись вручную, а не принимались на веру. Удаление ключа
LIDи перезапускwlidsvcдействительно возвращает тот же самый идентификатор, как только любое приложение Microsoft запрашивает его — я видел это своими глазами.DiagTrackбыл уже остановлен на этой виртуальной машине, а GDID всё ещё был там, что и похоронило совет «просто отключите телеметрию».DoSvcдействительно отказывается отSet-Serviceдаже от имени администратора, поэтому скрипт действует через реестр. Каждое из этих утверждений начиналось как гипотеза ИИ, и несколько из них были ошибочными, пока не были проверены. - Что не моё, я не приписываю себе. Моё тестирование было на Windows 11 Pro с учётной записью Microsoft. Случай с локальной учётной записью оставался открытым вопросом, пока @Berbe не добавил наблюдение на Windows 10 LTSC 19044.7417 (LID/GDID существует с момента установки даже с локальной учётной записью). В описании записано, с какой сборки взято каждое наблюдение — если утверждение не содержит номера сборки, считайте его менее надёжным.
Если вы найдёте здесь утверждение, которое не подтверждается на вашей машине, откройте issue с вашим номером сборки — это ценнее для репозитория, чем простое согласие.
Благодарности
- Основная обратная разработка:
SmtimesIWndr/gdid-reversal. - Наблюдение о локальной учётной записи на Windows 10 LTSC: @Berbe (PR #3).
- Факты дела: United States v. Peter Stokes, N.D. Ill., июль 2026 г.
Лицензия
MIT. Защитный инструментарий, ориентированный на приватность. Используйте его на машинах, которыми владеете.