
Lisez, comprenez et neutralisez l'identifiant de périphérique GDID de Windows (l'ID qui a permis de tracer un hacker à travers un VPN). Vérifié sur une vraie VM Win11. Honnête : cela désactive la remontée d'informations, cela ne vous rend pas anonyme.
Lisez, comprenez et faites taire l'identifiant global d'appareil Windows (GDID) — l'identifiant d'appareil caché par compte qui a aidé le FBI à localiser un suspect qui utilisait un VPN.
⚠️ Avertissement honnête d'emblée : cet outil n'efface pas votre GDID et ne vous rend pas anonyme. Le GDID vit sur les serveurs de Microsoft, lié à votre compte Microsoft, dès que vous vous connectez.
no-gdidempêche votre machine de le ré-enregistrer et de le signaler — il ne peut pas effacer ce que Microsoft détient déjà. Pour une véritable confidentialité sur un travail sensible, la seule réponse fiable est de ne pas compter sur Windows.
Chaque constat présenté ici a été reproduit sur une vraie VM Windows 11 Pro (build 26200) avant
d'être consigné. Rien n'est théorique. Voir
docs/technical-writeup.md pour les preuves, étiquetées par
niveau de confiance — et Comment ce projet a été construit pour ce que cette
vérification impliquait réellement.
En 2026, le FBI a suivi un suspect de Scattered Spider qui changeait d'adresse IP via un VPN dans trois pays. Ce qui l'a trahi, c'est un GDID — un identifiant d'appareil que Microsoft associe à une installation Windows et partage avec les forces de l'ordre sur subpoena. Il ne change pas quand vous changez d'adresse IP. Ce dépôt démonte cet identifiant et montre ce que vous pouvez réellement faire à ce sujet.
Pas un hash matériel — c'est un PUID d'appareil MSA 64 bits émis par login.live.com, mis en cache
localement dans le registre, enregistré dans le graphe du Device Directory Service de Microsoft,
et signalé via 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)
Le LID du registre (hex) correspond à la valeur serveur g:<decimal>. Tous les PUID d'appareils
Windows se situent dans l'espace de noms 0x0018… (vérifié : notre valeur de test et celle de l'acte
judiciaire partagent cet espace de noms).
Tous les scripts sont en PowerShell, ASCII uniquement, et s'exécutent sous n'importe quel codepage. Ouvrez une PowerShell élevée.
# 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
Testez d'abord dans une VM avec un snapshot. La mesure d'atténuation désactive des services système.
wlidsvc, utilisez
n'importe quelle application Microsoft — elle revient à l'identique depuis le serveur. C'est ancré à votre compte.DoSvc refuse Set-Service même en tant qu'administrateur — il est
désactivé via le registre Start=4 (voir la documentation).Désactiver ces services casse la mise en cache entre pairs de Delivery Optimization, Phone Link /
« Continue on PC », et le partage à proximité. wlidsvc et login.live.com ne sont pas touchés
afin que la connexion au compte Microsoft continue de fonctionner.
docs/technical-writeup.md — toute la chaîne, les chemins de registre, les points de terminaison, et chaque
affirmation étiquetée par niveau de confiance ([COURT], [OBSERVED],
[STATIC], [NO-GDID VÉRIFIÉ]).docs/FAQ.md — des réponses courtes aux questions évidentes.Ce projet a été investigué et rédigé avec une forte assistance de l'IA (Claude). L'historique des commits le dit, tout comme cette section — vous ne devriez pas avoir à creuser pour le trouver.
Ce que cela signifie concrètement, en toute honnêteté :
LID
et redémarrer wlidsvc fait vraiment revenir le même identifiant dès qu'une application
Microsoft le demande — je l'ai vu se produire. DiagTrack était déjà arrêté sur
cette VM et le GDID était toujours là, ce qui a tué le conseil « il suffit de désactiver
la télémétrie ». DoSvc refuse vraiment Set-Service en tant qu'administrateur, c'est pourquoi le
script passe par le registre à la place. Chacune de ces affirmations a commencé comme une hypothèse de l'IA
et plusieurs d'entre elles se sont révélées fausses à l'épreuve des tests.LID/GDID existe dès l'installation même avec un compte local uniquement). La
documentation indique de quel build provient chaque constat — si une affirmation n'est accompagnée d'aucun numéro
de build, considérez-la comme moins fiable.Si vous trouvez ici une affirmation qui ne se vérifie pas sur votre machine, ouvrez une issue avec votre numéro de build — cela vaut plus pour ce dépôt qu'un simple accord.
SmtimesIWndr/gdid-reversal.MIT. Un outillage défensif, orienté confidentialité. Utilisez-le sur les machines qui vous appartiennent.
| Chemin | Objectif | Écrit ? |
|---|
audit/Get-GDID-Audit.ps1 | Lit votre GDID + l'état de la chaîne de 5 services | Non |
audit/Get-GDID-Traffic.ps1 | Cartographie les véritables points de terminaison réseau de la chaîne | Non |
mitigate/Block-GDID-Endpoints.ps1 | Met en trou noir les points de terminaison DDS/DO dans hosts (conserve login.live.com) | Avec -Apply |
mitigate/Disable-GDID-Services.ps1 | Désactive CDPSvc/DoSvc/CDPUserSvc (conserve wlidsvc) | Avec -Apply |
mitigate/Revert-GDID.ps1 | Restaure les services + nettoie hosts | Oui |
experiments/ | Sondes protégées par snapshot utilisées pour prouver les constats | Destructives, protégées par snapshot |
docs/ | Documentation technique sourcée + FAQ | — |