
Windows GDID 장치 식별자(VPN을 통해서도 해커를 추적했던 ID)를 읽고, 이해하고, 침묵시키세요. 실제 Win11 VM에서 검증되었습니다. 솔직히 말하면: 보고를 중단시킬 뿐, 익명으로 만들어 주지는 않습니다.
Windows GDID(Global Device Identifier)를 읽고, 이해하고, 침묵시키세요 — VPN을 사용하던 용의자를 FBI가 찾아내는 데 도움을 준, 계정별로 숨겨진 장치 ID입니다.
⚠️ 먼저 솔직한 면책 고지: 이 도구는 GDID를 삭제하지 않으며 여러분을 익명으로 만들어 주지도 않습니다. GDID는 로그인하는 순간부터 Microsoft 계정에 묶여 Microsoft 서버에 존재합니다.
no-gdid는 여러분의 컴퓨터가 GDID를 재등록하고 보고하는 것을 막을 뿐 — Microsoft가 이미 보유한 것을 되돌릴 수는 없습니다. 민감한 작업에서 진정한 프라이버시를 원한다면, 유일하게 신뢰할 수 있는 답은 Windows에 의존하지 않는 것입니다.
여기 기록된 모든 발견은 문서화되기 전에 실제 Windows 11 Pro VM(빌드 26200)에서 재현되었습니다. 이론적인 내용은 없습니다. 증거는 신뢰도 수준별로 태그가 붙어 docs/technical-writeup.md에 있으며, 그 검증이 실제로 무엇을 포함했는지는 How this was built를 참고하세요.
2026년, FBI는 세 나라에 걸쳐 VPN으로 IP를 바꾸던 Scattered Spider 용의자를 추적했습니다. 그를 드러낸 것은 GDID였습니다 — Microsoft가 Windows 설치에 연결하고 소환장에 따라 법 집행 기관과 공유하는 장치 식별자입니다. 이는 IP를 바꿔도 변하지 않습니다. 이 저장소는 그 식별자를 분해하고, 이에 대해 실제로 무엇을 할 수 있는지 보여줍니다.
하드웨어 해시가 아니라, login.live.com이 발급하고, 레지스트리에 로컬로 캐시되며, Microsoft의 Device Directory Service 그래프에 등록되고, Delivery Optimization을 통해 보고되는 64비트 MSA Device PUID입니다.
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(16진수)는 서버 값 g:<10진수>에 매핑됩니다. 모든 Windows 장치 PUID는
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
먼저 스냅샷이 있는 VM에서 테스트하세요. 이 완화 조치는 시스템 서비스를 비활성화합니다.
| 경로 | 목적 | 쓰기 여부 |
|---|---|---|
audit/Get-GDID-Audit.ps1 | GDID와 5개 서비스 체인의 상태를 읽음 | 아니요 |
audit/Get-GDID-Traffic.ps1 | 체인의 실제 네트워크 엔드포인트를 매핑함 | 아니요 |
mitigate/Block-GDID-Endpoints.ps1 | hosts에서 DDS/DO 엔드포인트를 블랙홀 처리함 (login.live.com은 유지) | -Apply 사용 시 |
mitigate/Disable-GDID-Services.ps1 | CDPSvc/DoSvc/CDPUserSvc를 비활성화함 (wlidsvc는 유지) | -Apply 사용 시 |
mitigate/Revert-GDID.ps1 | 서비스를 복원하고 hosts를 정리함 | 예 |
experiments/ | 발견 사항을 입증하는 데 사용된 스냅샷 기반 프로브 | 파괴적, 조건부 실행 |
docs/ | 출처가 명시된 기술 문서 + FAQ | — |
wlidsvc를 재시작한 뒤 아무 Microsoft
앱이나 건드리면 — 서버로부터 동일하게 되돌아옵니다. 이는 계정에 고정되어 있습니다.DoSvc는 관리자 권한으로도 Set-Service를 거부합니다 — 레지스트리 Start=4를
통해 비활성화됩니다 (문서 참조).이 서비스들을 비활성화하면 Delivery Optimization 피어 캐싱, Phone Link /
"Continue on PC", 근거리 공유가 중단됩니다. Microsoft 계정 로그인이 계속 작동하도록
wlidsvc와 login.live.com은 그대로 둡니다.
docs/technical-writeup.md — 전체 체인, 레지스트리
경로, 엔드포인트, 그리고 신뢰도별로 태그된 모든 주장 ([COURT], [OBSERVED],
[STATIC], [NO-GDID VÉRIFIÉ]).docs/FAQ.md — 명백한 질문들에 대한 간단한 답변.이 프로젝트는 상당한 AI 지원(Claude)을 통해 조사되고 작성되었습니다. 커밋 이력에도 그렇게 나와 있고, 이 섹션에도 그렇게 나와 있습니다 — 굳이 찾아볼 필요가 없어야 합니다.
그것이 실제로 의미하는 바를 솔직히 말하면:
LID 키를 삭제하고
wlidsvc를 재시작하면 Microsoft 앱이 요청하는 순간 정말로 동일한 식별자가 돌아옵니다 —
직접 지켜봤습니다. 해당 VM에서 DiagTrack은 이미 중지되어 있었는데도 GDID는 여전히
존재했고, 이것이 "그냥 텔레메트리를 끄라"는 조언을 무효화했습니다. DoSvc는 관리자
권한으로도 정말로 Set-Service를 거부하며, 그래서 스크립트가 레지스트리를 거칩니다.
이들 각각은 AI 가설로 시작했고, 테스트 전까지 여러 개는 틀렸습니다.LID/GDID가 존재함). 문서에는 각 발견 사항이 어느 빌드에서
나왔는지 기록되어 있습니다 — 주장에 빌드 번호가 없다면 더 약하게 취급하세요.여기서 여러분의 머신에서 성립하지 않는 주장을 발견하면, 빌드 번호와 함께 이슈를 열어주세요 — 그것이 이 저장소에 동의보다 더 가치 있습니다.
SmtimesIWndr/gdid-reversal.MIT. 방어적이고 프라이버시 지향적인 도구입니다. 소유한 기기에서 사용하십시오.