
no-gdid — Updated!
اقرأ وافهم وأسكت معرّف جهاز Windows GDID (المعرّف الذي تعقّب المخترق عبر VPN). تم التحقق منه على جهاز افتراضي حقيقي يعمل بنظام Win11. بصراحة: إنه يوقف الإبلاغ، لكنه لا يجعلك مجهول الهوية.
no-gdid
اقرأ وافهم وأسكِت معرّف الجهاز العام في Windows (GDID) — معرّف الجهاز الخفي المرتبط بالحساب والذي ساعد مكتب التحقيقات الفيدرالي (FBI) في تعقّب مشتبه به كان يستخدم VPN.
⚠️ إخلاء مسؤولية صريح من البداية: لا تقوم هذه الأداة بمسح الـ GDID الخاص بك ولا تجعل هويتك مجهولة. الـ GDID يعيش على خوادم Microsoft، مرتبطًا بحساب Microsoft لديك، منذ لحظة تسجيل دخولك.
no-gdidتمنع جهازك من إعادة تسجيله والإبلاغ عنه — لكنها لا تستطيع التراجع عمّا تملكه Microsoft بالفعل. من أجل خصوصية حقيقية في الأعمال الحساسة، الحل الوحيد الموثوق هو عدم الاعتماد على Windows.
تم إعادة إنتاج كل نتيجة هنا على جهاز افتراضي حقيقي يعمل بنظام Windows 11 Pro (build 26200) قبل تدوينها. لا شيء نظري. انظر إلى docs/technical-writeup.md للحصول على الأدلة، المُصنَّفة حسب مستوى الثقة — وإلى كيف تم بناء هذا لمعرفة ما تضمّنه هذا التحقق فعلًا.
القصة
في 2026، تعقّب مكتب التحقيقات الفيدرالي (FBI) مشتبهًا به من مجموعة Scattered Spider كان يبدّل عناوين IP عبر VPN في ثلاثة بلدان. ما فضح أمره كان GDID — وهو معرّف جهاز تربطه Microsoft بتثبيت Windows وتشاركه مع سلطات إنفاذ القانون عند صدور استدعاء رسمي (subpoena). لا يتغيّر هذا المعرّف عندما تغيّر عنوان IP الخاص بك. هذا المستودع يفكّك هذا المعرّف ويُريك ما يمكنك فعله حياله فعلًا.
ما هو الـ GDID فعلًا
ليس تجزئة عتاد (hardware hash) — بل PUID جهاز 64-بت من نوع MSA تُصدِره login.live.com، ويُخزَّن محليًا في السجل (registry)، ويُسجَّل في الرسم البياني لخدمة 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>. جميع PUIDs الخاصة بأجهزة Windows تقع في نطاق 0x0018… namespace (تم التحقق: قيمتنا التجريبية والقيمة الواردة في ملف المحكمة تشتركان في هذا النطاق).
بدء سريع
جميع البرامج النصية مكتوبة بـ PowerShell، وبأحرف ASCII فقط، وتعمل تحت أي ترميز أحرف (codepage). افتح PowerShell بصلاحيات مرتفعة (elevated).
# 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) مع لقطة (snapshot) أولًا. فإجراءات التخفيف تعطّل خدمات النظام.
ماذا يفعل كل جزء
| المسار | الغرض | هل يكتب؟ |
|---|---|---|
audit/Get-GDID-Audit.ps1 | يقرأ الـ GDID الخاص بك + حالة سلسلة الخدمات الخمس | لا |
audit/Get-GDID-Traffic.ps1 | يرسم خريطة نقاط الاتصال الشبكية الفعلية للسلسلة | لا |
mitigate/Block-GDID-Endpoints.ps1 | يعزّل endpoints الخاصة بـ DDS/DO في ملف hosts (يُبقي login.live.com) | مع -Apply |
mitigate/Disable-GDID-Services.ps1 | يعطّل CDPSvc/DoSvc/CDPUserSvc (يُبقي wlidsvc) | مع -Apply |
mitigate/Revert-GDID.ps1 | يستعيد الخدمات وينظّف ملف hosts | نعم |
experiments/ | فحوصات محكومة بلقطات (snapshots) استُخدمت لإثبات النتائج | تخريبيّة، محكومة |
docs/ | توثيق تقني بمصادر + أسئلة شائعة | — |
ما أثبتناه (وما لا يعمل)
- قراءة الـ GDID الخاص بك تعمل. إنه هناك مباشرة في السجل.
- حذفه تجميلي فقط. احذف المفتاح، وأعد تشغيل
wlidsvc، والمس أي تطبيق من Microsoft — سيعود مطابقًا تمامًا من الخادم. إنه مرتبط بحسابك. - إيقاف "القياس عن بُعد" (DiagTrack) لا يفعل شيئًا. الـ GDID ينتقل عبر CDP/Delivery Optimization، وليس عبر القياس عن بُعد التقليدي. تلك النصيحة الشائعة خاطئة.
- يمكنك إسكات الإبلاغ دون تسجيل الخروج. عطّل خدمات CDP/DO واعزّل endpoints الخاصة بها؛ ستسكت السلسلة بينما يستمر حساب Microsoft لديك في العمل. تحذير:
DoSvcيرفضSet-Serviceحتى مع صلاحيات المسؤول — يُعطَّل عبر السجل بقيمةStart=4(انظر التوثيق). - الماضي لن يعود. الـ PUID موجود فعلًا في جهة الخادم. الحظر يقلل الارتباط المستقبلي؛ لكنه لا يسحب ما تم إرساله.
المفاضلات
تعطيل هذه الخدمات يكسر التخزين المؤقت من نظير إلى نظير (peer caching) في Delivery Optimization، وPhone Link / "Continue on PC"، والمشاركة القريبة (nearby sharing). تُترك wlidsvc وlogin.live.com وشأنهما حتى يستمر تسجيل الدخول بحساب Microsoft في العمل.
التوثيق
docs/technical-writeup.md— السلسلة الكاملة، ومسارات السجل، وendpoints، وكل ادعاء مُصنَّف حسب مستوى الثقة ([COURT]،[OBSERVED]،[STATIC]،[NO-GDID VÉRIFIÉ]).docs/FAQ.md— إجابات قصيرة عن الأسئلة الواضحة.
كيف تم بناء هذا
تم التحقيق في هذا المشروع وكتابته بمساعدة كبيرة من الذكاء الاصطناعي (Claude). سجل الالتزامات (commit history) يقول ذلك، وهذه الفقرة تقوله أيضًا — لا ينبغي أن تضطر إلى التنقيب لمعرفته.
ماذا يعني ذلك عمليًا، بصراحة:
- الذكاء الاصطناعي قاد التحقيق. قرأ أعمال الهندسة العكسية، ورسم خريطة سلسلة الخدمات، واقترح الفرضيات التي ينبغي اختبارها، وكتب معظم أكواد PowerShell والنص الذي تقرؤه الآن.
- أنا أجريت كل اختبار بنفسي، على جهازي الافتراضي الخاص. Windows 11 Pro build 26200 على VMware، مع تسجيل دخول إلى حساب Microsoft حقيقي، ولقطة (snapshot) قبل كل خطوة تخريبية. الـ GDID في لقطات الشاشة هو خاص بذلك الجهاز الافتراضي، ولهذا أرتاح لعرضه.
- الادعاءات المهمة تحققت منها يدويًا، ولم أقبلها كما هي. حذف مفتاح
LIDوإعادة تشغيلwlidsvcيعيد فعلًا نفس المعرّف بمجرد أن يطلبه أي تطبيق من Microsoft — لقد شاهدت ذلك يحدث. كانتDiagTrackمتوقفة بالفعل على ذلك الجهاز الافتراضي ومع ذلك كان الـ GDID ما يزال موجودًا، وهذا ما قضى على نصيحة "فقط أوقف القياس عن بُعد".DoSvcيرفض فعلًاSet-Serviceبصلاحيات المسؤول، ولهذا يمر السكريبت عبر السجل بدلًا من ذلك. كل واحدة من هذه بدأت كفرضية من الذكاء الاصطناعي، وعدة منها كانت خاطئة حتى تم اختبارها. - ما ليس من عملي، لا أدّعيه. كان اختباري على Windows 11 Pro مع حساب Microsoft. حالة الحساب المحلي كانت سؤالًا مفتوحًا هنا حتى ساهم @Berbe بملاحظة على Windows 10 LTSC 19044.7417 (يوجد
LID/GDID منذ التثبيت حتى مع حساب محلي فقط). التوثيق يسجّل من أي build جاءت كل نتيجة — إذا كان الادعاء لا يحمل رقم build، فتعامل معه على أنه أضعف.
إذا وجدت ادعاءً هنا لا ينطبق على جهازك، افتح issue مع رقم الـ build الخاص بك — فهذا يساوي للمستودع أكثر من مجرد الموافقة.
الاعتمادات
- الهندسة العكسية الأساسية:
SmtimesIWndr/gdid-reversal. - ملاحظة الحساب المحلي على Windows 10 LTSC: @Berbe (PR #3).
- وقائع القضية: United States v. Peter Stokes، N.D. Ill.، يوليو 2026.
الترخيص
MIT. أدوات دفاعية موجّهة للخصوصية. استخدمها على أجهزة تملكها.