
بحث شخصي في بنية Xbox Series
| الحقل | القيمة |
|---|---|
| التاريخ | 9-12 مارس 2026 + 7-? يوليو 2026 |
| العتاد | Xbox Series S (الاسم الرمزي: Lockhart) |
| إصدار نظام التشغيل | 26100.7010.amd64fre.xb_flt_2602ge.260212-1010 + 26100.8561.amd64fre.xb_flt_2606ge.260609-2200 |
| طريقة الوصول | وضع المطور + SSH + REST API + وصلة مشاركة ملفات NTFS |
هذا التقرير هو تحليل ثابت وديناميكي للبنية الداخلية لـ Xbox Series S، أُجري بالكامل عبر البنية التحتية الرسمية لوضع المطور من Microsoft. لم تُستخدم أي ثغرات أو مخالفات للسياسات؛ كانت جميع وسائل الوصول ضمن حدود برنامج المطور الفردي.
يحتوي هذا على تفاصيل تبدأ من المكوّنات عالية المستوى المستخدمة في اللعب، وصولاً إلى أدنى مكوّنات برامج تشغيل النظام على مستوى النظام. من المتوقع أن تكون معظم هذه التفاصيل مماثلة أيضاً بالنسبة لـ Xbox One.
تم استخدام الذكاء الاصطناعي لتنسيق البحث الأولي الكبير (أكثر من 200 مخرجات تحليل وأكثر من 50 ملاحظة عشوائية) بسرعة كبيرة في هذا المستند. جميع التعديلات المستقبلية تُجرى يدوياً.
إذا رأيت أن أي نقطة في هذا غير واضحة، أو غير موثقة جيداً، أو خاطئة، فلا تتردد في مراسلتي، أو إذا كان لديك أي إجابات على أسئلتي (في القسم 12) فسيكون ذلك رائعاً أيضاً. يتم حذف GUIDs والأنماط الشائعة الأخرى في خطاف pre-commit تحسباً لترك أي شيء يحدد هوية حسابي.
الكثير مما أعمل عليه عبارة عن افتراضات، لذا قد يكون غير دقيق، وسيتغير مع حصولي على مزيد من المعلومات وفحص المزيد من الملفات الثنائية.
لأسباب قد تخمّنها، لن أشارك بأي حال من الأحوال الملفات الثنائية المباشرة، أو مخرجات التفكيك، أو أي شيء يُعتبر ملكية فكرية لـ Microsoft أو شركاتها التابعة.
ERA = GameOS Partition
SRA = SystemOS Partition
HT = Kinect (possibly "Human Tracking"?)
Arden = Xbox Series X/S GPU Stack
NewBe = Arden shader compiler
توجد إدارة لنظام التشغيل المضيف (Host OS) لبرامج التشغيل خارج نموذج SRA/ERA المعروف، انظر نموذج الثقة (الأقسام 4.2، 17.5). يتم تحميل XVIO.SYS وXSraFlt.sys مباشرة بواسطة الهايبرفايزر (عبر HostOS) قبل تهيئة Windows، وهما غائبان عن جميع وحدات التخزين المتاحة. لا يمكن العبث بهما حتى مع الوصول الكامل إلى النواة، وهو الحد الأمني الأساسي.
تم تعطيل HVCI عمداً (القسم 18). يؤكد IsSecureKernelRunning = 0x0 أن النواة الآمنة (VTL1) غير قيد التشغيل. سلامة الكود تكون عند التحميل فقط، مما يترك نافذة TOCTOU بمجرد تعيين الملفات الثنائية. هذه مقايضة أداء متعمدة؛ الحد الأمني هو قسم الهايبرفايزر، وليس حماية الذاكرة داخل القسم.
تعرض وصلة NTFS نظام ملفات SystemOS الكامل عبر الشبكة (القسم 1.2). أمر واحد mklink /J من قشرة SSH يعيّن C:\ أو أي شيء آخر في مشاركة ملفات Device Portal، مما يجعل كل ملف ثنائي للنظام قابلاً للقراءة عن بُعد دون مصادقة إضافية تتجاوز رمز PIN الخاص بوضع المطور.
البنية عبر الأقسام شبه موثقة بالكامل (الأقسام 4، 14، 26-28). يتواصل قسم ألعاب ERA مع SystemOS حصرياً عبر قنوات بوساطة الهايبرفايزر: مخازن حلقية XVIO للإدخال/الإخراج، وترجمة GPA للذاكرة المشتركة، وHvSocket للاتصال بين العمليات، وأقسام منفذ ALPC لتسليم framebuffer بدون نسخ (zero-copy) بموجب "Host OS" الوالد.
وصلة Deploy:\ تتجاوز قيود الوصول المحلي (القسم 25). يكون حجم Windows Update متاحاً فقط عبر مشاركة الشبكة (S:\Deployment\SoftwareDistribution\) بسبب بعض التناقض في مكان ما (ربما xrfssvc.exe؟).
معظم الملفات الثنائية تحتوي فقط على سلاسل وصفية، لم أكن أعلم ذلك حتى اليوم لأنني لم أكن أستخدم Windows لأي شيء سوى الاتصال الفعلي بالكونسول. غالباً ما تكون مملة (مثل XVUH، XVMCTRL) لكن في أحيان أخرى تكون وصفية جداً (مثل Durango Virtual XVNC Bus Driver، Xbox Remote File System Service).
أُجريت جميع الاختبارات على جهاز Xbox Series S تجزئة واحد في وضع المطور. تعكس النتائج العديد من الإصدارات، لكنني سأقوم في النهاية بمقارنة الإصدارات وتوثيق ذلك. قد تختلف النتائج عبر مراجعات العتاد (Series X، Xbox One) وإصدارات البرامج الثابتة. لم تكن عدة أسطح على مستوى النواة قابلة للوصول: يتم حظر تفريغات النواة الحية بواسطة قيد NoKernelDumps، ولم يتم تعداد سطح IOCTL الخاص بـ xvmctrl.sys بالكامل. تُتتبع الأسئلة المفتوحة في القسم 12.
تم إنشاء الوصول عبر واجهة SSH الخاصة بوضع المطور غير الموثقة رسمياً (ولكن توجد وثائق مجتمعية). وسّعت تقنية وصلة NTFS (القسم 1.2) وصول القراءة من مساحة D:\DevelopmentFiles المؤقتة إلى كامل وحدة تخزين النظام C:\ وجميع وحدات التخزين ذات الأحرف الإضافية. كانت جميع التحليلات للقراءة فقط؛ لم يتم تعديل أي إعدادات للنظام (لم يتم استخدام WdConfig.exe set). يمكن لـ Xbox تشغيل ملفات Windows console الثنائية القياسية x86_64 (مترجمة مع /MT) مباشرة عبر قشرة SSH، والتي استُخدمت لتشغيل أدوات التحليل محلياً.
لم تكن تفريغات النواة متاحة: قيد NoKernelDumps في Device Portal يمنعها على وضع المطور في الأجهزة الاستهلاكية. كانت تفريغات العمليات الحية في وضع المستخدم متاحة واستُخدمت عند الاقتضاء.
يدعم وضع مطور Xbox Visual Studio، ويستخدم هذا SSH:
DevToolsUserتعرض بوابة Device Portal على https://XBOX:11443 مشاركة ملفات NTFS مخفية إلى D:\DevelopmentFiles. من قشرة SSH:```batch
mklink /J D:\DevelopmentFiles\C C:\
يؤدي هذا إلى إنشاء نقطة junction من مساحة عمل المطور المؤقتة إلى جذر محرك الأقراص C:، مما يعرض نظام ملفات SystemOS بالكامل كمشاركة شبكة قابلة للقراءة على:
\\XBOX\DevelopmentFiles\C
يتيح ذلك تشغيل أدوات مثل `dumpbin` من جهاز كمبيوتر مباشرةً مقابل ملفات Xbox الثنائية عبر الشبكة.
---
## 2. هوية نظام التشغيل
| الحقل | القيمة |
|--------------------|-------------------|
| Product Name | Xbox Series S |
| OS Edition | SystemOS |
| Windows NT Version | 10.0 |
| Build Number | 26100 |
| Build String | `26100.8561.amd64fre.xb_flt_2606ge.260609-2200` |
| LCUVer | `10.0.26100.8536` |
| Branch | `xb_flt_2602ge` |
| Build Date | June 09, 2026 |
| Architecture | x64 |
| UEFI Secure Boot | `NotCapable` |
| Console Codename | Lockhart |
| Console Mode | Default |
| Sandbox ID | `XDKS.1` |
يُعرّف نظام التشغيل نفسه باسم **SystemOS**، وليس Windows. يبدو أن فرع البناء `xb_flt_2602ge` هو "fork" متميّز من قاعدة أكواد Windows خاص بـ Xbox، لا يزال مشابهًا جدًا لنظام Windows 11. بعض ثنائيات نظام Windows مطابقة تمامًا لنظيراتها المكتبية، ومبنية باستخدام نفس سلسلة أدوات MSVC، ويُرجَّح أنها مصدرها حزم UUP نفسها. وهذا منفصل عن "Host OS" غير الواضح.
### 2.1 هوية التسجيل
تم تجميد عدة حقول `CurrentVersion` عمدًا، على غرار إصدار Windows المكتبي (لأغراض التوافق مع ألعاب Xbox One في هذه الحالة):
| المفتاح | القيمة | ملاحظات |
|-----|-------|-------|
| `CurrentVersion` | `6.3` | يُبلِّغ داخليًا على أنه Windows 8.1، للتوافق |
| `BuildGUID` | | تم تصفيره/مسحه |
| `InstallDate` | `0` | لا يوجد طابع زمني للتثبيت |
| `EditionID` | `SystemOS` | لا يتم تحديثه أبدًا |
| `ReleaseId` | `2009` | مجمّد عند حقبة Windows 10 20H2؛ لا يزداد أبدًا |
---
## 3. تخطيط وحدات التخزين
يكشف الجهاز عن 13 حرف محرك أقراص، يُفترض أن معظمها [مثل Xbox One، افتراضية بالكامل](https://xboxoneresearch.github.io/wiki/operating-system/xbox-operating-system/)
| محرك الأقراص | التسمية | المحتويات | ملاحظات |
|-------|-------|----------|-------|
| `C:` | System Boot | ملفات نظام تشغيل Windows | قسم SystemOS قياسي |
| `D:` | *(none)* | `DevelopmentFiles\` | مساحة عمل مؤقتة لوضع المطور |
| `G:` | *(none)* | `GameDVR_VideoBuffer` (272MB), `GameDVR_AudioBuffer` (16MB), `GameDVR_AudioBuffer_SysLoopback` (3MB) | مخازن التقاط دائرية خام، ذاكرة مشتركة بين ERA وSystemOS |
| `J:` | Sys Tools | سلسلة أدوات XTF وبرامج التشغيل وQuickActions | انظر القسم 5 |
| `M:` | Misc | يحتوي على طبقات NTFS الخاصة بالجهاز للمكتبات وبرامج التشغيل | قسم SystemOS؟ |
| `N:` | *(none)* | `BlackBox\`, `EtwPlus\`, `CMS\`, `errorstrings\`, `usersettings\` | وحدة تخزين التشخيص والقياس عن بُعد، انظر القسم 3.2 |
| `Q:` | *(none)* | `Users\DevToolsUser\` | الدليل الرئيسي للمستخدم |
| `S:` | *(none)* | `apps\`, `Clip\`, `Deployment\`, `Prefetch\`, `Microsoft\`, `ProgramData\` | يُرجَّح أنها وحدة تخزين Host OS (تحتوي أيضًا على التطبيقات الافتراضية والموارد الأخرى) |
| `T:` | *(none)* | `GameDVR\`, `Update\`, junctions إلى Harddisk16 | بيانات وصفية لـ GameDVR + خط أنابيب التحديث |
| `U:` | *(none)* | `ShellState\`, `BackCompatLicenses\`, `UserDataCache\` | حالة Shell والمستخدم |
| `V:` | *(none)* | *(empty)* | غرض غير معروف |
| `X:` | SystemAux | `Apps\`, `Catalog000.bin` (2.3MB) | ثنائيات تطبيقات النظام: 63 تطبيقًا بما في ذلك `AdsLauncher`, `Xbox.DiscordComponent`, `Xbox.SingleUserProxy`, `Xbox.NTSCaptivePortal`, `Xbox.Xmap`, `Xbox.XboxIDP`، انظر القسم 3.3 |
| `Y:` | SystemAuxF | `Apps\`, `Catalog000.bin` (6.5MB) | ثنائيات تطبيقات النظام الثانوية |
بالإضافة إلى ذلك، يوجد `\\.\HarddiskVolume10` بدون تعيين حرف محرك أقراص. توجد وحدة تخزين WER (Windows Error Reporting) مخفية تحتوي على `CrashDumps\` و`ReportArchive\` و`ReportQueue\` و`Temp\`. يوجد على الأقل **18 كائن جهاز قرص فعلي** (`PhysicalDrive0` حتى `PhysicalDrive17`)، وكلها حاضرة ككائنات kernel لكن يتعذر الوصول إليها على المستوى الخام من مساحة المستخدم. يوجد `HarddiskVolume16` و`HarddiskVolume18` كوحدات تخزين حقيقية قابلة للوصول لكنها محجوبة عن `DevToolsUser`.
### 3.1 مسارات أجهزة Kernel المخفية
توجد المسارات التالية ككائنات أجهزة kernel لكن يتعذر الوصول إليها من مساحة المستخدم (عادةً):
- `\??\Deploy:\` وحدة تخزين خط أنابيب التحديث/النشر لنظام Xbox (يمكن الوصول إليها عبر junction على مشاركة الشبكة عند `S:\Deployment\`)
### 3.2 وحدة تخزين التشخيص N:\
يتم إخفاء عدة أدلة على `N:\` بنشاط بواسطة برنامج تشغيل مرشح نظام الملفات على مستوى kernel، إذ تظهر فارغة لجميع أدوات مساحة المستخدم لكن تم التأكيد على أنه يُكتب إليها أثناء التشغيل:
| المسار | الحالة | ملاحظات |
|------|--------|-------|
| `N:\EtwPlus\` | **مخفي بواسطة kernel** | المحتويات مخفية بواسطة برنامج تشغيل مرشح نظام الملفات |
| `N:\BlackBox\` | قابل للوصول | يحتوي على بيانات تتبع أخطاء ETL الخاصة بـ Xbox |
| `N:\errorstrings\en-US.json` | قابل للوصول | قاعدة بيانات أخطاء Xbox الكاملة تحتوي على 797 إدخالًا، انظر القسم 3.4 |
| `N:\usersettings\18\public\` | قابل للوصول | صورة اللاعب كاملة الجودة مخزنة كملفات PNG بدون امتداد (1080×1080 RGBA، تنسيق PNG قياسي) |
يخزّن `N:\usersettings\18\public\` كلاً من `AppDisplayPic` و`GameDisplayPic` كملفات بدون امتداد. يؤكد تجزئة SHA256 أنهما متطابقان بايتًا ببايت، فصورة عرض التطبيق وصورة اللاعب هما نفس الملف المكتوب في مسارين.
### 3.3 X:\ SystemAux
يحتوي `X:\ht\versions\` على حزمة رؤية Kinect نشطة مع **ثلاثة إصدارات متزامنة** مثبتة جنبًا إلى جنب (1.0.0 و1.0.1 و1.0.2)، بإجمالي 119MB. وهي تقابل إصدارات `vvtechs.dll` بأحجام 1.67MB->1.70MB->1.85MB على التوالي.
**نماذج التعلم الآلي لتتبع الجسم** (لكل دليل إصدار):
| الملف | الحجم | الغرض |
|------|------|---------|
| `exemplardb.xmplr` | 36.7MB | قاعدة بيانات أمثلة لوضعية الجسم الكاملة |
| `FernsModel.bin` | 932KB | كاشف النقاط الرئيسية للعمق (مصنف غابات عشوائية) |
| `HeadPosition.mshdf` | 262–393KB | مقدّر مفصل الرأس (يختلف حسب الإصدار) |
| `LSVMGripReleaseRight.gbd` | 7.5KB | مصنف SVM كامن للإمساك/الإفلات، اليد اليمنى |
**نماذج التعلم الآلي لتتبع الوجه** (على مستوى النظام، `C:\Windows\System32\ht\`):
| الملف | الحجم | الغرض |
|------|------|---------|
| `FaceDetector.bin` | 3.0MB | تحديد مواضع الوجوه في الإطار |
| `FaceRecognition.bin` | 3.4MB | التعرف على الهوية عبر العمق/الأشعة تحت الحمراء |
| `FaceRecognition_Color.bin` | 5.9MB | التعرف على الهوية عبر قناة الألوان |
| `ExpressionRandomForest.model` | 150KB | مصنف المشاعر |
| `EyeLeftRandomForest.model` | 55KB | حالة العين اليسرى |
| `EyeRightRandomForest.model` | 65KB | حالة العين اليمنى |
| `LookingAwayRandomForest.model` | 42KB | كشف النظر/الانتباه |
| `MouthOpenRandomForest.model` | 58KB | حالة فتح الفم |
| `MouthMovedRandomForest.model` | 35KB | حركة الشفاه |
| `FacialHairIRRandomForest.model` | 126KB | شعر الوجه (مستشعر الأشعة تحت الحمراء فقط) |
| `GlassesIRRandomForest.model` | 206KB | كشف النظارات (مستشعر الأشعة تحت الحمراء فقط) |
جميع مصنفات سمات الوجه هي نماذج **Random Forest**. يشمل الإخراج الهوية والمشاعر والنظرة وحالة الشفاه وسمات المظهر.
يصدّر `vvtechs.dll` في الحزمة دالة واحدة: `NuiVisionCreateFactory`. يستورد `EtwPlus.dll` و`D3D11`، مما يؤكد أن خط أنابيب رؤية Kinect يعمل على GPU ويستخدم مسار القياس عن بُعد الخاص بـ Xbox. وهذا نشط على أجهزة لا يوجد بها Kinect فعلي متصل (انظر أيضًا `KinectSensorEnabled=true` في القسم 6، وخط أنابيب `nuiservice.exe` الكامل في القسم 33).
### 3.4 قاعدة بيانات أكواد الأخطاء N:\errorstrings\en-US.json
797 إدخالًا لسلسلة أخطاء Xbox. أكواد بارزة ذات صلة أمنية أو معمارية:
| رمز الخطأ | السلسلة | ملاحظات |
|------------|-----------------|-------|
| `0x887E0002` | عدم تطابق D3D12.X بين وقت التشغيل وبرنامج التشغيل | يؤكد أن D3D12.X هو متغير D3D12 خاص بـ Xbox، وليس D3D12 عامًا |
| `0x80A40406` | القياس عن بُعد المحسّن من Microsoft مفعّل في وضع المطور | وضع المطور يختار الجهاز صراحةً لجمع قياس عن بُعد مرتفع المستوى |
---
## 4. بنية Hypervisor
يستخدم Xbox برنامج hypervisor مخصصًا قائمًا على Hyper-V يشغّل قسمين:
- **SystemOS** قسم SRA
- **قسم ERA** بيئة تشغيل GameOS / نظام تشغيل الألعاب (Title OS)
### 4.1 مكدس برامج التشغيل
User space: xpal.dll
↓
Kernel: xpalk.dll
↓
xvmctrl.sys (364KB)
↓
Hypervisor: XVIO.SYS
### 4.2 برامج تشغيل Hypervisor الرئيسية
| برنامج التشغيل | الحجم | الغرض |
|-------------------|---------|----------------------------------------------------------------------|
| `xvmctrl.sys` | 364KB | التحكم في VM، الواجهة الرئيسية للـ hypervisor، سطح IOCTL |
| `XVIO.SYS` | غير معروف | Xbox Virtual I/O، ABI مباشر للـ hypervisor (غير موجود على نظام ملفات SystemOS) |
| `xvioc.sys` | غير معروف | عميل XVIO، واجهة جانب SystemOS إلى XVIO |
| `xvbus.sys` | 73KB | جذر الحافلة الافتراضية + مزود HvSocket XVIO |
| `hvsocket.sys` | 185KB | تنفيذ مقبس Hyper-V |
| `VMNP.SYS` | 106KB | يُسمى "برنامج تشغيل NPFS"، ويتعامل أيضًا مع الانتحال. |
| `Xrfs.sys` | 135KB | برنامج تشغيل نظام ملفات Xbox |
| `XRmnt.sys` | 49KB | برنامج تشغيل تحميل Xbox |
| `XRo.sys` | 95KB | مرشح Xbox للقراءة فقط |
| `VerifierExt.sys` | 274KB | امتداد مدقق برامج التشغيل |
**نتيجة حرجة:** لا يملك `XVIO.SYS` و`xpalk.dll` **أي إدخالات خدمة في السجل** و**غائبان عن نظام ملفات SystemOS**. يُرجَّح أنه يتم تحميلهما بواسطة Host OS قبل بدء SystemOS، خارج نموذج برامج التشغيل المحلي تمامًا. هذه هي آلية الأمان الفعلية؛ حتى مع وصول كامل إلى kernel نظام SystemOS، لا يمكن العبث بهذين المكوّنين.
### 4.3 سطح واجهة برمجة تطبيقات XVIO (أُعيد بناؤه من الواردات)
يمكن العثور على معلومات حول XVIO [هنا](https://xboxoneresearch.github.io/wiki/development/xvio/xvio-overview/)، ومع ذلك لا يمكنني تأكيد أن الأمور لم تتغير منذ Xbox One.
من واردات `xvmctrl.sys` و`xviomonc.sys` و`srakmd_arden.sys` الموجهة إلى `XVIO.SYS`:
XvioInitialize / XvioCleanup
XvioCreateEvent
XvioPostMessage
XvioGetCurrentPartitionId (identifies active partition, from xviomonc)
XvioGetReservedMemory (hypervisor carve-out RAM access, from srakmd_arden)
XvioRegisterGpaMdl / XvioUnregisterGpa (Guest Physical Address mapping)
XvioSfrMapPages / XvioSfrUnmapPages (Shared Frame Region, cross-partition GPU memory)
XvioSfrCounterGet / XvioSfrPerfCounterSet
XvioSfrReadEvent
XvioSetFocus (switches input focus between partitions)
XvioSetSystemTime
XvioSaveProvidersState / XvioRestoreProvidersState
XvioPerfMonitoringEnabled
XvioCreateRingBuffer / XvioDestroyRingBuffer
XvioGetRingBufferContext
XvioReadRingBuffer / XvioReadRingBufferEx / XvioWriteRingBuffer
XvioAcquireRingBufferRundown / XvioReleaseRingBufferRundown
`XvioRegisterGpaMdl` ودوال SFR هي آلية مشاركة ذاكرة الـ hypervisor، حيث يتم تعيين صفحات RAM الخام وإطار عرض GPU عبر حدود القسم.
### 4.4 خدمات HvSocket عبر الأقسام
يعرض `hvsocket.sys` خدمات للاتصال عبر المقابس بين الأقسام:
- `HvSocketGetPartitionConnections` / `HvSocketGetPartitionListeners` تعدّد القنوات النشطة
- `HvSocketGetVmIdFromVmbusHandle` تحليل مقبض VMBus
- `HvSocketUpdateServiceTable` سجل بجميع الخدمات عبر الأقسام
ملف DLL مُسمّى بمعرّف GUID `[REDACTED]_hvsocket.dll` يسجّل مزود خدمة HvSocket. تم حجب GUID تحسبًا لإمكانية التعرف عليه.
تم حل معرّفات GUID الأربعة لنقاط نهاية HvSocket البدل عبر حساب SID الخاص بالخدمة SHA1، انظر القسم 20 للتفاصيل الكاملة بما في ذلك قنوات DiagTrack وRpcSs وEventLog عبر الأقسام.
---
## 5. وحدة تخزين J:\ "Sys Tools" XTF / المطور
> **الأثر:** وحدة التخزين `J:\` موجودة على كل جهاز Xbox تجاري. في وضع المطور، تكون سلسلة أدوات XTF الكاملة متاحة دون مصادقة إضافية تتجاوز رمز PIN الخاص بوضع المطور. يتضمن ذلك تصحيح الأخطاء عن بُعد، وبث الشاشة، وتوصيف GPU عبر PIX، وواجهات برمجة تطبيقات التحكم في الجهاز غير المخصصة لوصول المستخدم النهائي.
أهم نتيجة في هذا البحث. تحتوي وحدة التخزين `J:\` (المُسمّاة "Sys Tools") على **Xbox Tools Framework (XTF)**، سلسلة أدوات حزمة تطوير Microsoft الداخلية، وهي موجودة على كل جهاز Xbox تجاري على ما يبدو. تعداد كامل: **132 ملفًا، 52MB** عبر الوحدة.
### 5.1 سجل إضافات XTF (`J:\tools\xtfextensions.txt`)
جميع إضافات XTF العشرون مسجلة بمعرّفات CLSID الخاصة بـ COM:
| DLL | CLSID |
|----------------------------|------------------|
| `XtfApplicationServer.dll` | `{10B16182-...}` |
| `XtfConsoleControl.dll` | `{5B45D0E0-...}` |
| `XtfConnectedStorage.dll` | `{9D610BBD-...}` |
| `XtfDebugMonitor.dll` | `{9141933C-...}` |
| `XtfDebugCaptureServer.dll` | `{F306F5C7-...}` |
| `XtfFileIO.dll` | `{8A8B4D4C-...}` |
| `XtfInput.dll` | `{7CC4D09B-...}` |
| `XtfPix.dll` | `{9BD151A3-...}` |
| `XtfGameStreaming.dll` | `{AA627F22-...}` |
| `XtfDiagInfo.dll` | `{FD21AC23-...}` |
| `XtfStressServer.dll` | `{6B5B0C75-...}` |
| `XtfSymbolProxyServer.dll` | `{69ABF3A1-...}` |
| `XtfPerf.dll` | `{F82AF734-...}` |
| `XtfRemoteRun.dll` | `{D77FE8B8-...}` |
| `XtfUser.dll` | `{2E302BAA-...}` |
| `XtfAuditioning.dll` | `{B91F5206-...}` |
| `XtfCleanup.dll` | `{9CF818E5-...}` |
| `XtfCredentialsServer.dll` | `{8582A384-...}` |
| `XtfEventServer.dll` | `{749FDEFA-...}` |
| `XtfUpdateT_s.dll` | `{DCDD4E77-...}` |
### 5.2 مصحح الأخطاء عن بُعد Visual Studio (`J:\tools\debugmon\`)
msvsmon.exe
vsdebugeng.dll (1.5MB)
vsdebugeng.impl.dll (1.6MB)
msdia120.dll
diagnosticsscripthost.dll
vsdebuglaunchnotify.exe
حمولات تصحيح مصنفة حسب الإصدار من VS 2015 إلى VS 2022 (`debugmondev14payload` حتى `debugmondev16payload`). **ثلاثة أجيال متزامنة من مصحح أخطاء Visual Studio عن بُعد حاضرة ومسجلة: VS2015 وVS2017 وVS2019** تتعايش جميعها على نفس نظام ملفات الجهاز التجاري.
### 5.3 أدوات بارزة أخرى
| الملف الثنائي | الغرض |
|---|---|
| `agent-xbox.exe` (1.5MB) | وكيل XTF الرئيسي |
| `xtfrtservice.exe` (1.3MB) | مضيف خدمة وقت تشغيل XTF |
| `xstudioserviceexe.exe` | خدمة Xbox Studio |
| `xperf.exe` | مُوصِّف أداء Xbox، حاضر ويعمل، لكن **تتبع kernel الخاص بـ ETW محجوب تمامًا بغض النظر عن الأداة** (انظر القسم 5.5) |
| `videoserver.exe` (RTSP) | خادم بث شاشة RTSP مستقل |
| `wdapp.exe`, `wdconfig.exe` | أدوات Wave Debugger / الإعدادات |
| `wdcapture.exe` | التقاط لقطات الشاشة/الفيديو |
| `wdgamestream.exe` | التحكم في بث الألعاب |
| `xboxnetapidiagsystem.exe` | تشخيصات شبكة Xbox Live |
| `xbtp.dll` (503KB) | بروتوكول النقل عريض النطاق Xbox Broadband Transfer Protocol |
| `xraytool.exe` | أداة أداء جهاز Xbox (تكشف حقيقة وجود Host OS) |
| `xstudioclient.dll` | مكتبة عميل Xbox Studio |
| `unattendedsetuphelper.exe` | مجموعة أدوات إدارة كاملة للجهاز، انظر القسم 5.6 |
### 5.4 تنسيق QuickActions `.xboxunattend`
يحتوي `J:\QuickActions\` على نصوص برمجية للأتمتة بتنسيق `.xboxunattend`. وهي نصوص أوامر Windows عادية يتم تشغيلها عبر Device Portal. الإجراءات المتاحة:
- `Capture_Screenshot.xboxunattend` يستدعي `wdcapture.exe screenshot`
- `Capture_Video.xboxunattend`
- `Toggle_ConsoleMode.xboxunattend` يبدّل أوضاع محاكاة الأجهزة عبر `WdConfig.exe`
- `Toggle_HDR.xboxunattend`
- `Toggle_Resolution.xboxunattend`
- `Launch_DevHome.xboxunattend` / `Launch_RetailHome.xboxunattend`
- `Suspend_Title.xboxunattend`
يكشف `Toggle_ConsoleMode.xboxunattend` القائمة الكاملة لمعرّفات أوضاع التوصيف التي تُمرَّر إلى `WdConfig.exe`: `AnacondaProfiling` و`LockhartProfiling` و**`Scarlett 40 GB`**.
### 5.5 xperf / WPR
إن `xperf.exe` وWPR حاضرون ويعملون بالكامل بما في ذلك ملف تعريف WPR `NeuralProcessing`. ومع ذلك، فإن جميع تتبعات ETW على مستوى kernel محجوبة برمزي خطأ مميزين:
| رمز الخطأ | المعنى |
|------------|---------|
| `0x80070005` | `Access denied`, رفض ACL قياسي في Windows |
| `0xc5585011` | `Xbox policy block`, **لا توجد سلسلة خطأ موجهة للمستخدم لهذا الرمز** (غير موجودة في `N:\errorstrings\en-US.json`) |
يُظهر تعداد مزودي ETW **صفرًا من المزودين الخاصين بـ Xbox** في مساحة أسماء ETW القياسية. تمر جميع بيانات القياس عن بُعد الخاصة بـ Xbox عبر `EtwPlus.dll` باستخدام دوال تبدأ بادئتها `Etx`، وهي خط أنابيب منفصل تمامًا عن ETW القياسي في Windows (انظر القسم 19.3).
### 5.6 أداة إدارة الجهاز unattendedsetuphelper.exe
`unattendedsetuphelper.exe` هو ملف تنفيذي لإدارة الجهاز يغطي:
- إعادة ضبط المصنع
- تحديث البرنامج الثابت عبر الشبكة
- حقن الإشعارات/التوستات
- إدارة Device Portal
وهو أيضًا بمثابة محرك وقت التشغيل للبرمجة النصية `.xboxunattend` (تنسيق QuickActions الموثق في القسم 5.4).
---
## 6. سطح إعدادات WdConfig
يعرض `J:\tools\WdConfig.exe` (البناء `10.0.26100.7010`) واجهة برمجة تطبيقات الإعدادات الكاملة للجهاز. إعدادات بارزة:
### فئة التصحيح
| الإعداد | القيمة | ملاحظات |
|---|---|---|
| `ConsoleType` | `Lockhart` | معرّف الأجهزة |
| `ConsoleMode` | `Default` | `AnacondaProfiling`, `LockhartProfiling`, `Scarlett 40GB` |
| `EraGraphicsDriverMode` | `Title Configured` | الخيارات: `Retail`, `Instrumented`, `Validated`. المكافئ في SRA هو `SraGraphicsDriverMode = Retail`، ويستخدم ERA وSRA إعدادات منفصلة لوضع برنامج التشغيل |
| `EnableKernelDebugging` | `false` | يمنع تفكيك تعطل ERA لتمكين إرفاق مصحح أخطاء kernel |
| `EnablePixMemory` | `false` | يحجز 6048MB إضافية لـ PIX في وضع Lockhart Profiling |
| `CrashDumpType` | `None` | الخيارات: `Triage`, `Mini`, `Heap` |
| `TitlePerformanceOverlay` | `false` | تراكب GPU/CPU في الوقت الفعلي على الألعاب قيد التشغيل |
| `ExtraTitleMemory` | `0` | الحد الأقصى 6048MB في وضع Lockhart Profiling |
| `LastShutdownReason` | `Console crash` | محفوظ عبر عمليات إعادة التشغيل، لقد تعطل جهازي عند آخر إيقاف تشغيل |
| `KinectSensorEnabled` | `true` | **معيّن إلى true على أجهزة لا يوجد بها Kinect متصل**، الحزمة مهيأة بغض النظر عن وجود الأجهزة |
### فئة الشبكة
| الإعداد | القيمة | ملاحظات |
|---|---|---|
| `UseDebugNicForAllTraffic` | `false` | توجد بطاقة شبكة تصحيح منفصلة، مختلفة عن بطاقة الشبكة الرئيسية. |
### فئة التخزين
| الإعداد | القيمة | ملاحظات |
|---|---|---|
| `DevkitUseRetailConnectedStorage` | `false` | إذا تم التمكين، سيستخدم وضع المطور قسم التخزين المتصل بالتجزئة. لم يُختبر. |
| `RunFromPcDataCacheSizeInGB` | `100` | **100GB محجوزة افتراضيًا لذاكرة تخزين ألعاب Run-From-PC؛ مقفلة ولا يمكن للمستخدم تغييرها** |
### فئة عدم المراقبة
| الإعداد | القيمة | ملاحظات |
|---|---|---|
| `AllowUsbUnattendScript` | `true` | نصوص `.xboxunattend` على USB تعمل تلقائيًا |
| `RunUnattendScriptImmediately` | `false` | إذا كان true، تعمل نصوص USB عند التشغيل دون مطالبة بالإلغاء |
### ملاحظات أمنية
**بريد حساب Microsoft مخزّن كنص صريح.** يخزّن مخزن WdConfig الخاص بوضع المطور عنوان البريد الإلكتروني لحساب Microsoft المرتبط كنص صريح. من المحتمل أن يكون قابلاً للقراءة من قبل أي عملية لديها وصول SRA.
---
## 7. XCRDAPI.dll واجهة برمجة تطبيقات توصيل المحتوى في Xbox
`XCRDAPI.dll` هو نواة إدارة المحتوى لمنصة Xbox. يتعامل مع DirectStorage والتثبيت التدريجي وإدارة الحقوق الرقمية DRM وxCloud وتخزين blob في مكتبة واحدة.
### 7.1 DirectStorage
DStorageGetFactory
DStorageGetMappedControlPage
تنفيذ DirectStorage الخاص بـ Xbox مضمّن في XCRDAPI، وليس SDK منفصلاً.
### 7.2 دورة حياة XVDXCrdOpenAdapter / XCrdCloseAdapter
XCrdMount / XCrdMountContentType / XCrdUnmount / XCrdUnmountEx
XCrdCreateXVD / XCrdDeleteXVD / XCrdResizeXVD / XCrdGrowDynamicXvd
XCrdSetEraLaunchMapping يربط XVD بقسم ERA قبل الإقلاع
XCrdUpdateXvc / XCrdUpdateXvcEx
XCrdDefragXvc / XCrdTrimXvc / XCrdTrimXvd
XCrdRepairXvc
### 7.3 Progressive Streaming Install
XCrdStreamingStart / XCrdStreamingStop
XCrdStreamingQueryActiveInstanceId
XCrdStreamingQueryInformation / InformationByPath / InformationEx
XCrdStreamingQueryRegionInformation / ByPath
XCrdStreamingQueryRegionSpecifiers / ByPath
XCrdStreamingQueueInsertRegion
XCrdStreamingQueueQueryRegionList / ByPath
XCrdStreamingAdjustStreamingFlags
XCrdStreamingQueryRegionIdByOffset
خط أنابيب تثبيت تدريجي كامل بقوائم أولوية. المناطق (Regions) هي أجزاء قابلة للعنونة من محتوى اللعبة.
### 7.4 XCloud Integration
XCloudQueryFeatureBits
XCloudSetFeatureBits
يتم التحكم بأعلام ميزات بث xCloud عبر نفس واجهة البرمجة المستخدمة للمحتوى المحلي.
### 7.5 DRM / Attestation
XCrdQueryAttestationBlob
XCrdQueryEncryptedInfo / XCrdQueryUnlockInfo
XCrdIsSideloadedKeyPresent
XCrdEnableSharedPls / XCrdSetExternalPlsMapping
### 7.6 Storage Blob System
XCrdStorageCreateBlob / DeleteBlob / MoveBlob / CopyBlob
XCrdStorageReadBlob / ReadBlobEx / WriteBlob / WriteBlobEx
XCrdStorageQueryBlobAttributes
XCrdXBlobCreate / Delete / Copy
XCrdFindFirstBlob / FindNextBlob / FindCloseBlob
### 7.7 XVD Transfer Pipeline
XCrdXvdXferInitialize / Uninitialize
XCrdXvdXferStart / Stop
XCrdXvdXferRead
XCrdXvdXferGetResult
### 7.8 Path Systems
XCrdXasBuildPath / XasBuildPathEx / XasKeyQueryValue (مسارات متجر XAS App Store)
XCrdXdsGetVolumeMapping / XdsSetVolumeMapping (وحدات تخزين خدمة توصيل XDS)
XCrdBuildPath / XCrdParsePath / XCrdUpdatePath
XCrdQueryDevicePath / QueryDevicePathByPath
XCrdSetFlatContentPath
---
## 8. xpal.dll طبقة تجريد منصة Xbox (50 تصديرًا)
واجهة برمجة غير موثقة سابقًا لهوية الأجهزة والإمكانيات وإدارة الطاقة.
### هوية الأجهزة
XpalGetConsoleCertificate شهادة الأجهزة
XpalGetConsoleIdCch معرّف جهاز الكونسول
XpalGetConsoleSerialNumberCch الرقم التسلسلي
XpalGetSmcFirmwareId إصدار البرنامج الثابت لـ SMC
XpalGetSouthBridgeType نوع شريحة الجسر الجنوبي
### كشف الجيل / SKU
XpalIsGen8 Xbox One
XpalIsGen9 Series X/S
XpalGetGenerationType
XpalIsHyperV الهايبرفايزر نشط
XpalIsExternalDevkit / XpalIsInternalDevkit
XpalGetVmType
XpalGetSystemType / XpalGetServerType / XpalGetConsoleMode
### أعلام الإمكانيات
XpalIsCapabilityEnabled
XpalIsCapabilityEnabledByVm
XpalIsFactorySettingEnabled
XpalGetFactorySettings
XpalGetCapabilities
XpalIsFeatureEnabled
### إدارة الطاقة
XpalInitiateDump تشغيل تفريغ انهيار (crash dump) عند الطلب
XpalInitiatePowerStateToggle
XpalInitiateSystemShutdown
XpalSetWakeupTimer
XpalQueryPowerToggleSource
XpalIsInForcedCs / XpalIsTransitioningToConnectedStandby
XpalIsSilentBootMode
XpalNotifyForcedCsHeartbeat
XpalIsRebootRequested
XpalRefreshPowerChimeMode
### الإعدادات
XpalGetXConfig / XpalSetXConfig مخزن إعدادات Xbox (المكافئ الحديث لـ EEPROM)
XpalSetSystemTime
XpalSetInformation
XpalReportUem تشغيل UEM (Universal Error Message)
### ERA / Title VM
XpalQueryTitleVmInfo
XpalWaitForTitleVmTermination
XpalBackgroundActivityRequest
---
## 9. eracontrol.exe مدير دورة حياة قسم ERA
`C:\Windows\System32\eracontrol.exe` يعمل بحساب LocalSystem (بدء يدوي) ويدير دورة حياة قسم ألعاب ERA بالكامل. التحليل الكامل للواردات موجود في القسم 28. ملخص الواردات الرئيسية:
- `NtOpenPartition` يفتح مقبض قسم Hyper-V ERA مباشرة
- `RtlSetProcessIsCritical` يعلّم نفسه كعملية حرجة (يسبب شاشة زرقاء BSOD للنظام إذا تعطل)
- `XCRDAPI.dll` يقوم بتركيب/فك تركيب أقراص XVD الخاصة بالألعاب عبر `XCrdSetEraLaunchMapping`
- `RIMAddInputObserver` / `RIMRemoveInputObserver` يعترض مدخلات وحدة التحكم الخام لتوجيهها إلى ERA
- `XblaInitialize` يهيّئ سياق مصادقة Xbox Live للكونسول
- `LogonUserExExW` ينشئ رموز تسجيل دخول المستخدم لجلسة ERA
- `UMgrOpenProcessHandleForAccess` الوصول إلى مقبض عملية مدير المستخدم
- `PsmQueryBackgroundActivationType` حالة التنشيط في الخلفية
كما تم العثور في نفس الدليل على: `eraproxyapp.exe` (339KB)، وهو المُركِّب (compositor) في جانب SystemOS وجسر IPC بين ERA وواجهة الصدفة. التحليل الكامل للواردات في القسم 29.
---
## 10. تتبعات BlackBox ETL (N:\BlackBox\)
الدليل `N:\BlackBox\` يحتوي على تتبعات مسجّل الطيران ETW المباشر. من تحليل تتبّع مُلتقَط:
**ملاحظة:** صيغة ETL الخاصة بـ Xbox لن تُحل إلا باستخدام 'tracerp'
### مسارات شجرة المصدر الداخلية (مضمّنة في أدوات التنقيح)
onecoreuap\xbox\xblauth\lib\authmanagerimpl.cpp
onecoreuap\xbox\xblauth\lib\authmanagertokens.cpp
onecoreuap\xbox\xblauth\lib\xstsauthorizer.cpp
onecoreuap\xbox\xblauth\util\httprequest.cpp
### أطراف الاعتماد (Relying Parties) لمصادقة Xbox Live
http://xdes.xboxlive.com/ خدمات هندسة/تطوير Xbox
http://xboxlive.com XBL القياسي
http://mp.microsoft.com/ Microsoft Passport (MSA)
http://instance.mgt.xboxlive.com إدارة الجلسات/المثيلات
### الأعطال الملتقطة
1. **`XboxUI.exe` BEX64** واجهة لوحة المعلومات اصطدمت بتجاوز سعة مخزن مؤقت (STATUS_STACK_BUFFER_OVERRUN، `0xc0000409`) في `XboxUI.Data.dll` عند الإزاحة `0x13eb0`
2. **`MoAppHang`** تعليق تطبيق UWP للحزمة `REDACTED_GUID`
---
## 11. نتائج إضافية بارزة
### وجود WSL على Xbox
خدمتا `LxssManager` و `lxcore` موجودتان مع `LaunchProtected: 0x2` (عملية محمية) و `SeTcbPrivilege`. يعمل WSL على Xbox بثقة على مستوى نظام التشغيل، واستنادًا إلى الاستخدام فهو شبه مؤكد أنه يشغّل شيئًا ما أو على الأقل مرتبط بطريقة بسيطة بـ `Xbox.ConsoleXCloudPlayer` (عميل بث ألعاب xCloud).
wsl.exe موجود لكنه **غير قابل للقراءة**.
### ثنائيات System32 حصرية لـ Xbox
ملفات DLL بارزة غير موجودة في Windows القياسي:
- `XCRDAPI.dll` توصيل المحتوى (موثق في القسم 7)
- `XBBlackbox.dll` مسجّل الطيران (موثق في القسم 30)
- `XBCastRecv.dll` مستقبل Xbox Cast / Miracast (موثق في القسم 30)
- `XVMAudioServer.dll` خادم صوت VM عبر الأقسام
- `Xbox.Shell.Api.dll` / `Xbox.Shell.OneStoreServices.dll` واجهة برمجة الصدفة (موثقة في القسم 30)
- `XboxCommandService.dll` الأوامر/الأتمتة
- `XboxUserSim.dll` أتمتة اختبار واجهة المستخدم
- `xboxgipsynthetic.dll` / `xboxsynthetickm.dll` حقن وحدة تحكم GIP اصطناعية (موثقة في القسم 30)
- `AppXDeploymentExtensions.xbox.dll` نشر AppX خاص بـ Xbox
- `xvnapi.dll` واجهة شبكة Xbox الافتراضية
- `xbsc_xs.dll` مترجم شادر Xbox Series (موثق في القسم 16.2)
### خدمات موجودة لكن غير موثقة
- `EraControlService` دورة حياة قسم ERA
- `XvdStreamSvc` (`xnetsharedservice.exe`) بث XVD / التثبيت التدريجي
- `XUpdMgr` مدير تحديث Xbox (منفصل عن Windows Update بطريقة ما؟)
- `XSraFlt` برنامج تشغيل فلتر SRA الخاص بـ Xbox
- `Manufacturing Broker` خدمة توفير المصنع
- `TestSirepSvc` بروتوكول اختبار SIREP الداخلي
- `GameCoreController` خدمة التحكم بنواة ألعاب GDK
- `ConnectedStorage` خدمة حفظ السحابة لـ Xbox
- `VideoManagerService` إدارة مخرجات الفيديو
- `XBBlackbox` خدمة مسجّل الطيران
- `xbdiagservice` خدمة تشخيص Xbox
- `XtfRtService` خدمة وقت تشغيل XTF
برامج تشغيل إضافية قديمة/منخفضة المستوى مؤكد وجودها في سجل الخدمات (انظر القسم 11.2):
- `Zurich` برنامج تشغيل افتراضي DVB
### `xvnc` / `xvncbus` بطاقة شبكة Xbox الافتراضية
`xvnc.sys` و `xvncbus.sys` عبارة عن **حزمة NIC افتراضية**، تعداد خدمة `xvnc` يكشف:
ROOT\xvnc\0000 NIC افتراضية جذر/حلقةloopback
{e720983a-...}\wifi\01
{e720983a-...}\wfd\01 Wi-Fi Direct
{e720983a-...}\wfd_role0\01
`xvncbus` هو برنامج تشغيل ناقل WDF 1.15 يقوم بتعداد بطاقات NIC افتراضية فوق المحول اللاسلكي الفعلي. قسم ERA لا يصل إلى حزمة الشبكة مباشرة، بل يتواصل عبر `NetXVmService`، الذي يملك طبقة NIC الافتراضية `xvnc`. المعرف `{e720983a-...}` يحدد أجهزة محول Xbox اللاسلكي.
### `xviomonc.sys` عميل مراقب XVIO
برنامج تشغيل يعمل عند الإقلاع (`Start: 0x1`) يدير تركيز قسم العرض. تحليل الواردات:
XVIO.SYS: XvioInitialize, XvioCleanup, XvioPostMessage,
XvioSetFocus, XvioGetCurrentPartitionId - تصدير XVIO جديد
VMNP.SYS: NpSetupVmImpersonation
xpalk.dll: XpalIsCapabilityEnabled
`xviomonc` **لا** يتعامل مع بيانات الإطار (framebuffer)، فهو برنامج تشغيل للإشارات وإدارة التركيز فقط. `XvioSetFocus` يبدّل القسم الذي يملك تركيز العرض/الإدخال؛ `XvioGetCurrentPartitionId` يحدد القسم النشط. التقاط الإطار الفعلي يتم بواسطة `srakmd_arden.sys`.
`NpSetupVmImpersonation` من `VMNP.SYS` يسمح لبرنامج تشغيل المراقب بانتحال الهية الأمنية لقسم ERA عند الوصول إلى موارد عرض ERA عبر حدود الأقسام.
### مخازن G:\ GameDVR
ثلاثة ملفات على G:\ هي مخازن دائرية خام معينة بالذاكرة (memory-mapped) مشتركة بين ERA و SystemOS:
- `GameDVR_VideoBuffer` التقاط فيديو متداول 272MB
- `GameDVR_AudioBuffer` صوت اللعبة 16MB
- `GameDVR_AudioBuffer_SysLoopback` صوت النظام/واجهة المستخدم 3MB (تدفق منفصل)
---
## 11.1 نتائج السجل
### مرجع محرك K:\ خاص بالـ Devkit
`HKLM\SOFTWARE\Microsoft\Durango\XTF` يحتوي على مسار ثابت:
K:\TDK\Tools\XtfJuno.dll
### `HKLM\SYSTEM\ResourcePolicyStore`
| Tier | ميزانية الذاكرة |
|------|--------------|
| `BackgroundSmall` | 40MB |
| `Background` | (خلفية قياسية) |
| `Balloon` | 5120MB |
طبقات سياسة وحدة المعالجة المركزية:
| Policy | تخصيص CPU |
|--------|---------------|
| `Paused` | 1% |
| `SoftCapLow` | 10% |
| `SoftCapFull` | 100% |
| `HardCap0` | 0% - مجمد تمامًا |
**سياسة BeanHog** (ربما ميزانية عملية اللعبة في المقدمة؟):
- الذاكرة: طبقة المقدمة
- CPU: 100%
- `DoNotKill`: true
- الأولوية: أعلى أهمية
---
## 11.2 آثار Xbox One القديمة
ثلاثة برامج تشغيل من عصر Xbox One ما تزال موجودة في سجل الخدمات في Series S. اثنان معطلان؛ واحد يعمل بنشاط.
### `Zurich` حزمة فك ترميز موالف التلفاز
`zurichs.sys` هو برنامج تشغيل Xbox One الافتراضي DVB. الحالة: **معطل**، لكن لا يزال مسجلًا.
النتيجة الرئيسية: `zurichs.sys` يستورد مخازن حلقية `XVIO.SYS`. كان موالف التلفاز مصممًا معماريًا لتسليم تدفق الفيديو المرمّز عبر مخازن حلقة الهايبرفايزر XVIO. كما استخدم الموالف `ZwUpdateWnfStateData` لنشر حالة الموالف عبر Windows Notification Facility (WNF).
### `PetraXC` جهاز التحكم بمستشعر Kinect
برنامج تشغيل أجهزة افتراضية WDF تم تحديده الآن كجهاز **KinectSensorControl**، وهو تجريد الأجهزة على مستوى النواة لمستشعر كاميرا Kinect. الحالة: **معطل حتى وصول الجهاز** (نموذج WDF للطلب عند الحضور).
خصائص بارزة:
- مبني ضد **WDF 1.11**، والذي يقابل Windows 8، مما يضع أصله في قاعدة نواة Xbox One الأصلية
- يستورد `XVIO.SYS`، مما يعني أنه يتواصل عبر ناقل مخازن حلقة الهايبرفايزر
- يعرض `\\.\KinectSensorControl` كواجهة جهاز له، ويُستهلك بواسطة `KinectMediaSource.dll` في خط أنابيب nuiservice عبر `DeviceIoControl` (انظر القسم 33)
### `pspsra.sys` جسر AMD PSP إلى SRA
الحالة: **يعمل بنشاط** (`Start: 0x0`، بدء الإقلاع). الوصول مرفوض على مستوى النواة، البرنامج مقفل ولا يمكن فحصه أكثر.
`pspsra.sys` يقع مباشرة أسفل قسم SRA في سلسلة الإقلاع كـ**جسر بين معالج أمان المنصة AMD (PSP) وطبقة SRA**. يتولى AMD PSP مصادقة fTPM وشهادة الكونسول على مستوى المعدن العاري، و`pspsra.sys` هو الجسر الذي يظهر سلسلة الثقة تلك داخل SRA. وهذا يضعه في نفس طبقة الثقة مثل `XVIO.SYS` و `XSraFlt.sys`، حيث تتم تهيئته قبل SystemOS، ويبقى معتمًا عليه، ولا يمكن الوصول إليه حتى بصلاحيات نواة كاملة.
---
## 12. أسئلة غير محلولة + برامج تشغيل
الأسئلة:
1. **موقع XVIO.SYS** غير موجود في أي نظام ملفات يمكن الوصول إليه؛ يُحمَّل بواسطة الهايبرفايزر عند الإقلاع
2. **استخدام WSL** مؤكد وجوده واستخدامه لكن دوره المحدد في نظام Xbox غير مرسوم بالكامل
3. **`XCrdXpfOp`** دالة XCRDAPI غير محددة (XPF = ؟)
4. **موقع `XSraFlt.sys` + `XRmnt.sys`** مؤكد غيابهما من جميع أنظمة الملفات القابلة للوصول؛ يُحمَّلان بواسطة نظام التشغيل المضيف بجانب XVIO.SYS
5. **`xvnc` GUID `{REDACTED_GUID}`** معرّف المحول اللاسلكي، سلسلة برامج التشغيل الكاملة غير مرسومة
6. **هدف إعادة التوجيه `S:\Shares\TitleScratch`** يتم حجبه بنشاط بواسطة نظام التشغيل في قوائم الدليل؛ يتطلب `FSCTL_GET_REPARSE_POINT` تحت طبقة cmd.exe. شبه مؤكد أنه `\Device\Xrfs\<partition-guid>` (انظر القسم 26)
7. **سطح IOCTL لـ `xvmctrl.sys`** تفريغ النواة المباشر محجوب (قيد `NoKernelDumps` في وضع التطوير بالتجزئة)؛ جدول توزيع IOCTL لم يُعدَّ بعد
8. **GUID قسم ERA** غير مكشوف عبر أي مسار سجل يمكن الوصول إليه؛ سيكون مرئيًا في تفريغ النواة (محجوب، نبحث في تجاوزات)
9. **محتويات `N:\EtwPlus\`** مخفية بنشاط بواسطة برنامج تشغيل فلتر نظام ملفات على مستوى النواة؛ قوائم الدليل ترجع فارغة رغم تأكيد نشاط الكتابة. هوية برنامج تشغيل الفلتر لم تُحدد (انظر القسم 3.2)
10. نظام التشغيل المضيف ككل، ليس من المؤكد تمامًا حتى ماذا يفعل.
برامج التشغيل:
1. **`xtcc.sys`**، على الأرجح مسؤول عن شيء متعلق بالأمان نظرًا للكم الهائل من واردات `ntoskrnl.exe` و `XVIO.sys`
2. **`FLTMGR.SYS`** مستورد بواسطة `XRmnt.sys`، `XRo.sys`
---
## 13. الإدخال/الإخراج الافتراضي والوصول عن بُعد (XVIO/SRA)
تحليل تصديرات `xboxcloudstreaming.dll` وإدخالات `CurrentControlSet\Services` في السجل يظهر تكاملًا عميقًا على مستوى النواة للاتصالات عن بُعد، باستخدام نموذج أجهزة "اصطناعية" بدلاً من محاكاة البرامج القياسية. يرى VM الخاص بـ ERA نفس الأجهزة الاصطناعية أينما جاء الإدخال (عن بُعد، USB، لاسلكي، إلخ).
### 13.1 حزمة XVIO (Virtual I/O)
يبدو أن إطار عمل XVIO هو الطريقة الأساسية لحقن أحداث على مستوى الأجهزة في SystemOS من مصادر خارجية أو عبر الأقسام.
| الخدمة | الفئة | الوظيفة |
| --- | --- | --- |
| `hvsocketxvio` | النقل | خدمة جسر تربط مقابس Hyper-V ببروتوكول XVIO. |
| `InputXVIOClient` | المنسق | يدير تعيين حزم الإدخال عن بُعد إلى عقد الأجهزة الافتراضية. |
| `xviokbdbus` / `xviomoubus` | برنامج تشغيل الناقل | يعدّد أجهزة HID افتراضية على ناقل داخلي اصطناعي. |
| `xviokbd` / `xviomou` | برنامج تشغيل الجهاز | برامج تشغيل وظيفية محددة للوحات المفاتيح والفئران الافتراضية. |
### 13.2 خط أنابيب وحدة التحكم الاصطناعية
يستغل ملف `xboxcloudstreaming.dll` الثنائي `XboxgipSynthetic.dll` لإنشاء ما تراه نظام التشغيل كأجهزة طرفية محلية متصلة فيزيائيًا.
- **محاكاة الصوت:** عبر `SyntheticController_AddAudioHeadset`، يمكن للنظام ضخ صوت شبكة عن بُعد إلى حزمة الصوت المحلية للكونسول كجهاز مرتبط بالعتاد.
- **حقن الإدخال (RIM):** استخدام Remote Input Manager (`ext-ms-win-ntuser-rim-l1-1-0.dll`) يؤكد أن جلسات xCloud واللعب عن بُعد تستخدم نفس طرق الحقن عالية الصلاحية المستخدمة في Windows Remote Desktop، وتحديدًا `InjectKeyboardInput` و `InjectPointerInput`.
### 13.3 SRA وبرامج تشغيل "Arden"
> **ملاحظة:** برنامج تشغيل `SraKmdArden` خاص بعتاد Series X/S (Arden). من المرجح أن هذا البرنامج يسمح للنظام باعتراض مخزن العرض على مستوى النواة، مما يقلل من زمن الوصول المرتبط عادة بالرسم عبر الأجهزة الافتراضية.
### 13.4 جسر HvSocket (GUID `4545ffe2-...`)
تمت مطابقة GUID الخاص بـ HvSocket غير المحدد سابقًا مع خدمة `hvsocketxvio`. هذا يؤكد أن XVIO ليس بروتوكولًا مستقلًا بل طبقة تعمل فوق ناقل المقابس الداخلي لـ Hyper-V.
هذا يشير إلى أن **قسم ERA (الألعاب)** لا يتحدث إلى الشبكة مباشرة للإدخال؛ بدلاً من ذلك:
1. يستقبل **SystemOS** حزم الشبكة عبر `XboxNetApiSvc`.
2. يعالج **`xboxcloudstreaming.dll`** التدفق.
3. يمرر **`hvsocketxvio`** بيانات الإدخال الخام عبر حد القسم عبر **HvSocket**.
4. تحقن طبقة الهايبرفايزر/المضيف ذلك في القسم الهدف كحدث عتاد.
---
## 14. وحدة التخزين M:\ | بنية الطبقات العلوية (Overlay)
M:\ (المسماة "System OS Misc") تعمل كـ**وحدة تخزين طبقات علوية**، وهي شجرة تحتوي مكونات تُركَّب فوق صورة C:\ الأساسية. هذه البنية تسمح لـ Microsoft بشحن صورة نظام تشغيل واحدة وتطبيق مجموعات ميزات محددة عبر طبقات علوية عند وقت التركيب.
### 14.1 بنية وحدة التخزين
M:\
├── Catalog000-003.bin كتالوجات تكامل كود خاصة بوحدة التخزين
└── windows\
├── system32\
│ ├── drivers\ برامج تشغيل النواة
│ ├── ht\ دعم Kinect (انظر القسم 33)
│ └── [~120 DLLs] مكونات مساحة المستخدم
├── SystemApps\ تطبيقات النظام
├── DefaultApp\
├── Fonts\
├── Speech_OneCore\
├── textinput\
└── WebManagement\
### 14.2 روابط نظام الملفات الرمزية
يشير C:\ إلى مكونات M:\ عبر روابط NTFS الرمزية. توجد الروابط على مستويين:
**مستوى برامج تشغيل System32:**
C:\Windows\System32\drivers\srakmd_arden.sys -> M:\windows\system32\drivers\srakmd_arden.sys
**مستوى دليل Windows**
C:\Windows\DefaultApp -> M:\Windows\DefaultApp
C:\Windows\Fonts -> M:\Windows\Fonts
C:\Windows\SystemApps -> M:\Windows\SystemApps
C:\Windows\WebManagement -> M:\Windows\WebManagement
طبقة M:\ العلوية أكثر انتشارًا من مجرد استبدال برنامج تشغيل/مكتبة DLL، إذ أن أدلة فرعية أساسية لنظام Windows بما في ذلك مخزن الخطوط وتطبيقات النظام وواجهة إدارة الويب بأكملها مقيمة على M:\ بالكامل. ربما يعني هذا أن طبقة علوية محددة تتحكم ليس فقط في برامج تشغيل GPU والالتقاط، بل في طبقة تطبيقات النظام وواجهة الصدفة بالكامل إلى حد ما.
لم يكتمل تعداد تكراري كامل لروابط C:\ الرمزية التي تشير إلى M:\.
### 14.3 برامج تشغيل خاصة بالعتاد (M:\windows\system32\drivers\)
| برنامج التشغيل | الحجم | الغرض |
|---|---|---|
| `srakmd_arden.sys` | 274KB | التقاط KMD الخاص بـ SRA -> أداة التقاط إطارات خاصة بعتاد Arden |
| `acpi.sys` | 873KB | ACPI -> بناء خاص بالعتاد (أكبر من العام) |
| `spaceport.sys` | 1MB | منفذ التخزين -> تشفير XVD + فحص الترخيص |
| `spacedump.sys` | 304KB | برنامج تشغيل تفريغ التخزين |
| `buttonconverter.sys` | 90KB | تحويل HID للطاقة/الإخراج -> أحداث الكونسول |
| `qwavedrv.sys` | 90KB | جودة الخدمة/برنامج تشغيل جودة الشبكة |
| `acpiex.sys` | 181KB | امتدادات ACPI |
| `AcpiDev.sys` | 61KB | امتدادات أجهزة ACPI |
| `acpitime.sys` | 57KB | مؤقت ACPI |
**النتيجة:** `XSraFlt.sys` غائب عن برامج تشغيل M:\ وكذلك C:\. وهو غير مخزن على أي وحدة تخزين بنظام ملفات يمكن الوصول إليه، مما يشير إلى أنه يُحمَّل بواسطة نظام التشغيل المضيف عند الإقلاع بجانب `XVIO.SYS` و `FLTMGR.sys`.
### 14.4 مكونات مساحة مستخدم خاصة بالعتاد (M:\windows\system32\)
ملفات DLL/EXE بارزة فريدة في M:\:
**حزمة GPU / Shader:**
- `umd12ddi_arden.dll` (1.56MB) برنامج تشغيل D3D12 لوضع المستخدم DDI، عتاد Arden
- `umd12ddi_d.dll` (1.5MB) D3D12 UMD، بناء مُجهز للتنقيح/مُخترق بـ PIX
- `umd12ddi_i.dll` (1.14MB) D3D12 UMD، بناء علبة/احتياطي
- `newbe_xs.dll` (26MB) الواجهة الخلفية لمترجم شادر GPU "NewBe" Arden
- `xbsc_xs.dll` (3.9MB) الواجهة الأمامية لمترجم شادر Xbox Series
- `dxcompiler_xs.dll` (17.8MB) مترجم HLSL لـ Xbox Series
- `dxbc2dxil_xs.dll` (2.9MB) محول DXBC إلى DXIL بايت كود
- `pixrtddi.dll` (679KB) PIX render/debug DDI
**سلسلة أدوات المطور / PIX:**- `VsGraphicsRemoteEngine.exe` (4.75MB) محرك بعيد لتنميط GPU من PIX
- `VsGraphicsCapture.dll` (225KB) التقاط إطارات PIX
- `VsGraphicsExperiment.dll` (327KB) إطار تجارب PIX
- `DXCaptureReplay.dll` (18MB) محرك إعادة تشغيل التقاط GPU
- `DXCap.exe` (1.19MB) أداة التقاط GPU
- `DXToolsMonitor.dll` / `DXToolsOfflineAnalysis.dll` / `DXToolsReporting.dll` حزمة تحليل PIX
- `DXGIDebug.dll` (151KB) طبقة تصحيح أخطاء DXGI
- `d3d12SDKLayers.dll` (4.8MB) طبقات التحقق/تصحيح الأخطاء D3D12
- `d3d11_3SDKLayers.dll` (1.19MB) طبقات تصحيح أخطاء D3D11
- `d2d1debug3.dll` (618KB) طبقة تصحيح أخطاء D2D
- `VSD3DWARPDebug.dll` (155KB) إصدار تصحيح أخطاء التنقيط البرمجي WARP
- `plmdebug.exe` (204KB) مصحح أخطاء PLM (دورة حياة العملية)
**البث / الوصول عن بُعد:**
- `rdpbase.dll` (1.8MB) مكتبة RDP الأساسية
- `rdpserverbase.dll` (2.3MB) قاعدة خادم RDP
- `XboxDevService.exe` (3.7MB) مضيف خدمة تطوير Xbox
- `XboxDevService.ProxyStub.dll`
**حزمة التواصل / الإضافات:**
- `DiscordPlugin.dll` (139KB) تكامل Discord
- `TwitchPlugin.dll` (639KB) تكامل بث Twitch
**أخرى بارزة:**
- `XboxSyntheticKM.dll` (36KB)
- `xrmntcl.exe` (90KB) عميل تحميل وقت تشغيل Xbox
- `xtfupdateT_s_i.dll` (98KB) ؟
- `xtcapi.dll` (57KB) واجهة برمجة XTC (اتصالات عناوين Xbox؟)
- `wusys.dll` (308KB) تكامل نظام Windows Update
---
## 15. حزمة GPU | خط أنابيب تجميع التظليل
خط أنابيب تجميع التظليل الكامل لجهاز Xbox Series S/X موجود على M:\ وغائب عن C:\. لا يمكن تجميع أي تظليل بدون تركيب التراكب الخاص بالعتاد.
### 15.1 `newbe_xs.dll`
ملف DLL بحجم 26 ميجابايت. الواجهة الخلفية لمترجم تظليل Arden GPU. يحتوي على 6 تصديرات فقط:
NB_CompileShader compile individual shader stage
NB_CompilePipeline compile full pipeline state object
NB_CreateOptimizer create register allocator / instruction scheduler
NB_GetRegPressure register pressure analysis (PIX-facing)
NB_GetShaderStats hardware shader statistics
NB_CreatePixDwarfApi generate DWARF debug info for GPU shaders
قد يشير قسم `.pass` إلى خط أنابيب تمريرات بأسلوب LLVM. يولد `NB_CreatePixDwarfApi` معلومات تصحيح أخطاء التظليل على مستوى المصدر لـ PIX.
### 15.2 `xbsc_xs.dll`
41 تصديرًا تغطي واجهة برمجة الترجمة الكاملة:
XBSC_PipelineCompile / XBSC_GetPipelineCompileOutput
XBSC_CompileRootSignature / XBSC_GetCompiledRootSignature
XBSC_AssembleShader / XBSC_GetAssembledShader
XBSC_DisassembleHwPipeline / XBSC_DisassembleHwPipelineWithCallback
XBSC_DisassembleRawShader / XBSC_GetDisassembly
XBSC_GetRegPressure / XBSC_GetShaderStats / XBSC_DumpShaderStats
XBSC_CompressBuffer / XBSC_DecompressBuffer (shader cache compression)
XBSC_Serialize* / XBSC_Deserialize* (pipeline state serialization)
SCCompileMultiShadersXbox / SCDumpHwShader* (batch compilation)
SC_ConvertRootSignatureToSCInputs
تحتوي قسما PE باسم `_mmddu` و `_MMDDT0` على **بيانات برنامج التشغيل المعتمدة على الجهاز من Microsoft**، وهي جداول بنية دقيقة للعتاد مدمجة في المترجم (زمن انتظار التعليمات، طوبولوجيا ملف السجلات، أعداد وحدات التنفيذ الخاصة بـ Arden).
### 15.3 `dxcompiler_xs.dll`
حجمه 17.8 ميجابايت. نسخة Xbox Series من مترجم DXC HLSL. يحتوي على 4 تصديرات:
DxcCreateInstance / DxcCreateInstance2 standard DXC factory (compatible with public API)
CreateXdxrCompiler / CreateXdxrCompiler2 Xbox DXIR compiler (Xbox-specific IR format)
### 15.4 `dxbc2dxil_xs.dll` محول Bytecode
الحجم 2.9 ميجابايت. تصدير واحد:
SCDxil_ConvertDxbcToDxil convert DX11 DXBC bytecode to DXIL for DX12 pipeline
يتيح تشغيل تظليلات DX11 المتوافقة مع الإصدارات السابقة على خط أنابيب Arden الخاص بـ DX12 فقط.
### 15.5 سلسلة تجميع التظليل الكاملة
Game/App submits HLSL or legacy DXBC shader
↓
[HLSL path] [DXBC legacy path]
dxcompiler_xs.dll dxbc2dxil_xs.dll
(DxcCreateInstance -> DXIL) (SCDxil_ConvertDxbcToDxil -> DXIL)
↓ ↓
└──────────┬──────────────────┘
↓
xbsc_xs.dll (XBSC_PipelineCompile)
calls newbe_xs.dll NB_ backend
uses _MMDDT0 Arden microarch tables
↓
umd12ddi_arden.dll
(submits compiled ISA via D3D12 DDI)
uses xg_xs.dll for texture layout
↓
srakmd_arden.sys (kernel)
XvioGetReservedMemory -> hypervisor carve-out RAM
zero-copy framebuffer -> ERA partition
---
## 16. `xg_xs.dll` مكتبة تخطيط نسيج الرسومات Xbox
موجود على **C:\** (وليس M:\). يحتوي على 27 تصديرًا تغطي تبليط النسيج، وتخطيط BVH لتتبع الأشعة، وضغط DCC.
### 16.1 سطح التصدير
XGComputeBufferLayout
XGComputeTexture1DLayout / 2DLayout / 3DLayout
XGComputeOptimalSwizzleMode / OptimalDepthStencilSwizzleMode
XGComputeTileShape
XGSuggestSwizzleMode
XGValidateDepthStencilSwizzleMode / XGValidateDescriptor
XGCreateTexture1DComputer / 2DComputer / 3DComputer
XGCreateTextureComputer / XGCreateTextureComputerFromDescriptor
XGCreateBVHComputer / XGCreateBVHComputer2 ray tracing BVH layout
XGEncodeDCC / XGDecodeDCC / XGDecodeDCCSurface AMD Delta Color Compression
XGShuffleTextureBufferForDirectStorage GPU-side texture tiling for DirectStorage
XGSetHardwareVersion configure for Series S vs Series X memory layout
XGInitializeLibrary / XGTerminateLibrary
XGEnableExclusiveLocking / XGEnterExclusiveLock / XGLeaveExclusiveLock
### 16.2 النتائج الرئيسية
**تخطيط BVH لتتبع الأشعة خاص بالعتاد.** يكشف `XGCreateBVHComputer2` عن واجهة برمجة تخطيط BVH من الجيل الثاني، مما يشير إلى أن بنية Arden لها تنسيق عقد BVH مميز يختلف عن DXR العام.
**ضغط AMD DCC مكشوف.** يطبق `XGEncodeDCC` / `XGDecodeDCC` ضغط ألوان دلتا من AMD، وهو ضغط المخزن الإطاري غير المفقود المستخدم في وحدات معالجة الرسومات RDNA. `XGDecodeDCCSurface` هو واجهة البرمجة التي يستخدمها PIX عند قراءة المخازن الإطارية الملتقطة والمضغوطة بتقنية DCC.
**تبليط DirectStorage.** ينفذ `XGShuffleTextureBufferForDirectStorage` عملية إعادة الترتيب من جانب GPU التي تحول تخطيط النسيج على القرص إلى تنسيق تبليط عتاد Arden أثناء فك ضغط GPU، مما يتيح التحميل المباشر إلى VRAM بدون نسخ.
**`XGSetHardwareVersion` يتحكم في جميع خوارزميات التخطيط.** تحتوي المكتبة على تطبيقات تخطيط لعدة مراجعات عتاد. استدعاء `XGSetHardwareVersion` باستخدام معرّف Series S مقابل Series X ينتج نتائج تبليط مختلفة تعكس اختلاف عرض ناقل الذاكرة وهندسات الذاكرة المؤقتة.
### 16.3 قسم بيانات البناء `.xbld`
يحتوي `xg_xs.dll` على قسم PE باسم `.xbld` غائب عن جميع ملفات Xbox الأخرى، مما يشير إلى أنه نشأ من خط أنابيب بناء CI منفصل خاص بـ GDK وليس من نظام بناء Xbox OS. نظام بناء نظام التشغيل يصفر الطوابع الزمنية ويزيل أقسام البيانات الوصفية؛ بينما لا يفعل ذلك GDK CI.
_xbld_edition_build = GXDK, 0x65F41B62
_xbld_edition_full_productbuild = GXDK, 10.0.26100.7010
_xbld_edition_sdktype = GXDK, 260400
_xbld_edition_name = GXDK, April 2026 GXDK
_xbld_edition_mscver = GXDK, 193833145.100
قيمة `edition_name` **"April 2026 GXDK"** تسبق الإصدار العام لإصدار SDK هذا (وقت كتابة هذا النص هو 9 مارس 2026)، مما يؤكد أن نظام التشغيل التجاري يُشحن بمكونات GDK مبنية على دورة SDK التالية غير المعلنة. يتبع إصدار `sdktype=260400` النمط `YYMMRR` (السنة/الشهر/المراجعة).
الطابع الزمني `edition_build` ذو القيمة `0x65F41B62` يُفك إلى **13 مارس 2024**، أي قبل أكثر من عام من تاريخ بناء نظام التشغيل (12 فبراير 2026)، مما يشير إلى أن خوارزميات تخطيط النسيج ظلت مستقرة وغير معدلة عبر 5 دورات إصدار على الأقل من GDK.
يعرّف `mscver=193833145.100` المترجم بأنه **MSVC 19.38** (Visual Studio 2022 17.8.x).
### 16.4 استنتاج خط أنابيب البناء (UUP؟)
GDK CI pipeline builds xg_xs.dll (with .xbld metadata intact)
↓
┌─────────────────────────┐
↓ ↓
Xbox OS image ingests April 2026 GDK SDK package
artifact directly ships same binary to developers
↓
Ships on every retail console
هذا يعني أن `xg_xs.dll` على وحدات التحكم التجارية مطابق بايتًا ببايت لما يتسلمه المطورون في GDK. التحقق من التجزئة مقابل إصدار GDK العام لشهر أبريل 2026 (عند توفره) سيؤكد ذلك.
---
## 17. نموذج نزاهة الكود القائم على الفهرس (Trust-by-Catalog)
### 17.1 تنسيق حاوية PE
ملفات `Catalog*.bin` على كل وحدة تخزين هي **ملفات PE32+ قابلة للتنفيذ بنظام فرعي `0x11`** ("فهرس كود Xbox")، وهو نظام فرعي غير موثق وغير موجود في أي وثائق عامة. الخصائص الرئيسية لترويسة PE:
Magic: PE32+ (64-bit)
Subsystem: 0x11 ("Xbox Code Catalog", obtained from strings inside MSVC link.exe)
Entry point: 0 (never executed)
Code size: 0 (no executable code)
DLL Chars: IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE
IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY <- critical
IMAGE_DLLCHARACTERISTICS_NX_COMPAT
Sections: 1 unnamed read-only section (raw payload)
أما بخصوص كيفية عمل هذه الأشياء فلست متأكدًا، فجهاز Xbox One
### 17.2 سلسلة الثقة
Hypervisor/Host OS validates Catalog*.bin PE Authenticode signature at boot (FORCE_INTEGRITY)
↓
Catalog payload contains hashes of protected binaries on that volume
↓
Code Integrity checks each binary's hash against catalog at load time
↓
Individual binaries carry no Authenticode signatures of their own
هذا نموذج **الثقة عبر الفهرس**. توقيع Microsoft واحد يغطي أعدادًا ضخمة من الملفات لكل وحدة تخزين. الملفات الثنائية الفردية وعلى الأرجح أنواع ملفات أخرى غير موقعة؛ وسلامتها مضمونة من خلال عضويتها في الفهرس.
**عدد الإدخالات والأحجام:**
| وحدة التخزين | الفهرس | حجم الحمولة | الإدخالات (÷32) |
|---|---|---|---|
| C:\ | Catalog000.bin | 5,533,696 bytes | 172,928 |
| C:\ | Catalog001.bin | 253,952 bytes | 7,936 |
| C:\ | Catalog002.bin | 57,344 bytes | 1,792 |
| C:\ | Catalog003.bin | 176,128 bytes | 5,504 |
| M:\ | Catalog000.bin | 5,537,792 bytes | 173,056 |
| M:\ | Catalog001.bin | 258,048 bytes | 8,064 |
| M:\ | Catalog002.bin | 61,440 bytes | 1,920 |
| M:\ | Catalog003.bin | 180,224 bytes | 5,632 |
طول حمولة كل فهرس (داخل قسم PE) يقبل القسمة بالضبط على 32 دون باقٍ، ولا يقبل القسمة باستمرار على 36 أو 40 أو أحجام سجلات شائعة أخرى. هذا يشير بقوة إلى أن الحمولة عبارة عن مصفوفة مسطحة من **سجلات بحجم 32 بايتًا**.
**خوارزمية التجزئة:** لم يتم العثور على تجزئات SHA-256 و SHA-1 للملف الكامل للملفات الثنائية المعروفة في الفهارس، مما يستبعد التجزئة البسيطة للملف الكامل. التنسيق الأكثر ترجيحًا هو **تجزئات صفحات Authenticode**، وهي معيار Windows CI حيث يتم تجزئة كل صفحة بحجم 4KB محاذاة من الأقسام المعيّنة للملف PE بشكل فردي. هذا سينتج إدخالًا واحدًا بحجم 32 بايتًا (SHA-256) لكل صفحة لكل ملف، مما يفسر أعداد الإدخالات الكبيرة (172,928 إدخالًا لـ C:\ وحدها).
**الترتيب:** الحمولة غير مرتبة حسب قيمة التجزئة. لم يتم تحديد مخطط الترتيب، والاحتمالات تشمل الترتيب حسب تجزئة مسار الملف، أو حسب حزمة التثبيت، أو حسب إزاحة الصفحة داخل مجموعة ملفات وحدة التخزين، أو حتى حسب بعض خصائص NTFS.
**بدون ترويسة:** أول 128 بايتًا من الحمولة لا تحتوي على أي توقيع ASCII معروف، ولا حقول أعداد صغيرة قد تشير إلى عدد أو إصدار، ولا بنية متسقة مع ترويسة قياسية. تبدأ مصفوفة التجزئة عند البايت 0 من الحمولة دون أي تمهيد.
### 17.3 الإنفاذ عند وقت التحميل فقط
الإنفاذ في نماذج نزاهة الكود هو **وقت التحميل فقط**. بمجرد اجتياز ملف ثنائي للتحقق من تجزئة الفهرس وتعيين الصفحات في الذاكرة، لا يكون لـ CI أي دور آخر. إن كان HVCI (نزاهة الكود المحمية بالهايبرفايزر) مفعلًا على SystemOS، فسيغلق نافذة TOCTOU (وقت الفحص إلى وقت الاستخدام) الناتجة من خلال جعل صفحات الكود المحمّلة للقراءة فقط على مستوى جدول صفحات الهايبرفايزر. **تم تأكيد إيقاف HVCI على SystemOS**، `IsSecureKernelRunning = 0x0` (انظر القسم 18). لذلك نافذة TOCTOU موجودة.
### 17.5 مكونات نظام التشغيل المضيف
تم تأكيد غياب برنامجي تشغيل من جميع وحدات التخزين القابلة للوصول ويتم تحميلهما مباشرة بواسطة نظام التشغيل المضيف قبل تهيئة SRA:
- `XVIO.SYS` نواة الإدخال/الإخراج الافتراضية Xbox (لا يوجد إدخال خدمة في السجل، وغير موجود على أي وحدة تخزين)
- `FLTMGR.sys` مدير عوامل التصفية
- `XSraFlt.sys` مرشح SRA (يوجد إدخال خدمة، ولا يوجد ملف مقابل على أي وحدة تخزين)
توجد هذه المكونات بالكامل خارج نموذج الثقة الخاص بالفهرس. لا يمكن التلاعب بها حتى مع وصول كامل إلى نواة SystemOS، لأنها تُعيّن بواسطة محمل الإقلاع قبل أن يبدأ HostOS (الأصل لنظام SystemOS) في التحميل.
المعلومات حول مكونات Xbox One [يمكن العثور عليها هنا](https://xboxoneresearch.github.io/wiki/boot/vbi/)، ومع ذلك لا يمكنني الجزم تمامًا بأن HostOS لم يتغير حتى الآن.
---
## 18. حالة HVCI
> **الأثر:** مع إيقاف HVCI، تكون نزاهة الكود وقت التحميل فقط. بمجرد تعيين ملف ثنائي في الذاكرة، لا يوجد إنفاذ على مستوى العتاد يمنع التعديل في الذاكرة. بالتالي، نافذة TOCTOU الموصوفة في القسم 17.3 مفتوحة. الحدود الأمنية المقصودة تظل معتمدة كليًا على عدم تواصل SystemOS مع ERA (GameOS).
`HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\KeyGuard\Status`
IsSecureKernelRunning = 0x0
النواة الآمنة (VTL1) غير قيد التشغيل على SystemOS، مما يؤكد أن HVCI لا يمكن أن تكون مفعلة. هذه مقايضة أداء مقصودة، لا ضريبة VTL1 على نشاط النواة في حلقة اللعبة. الحدود الأمنية هي قسم الهايبرفايزر نفسه، وليست حماية الذاكرة داخل القسم. لذلك نموذج نزاهة الكود (القسم 17) هو وقت التحميل فقط دون حماية TOCTOU.
---
## 19. مساحة أسماء `sevpipe` للـ Hypervisor IPC
مساحة أسماء أجهزة أنابيب Windows المسمّاة مخصصة (`\\.\sevpipe\`) تعمل كالعمود الفقري الأساسي للاتصال بين العمليات وعبر الأقسام الخاص بـ Xbox. ليست بنية هايبرفايزر على مستوى البروتوكول، بل دلالات أنابيب Windows المسمّاة القياسية في الأساس، مسجلة تحت مساحة أسماء أجهزة مخصصة لإخفائها عن أدوات تعداد الأنابيب العادية.
### 19.1 جرد الأنابيب الكامل
EtxForwarder <- telemetry data
EtxForwarderToUploaderControl <- telemetry control
XrfsPipe <- cross-partition filesystem
ERASwapChainPipe <- ERA framebuffer (dynamic)
ERAPresentPipe <- ERA present signals (dynamic)
XvioAudioPipe <- ERA audio (dynamic)
XvioAudioEventPipe <- ERA audio events (dynamic)
XboxOneAudioStatePipe <- system audio state
XTF_SYSTEM_TO_TITLE <- XTF command channel (dynamic)
XTF_TITLE_TO_SYSTEM <- XTF response channel (dynamic)
CloudStreamingServer <- xCloud (dynamic)
\SEVPipe\epmapper <- Xbox RPC endpoint mapper
\SEVPipe\epmapperX <- extended RPC endpoint mapper
الأنابيب الديناميكية موجودة فقط عندما يكون ERA نشطًا، أو جلسة XTF قيد التشغيل، أو بث xCloud نشطًا.
### 19.2 خريطة التحكم بالوصول
EtxForwarder <- DevToolsUser WRITE
EtxForwarderToUploaderControl <- DevToolsUser WRITE
XrfsPipe <- SYSTEM only
ERASwapChainPipe <- SYSTEM only
ERAPresentPipe <- SYSTEM only
XvioAudioPipe <- SYSTEM only
XTF_SYSTEM_TO_TITLE <- SYSTEM only
### 19.3 خط أنابيب القياس عن بُعد
Process calls EtxEventWrite()
↓
EtwPlus.dll
↓ writes to
\\.\pipe\EtxUploader
↓
EtwUploader.exe (PID 1808, SYSTEM)
↓ forwards to
\\.\sevpipe\EtxForwarder <- data
\\.\sevpipe\EtxForwarderToUploaderControl <- control
↓
NetworkTransferManagerService.exe (PID 2040, SYSTEM)
↓
[unknown endpoint, dynamic library load]
↑
DevToolsUser can inject at EtxForwarder and control pipe
`EtwPlus.dll` خاص بـ Xbox (`FileDescription: Xbox ETW Plus API`)، الإصدار `10.0.26100.7010`. من المحتمل أن تكون تصديرات الإيقاف/الاستئناف مجرد كعب على الإصدارات التجارية، حيث تشترك ثلاثة تصديرات في نفس RVA.
### 19.4 التقاط شاشة RTSP من videoserver.exe (على الأرجح بقايا من [Xbox Dev Mode Companion](https://apps.microsoft.com/detail/9nblggh519cp))
المنفذ: 11442 (مثبت في الملف الثنائي). التبعيات:
Windows.Xbox.Graphics.Display.Internal.DisplayManager
Windows.Xbox.System.Internal.GameStreaming.GameStreamingAgent
Windows.Xbox.Media.Capture.ApplicationClipShell
**النتيجة الرئيسية:** لا يبدو أنه يعمل بشكل صحيح. لم يتم العثور على طريقة للوصول إلى دفق الفيديو من داخل وحدة التحكم أو خارجها.
مسارات/علامات مثبتة:
DisableXboxDevToolsTelemetry <- env var to suppress its telemetry
VideoServerMaxPacketSize <- configurable via env var
EnableVideoServer <- WdConfig flag confirmed here
OSDATA\...\DevkitProperties <- reads devkit properties at runtime
### 19.5 مخطط OneSettings / Windows Update
يحمل Xbox مخطط استهداف Windows Update الكامل بما في ذلك إدخالات استهداف `XBOXMOBILE` ومسارات خلية السجل `WCOS`، مما يؤكد أن Xbox Series S يعمل على أساس Windows Core OS (WCOS) المشترك مع HoloLens وSurface Hub. نظام التشغيل هو نسخة Windows 11 24H2 معدلة بشكل خفيف، وليس نظام تشغيل منصة مبنيًا لغرض محدد.
---
## 20. طوبولوجيا أقسام الهايبرفايزر
`HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\HvSocket\Addresses`
LocalAddress = {REDACTED_GUID} SystemOS partition GUID
ParentAddress = {REDACTED_GUID} null parent
يعتقد SystemOS أنه **القسم الجذر** (وهذا غير صحيح، Host OS هو الجذر). قسم لعبة ERA هو تابع لـ SystemOS. معرّف GUID لقسم ERA غير مكشوف لـ SystemOS عبر أي مسار سجل يمكن الوصول إليه، وقد يكون عشوائيًا.
### نقاط نهاية Wildcard عبر الأقسام في HvSocket
`HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\HvSocket\WildcardDescriptors`
أربعة معرّفات GUID للخدمات تم حلها عبر حساب SID خدمة SHA1:
| GUID | الخدمة | الغرض |
|------|---------|---------|
| `REDACTED_GUID` | DiagTrack | أنبوب القياس عن بُعد 1 |
| `REDACTED_GUID` | DiagTrack | أنبوب القياس عن بُعد 2 |
| `REDACTED_GUID` | RpcSs | RPC بين الأقسام |
| `REDACTED_GUID` | EventLog | إعادة توجيه الأحداث عبر الأقسام |
DiagTrack و RpcSs و EventLog مواطنون من الدرجة الأولى عبر الأقسام. يتم نقل قياس أداء اللعبة واستدعاءات RPC والأحداث من ERA إلى SystemOS عبر قنوات مقبس هايبرفايزر مخصصة غير مرئية لأي شيء يعمل داخل ERA.
---
## 21. إعدادات الرسومات
`HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers`
WddmVersion_Max = WddmVersion_Min = 0x9C4 (WDDM 2.5) pinned, not negotiated
DisableCcdDatabase = 1
DisableHpdHandling = 1
DisableUsingMonitorPowerForSimulatedMonitor = 1
DirectFlipMemoryRequirement = 0x40 (64MB)
PinnedMemoryLimit = 0x59 (89MB)
AdapterMPO_3 = 1 MPO tier 3 enabled
إصدار WDDM مثبت وليس تفاوضيًا، وخط أنابيب العرض مملوك للبرنامج الثابت والهايبرفايزر، ولا يشارك WDDM في معالجة الشاشات. طبقة MPO 3 (`AdapterMPO_3`) هي الطريقة التي يتم بها دمج إطار لعبة ERA وواجهة SystemOS دون نقل برمجي بين الأقسام: كل سطح يشغل طبقة تراكب أجهزة منفصلة.
---
## 22. WdApp.exe مدير الحزم وأداة دورة حياة التطبيقات
`J:\tools\WdApp.exe` هو مدير حزم كامل ومدير دورة حياة تطبيقات لمنصة تطبيقات Xbox. سطح الأوامر الكامل:| الأمر | الغرض |
|---------|---------|
| `install` | بث حزمة مبنية من خادم ويب أو مشاركة شبكة أو مسار محلي |
| `register` / `unregister` | تسجيل/إلغاء تسجيل حزم التطبيقات ذات الملفات المفككة |
| `registerdrive` | تسجيل جميع التطبيقات على محرك أقراص كامل دفعة واحدة |
| `registernetworkshare` | التثبيت من مشاركة شبكة UNC مع بيانات اعتماد اختيارية |
| `registerscratch` | التسجيل من محرك الأقراص المؤقت الخاص بالمطور |
| `registertitlescratch` | التسجيل من محرك الأقراص المؤقت لعناوين ERA |
| `launch` | الإطلاق عبر AUMID أو مسار ملف تنفيذي أو URI |
| `terminate` / `suspend` | إيقاف أو تعليق تطبيق قيد التشغيل |
| `uninstall` | إلغاء تثبيت تطبيق أو أجزاء منه |
| `list` | سرد جميع التطبيقات المسجلة |
| `listdlc` | سرد المحتوى القابل للتنزيل (DLC) المثبت |
| `move` / `copy` | نقل أو نسخ حزمة |
| `movedrive` / `copydrive` | نقل أو نسخ جميع الحزم على محرك أقراص |
| `applyconfig` | تشغيل نظام تشغيل ألعاب ERA بالإعدادات المحددة أو ملف `game.config`/`.xvd` |
| `queryconfig` | طباعة رقم الإصدار المكوّن من 4 أجزاء لنظام تشغيل الألعاب قيد التشغيل |
| `queryversioninfo` | الاستعلام عن إصدار نظام تشغيل الألعاب لحزمة معينة |
| `collectxip` | جمع تتبع XIP |
| `lastgamedetails` | استرجاع تفاصيل آخر لعبة تم تشغيلها |
| `installkey` | تثبيت مفتاح على وحدة التحكم |
| `installplan` | تثبيت خطة على وحدة التحكم |
| `overlayfolder` | إدارة مجلدات تراكب الحزم |
### نتائج ملحوظة
**`applyconfig [game.config | ERA.xvd]`** تحكم مباشر في إقلاع قسم ERA من سطر الأوامر. يقبل إما ملف صورة قرص XVD بامتداد `.xvd` أو ملف إعدادات `game.config`. عند تشغيله بدون وسائط، يقوم بتشغيل نظام تشغيل الألعاب المستخدم مؤخرًا. على نظام لا يحتوي على سياق لعبة سابق، يُرجع `0x87E50002` (منشأة ERA، لم يتم العثور على XVD).
**`/drive=Retail`** يقبل أمر `install` القيم `Retail` و`Development` و`Ext1-Ext7` كمحددات محرك أقراص هدف، مما يسمح بتثبيت الحزمة مباشرة إلى قسم التخزين بالتجزئة من غلاف المطور.
**`/WaitToExit`** عند استخدامه مع `launch` يجعل WdApp يمتلك العملية المُطلقة كأصل ويلتقط رموز الخروج. ترفض تطبيقات النظام ذلك مع `0x8D160121` (منشأة Xbox PLM، أصل دورة حياة خاطئ). الإطلاق بدون `/WaitToExit` ينجح حيث تحتفظ ShellCoreService بملكية دورة الحياة.
**ترميز AUMID في `launch`** تتطلب معرفات AUMID لتطبيقات النظام ترميز base64 مطابقًا للنمط المستخدم في نصوص QuickActions في `.xboxunattend`:```
WdApp.exe launch <base64(FamilyName!AppId)>
يخدم خادم الويب لبوابة الجهاز (WebManagement.exe, PID 2344) واجهته الأمامية من M:\windows\WebManagement\www\default\. المخطط الكامل لواجهة برمجة تطبيقات REST موثق في js\RestDocumentation.json (40 كيلوبايت).
المصادقة: مصادقة HTTP الأساسية عبر منفذ HTTPS 11443. بيانات الاعتماد هي اسم مستخدم بوابة الجهاز ورقم PIN المحددان أثناء تفعيل وضع المطور.
تحمل عدة نقاط نهاية علامات تقييد تُعطّلها على وحدات تحكم وضع المطور بالتجزئة:
تفريغ العمليات الحية في وضع المستخدم (/api/debug/dump/usermode/live?pid=<pid>) هو nonRestrictable وينجح في وضع المطور بالتجزئة.
يتم الحصول عليها عبر GET /api/resourcemanager/processes. عمليات مختارة بارزة:
ثلاث نسخ من xnetsharedservice.exe (PIDs 2032, 2764, 2844) تعمل في وقت واحد تحت SYSTEM، مما يشير إلى وجود نسخ منفصلة لجسر الشبكة لقنوات مختلفة بين الأقسام.
مجموعة عمل eracontrol.exe البالغة 991KB مع عدم تشغيل أي لعبة تؤكد أنه مدفوع بالأحداث بالكامل، ولا يحتفظ بأي حالة تقريبًا عند الخمول، ويستيقظ فقط على أحداث دورة حياة ERA.
التأثير: وحدة التخزين
Deploy:\مقيدة محليًا عن الوصول من مساحة المستخدم، ولكن يتم تجاوز هذا التقييد عبر مسار مشاركة الشبكة من خلال junctionS:\Deployment\SoftwareDistribution\. تتبعات ETL للتحديث، ومسار قاعدة بيانات WU، وعنوان URL لنقطة نهاية SLS (بما في ذلك معرّف النظام الأساسي وحزم اللغة المثبتة) قابلة للقراءة بالكامل.
S:\Deployment\SoftwareDistribution\ هو junction إلى وحدة تخزين جهاز kernel المخفية Deploy:\.
تم التقاط جلستي تحديث:
الجلسة 1 9 مارس 2026 18:25:23
DataStore.edb موجودًا (أُنشئ جديدًا في هذه الجلسة)https://slscr.update.microsoft.com/SLS/{REDACTED_GUID}/x64/10.0.26100.7010/00x8024402C (لا يوجد إنترنت). لم يكتمل أي فحص تحديث.الجلسة 2 10 مارس 2026 03:59:18
DataStore.edb الموجود0x8024402C03:59:24، بعد 6 ثوانٍ من فشل الخدمة بالفعل وتخليها عن الجلسة04:09:19 مع رمز خروج 0x240001ملاحظة: في كلتا الجلستين كانت الشبكة غير متاحة عند تهيئة خدمة WU، مما تسبب في تخليها عن فحص التحديث. أصبحت الجلسة 2 متصلة بعد 6 ثوانٍ من خروج الخدمة بالفعل من مرحلة الاكتشاف، مما يشير إلى أن خط أنابيب التحديث لا يعيد المحاولة بعد فشل فحص الشبكة الأولي.
https://slscr.update.microsoft.com/SLS/{SERVICE_GUID}/x64/{BUILD}/0
?CH=928 catalog hash / change counter (928 in session 1, 19 in session 2)
&L=en-US;... 31 installed language packs
&PT=0xc0 platform type: Xbox
&WUA=1451.2510.27012.0 Windows Update Agent version
PT=0xc0 هو معرّف منصة Xbox المضمن في كل فحص تحديث. انخفض CH من 928 إلى 19 بين الجلستين، بما يتوافق مع عدّاد حالة الكتالوج الذي يُعاد تعيينه عند إعادة إنشاء قاعدة البيانات.
[REDACTED] هو معرّف إعداد خدمة تحديث Windows الخاص بـ Xbox، الموجود في الدليل الفرعي SLS\ والمضمن في كل عنوان URL لطلب SLS.
مسارات بناء Azure DevOps الداخلية تسربت عبر أدوات التصحيح:
C:\__w\1\s\src\Client\comapi\DiscoveryJob.cpp
C:\__w\1\s\src\Client\comapi\XxxJob.cpp
C:\__w\1\s\src\Client\lib\DownloadFile\DownloadSession.cpp
C:\__w\1\s\src\Client\Engine\handler\UHManager\uhmgr.cpp
C:\__w\1\s\src\Client\lib\util\fileutil.cpp
C:\__w\1\s\src\Client\lib\wusyshelper\wusyshelper.cpp
C:\__w\1\s\ هو مسار مساحة عمل الوكيل المستضاف ذاتيًا القياسي في Azure DevOps. يتشارك عميل تحديث Windows الخاص بـ Xbox المصدر مع تحديث Windows لسطح المكتب، فهو نفس قاعدة الشيفرة المُجمَّعة لهدف منصة Xbox.
تم تعيين GUID المؤقت REDACTED_GUID في الجلسة 1 وبقي بعد إعادة التشغيل إلى الجلسة 2. وهو مخزّن خارج DataStore.edb (ربما في السجل) ويُجدول فحص التحديث التالي بشكل مستقل عن دورة حياة قاعدة البيانات.
xbtplinkc.sys عميل ارتباط نقل XVIOيكشف تحليل الواردات عن سطح واجهة برمجة تطبيقات المخزن المؤقت الحلقي الكامل لـ XVIO وآلية ترجمة GPA:
XvioAcquireRingBufferRundown / XvioReleaseRingBufferRundown
XvioSignalFlag
XvioWriteRingBuffer
XvioGetIncomingRingBufferAvailableBytes
XvioReadRingBufferEx
XvioInitialize
XvioGetRingBufferContext
XvioCreateRingBuffer
XvioGetReservedMemory reserved hypervisor memory carve-out
XvioTranslateXrfsGuestGpa translate ERA guest physical address for SystemOS access
XvioTranslateXrfsGuestGpa هي بدائية الذاكرة المشتركة بين الأقسام. يُسلّم ERA إلى SystemOS عنوانًا فعليًا ضيفًا (Guest Physical Address)؛ وتستدعي SystemOS هذه الدالة للحصول على تعيين قابل للاستخدام. هذه هي الآلية الكامنة خلف التقاط GameDVR، وتركيب إطار العرض (framebuffer compositing)، والصوت بين الأقسام.
يستورد xbtplinkc أيضًا XpalIsCapabilityEnabledByVm من xpalk.dll؛ اللاحقة ByVm تستعلم عن حالة الإمكانية على مستوى برنامج hypervisor، وليس على مستوى نظام التشغيل، مما يؤكد أنه يتحقق مما إذا كان برنامج hypervisor نفسه قد فعّل الإمكانية قبل المتابعة.
xrfs.sys نظام ملفات وقت تشغيل Xboxبرنامج تشغيل نظام ملفات NT كامل. يؤكد تحليل الواردات أنه يطبّق دلالات نظام ملفات حقيقية: مدير التخزين المؤقت (Cc*)، إدخال/إخراج MDL، أقفال الملفات (FsRtl*)، إنشاء واصفات الأمان، الجداول العامة لشجرة AVL لفهرسة الدلائل.
الواردات المميزة الرئيسية:
FsRtlRegisterFileSystemFilterCallbacks
IoRegisterFileSystem
RtlCreateSecurityDescriptor / RtlCreateAcl / RtlAddAccessAllowedAce
XpalIsCapabilityEnabled
WppRecorder.sys in-memory ETW trace recorder
لا يستورد xrfs.sys XVIO مباشرة. بدلاً من ذلك، يستورد xbtplinkc.sys XvioTranslateXrfsGuestGpa؛ XRFS هي طبقة نظام الملفات، بينما توفر XVIO ترجمة GPA تحتها.
ERA game process
↓
ERA kernel / XVIO guest side
↓ [hypervisor shared memory / GPA translation via XvioTranslateXrfsGuestGpa]
SystemOS: xbtplinkc.sys (ring buffer transport)
↓
SystemOS: xrfs.sys (NT filesystem semantics)
↓
S:\Shares\TitleScratch (junction, target redacted by OS)
↓
SystemOS userspace / shell
الواردات الرئيسية الخاصة بـ Xbox:
XCRDAPI.dll تحكم مباشر في تحميل XVD:
XCrdSetEraLaunchMapping associates XVD content with ERA partition pre-launch
XCrdMountContentType mounts content categories into ERA
XCrdUnmount tears down ERA content mounts
XCrdOpenAdapter / XCrdCloseAdapter
XCrdQueryDevicePath / XCrdBuildPath
XCrdDeleteXVD
XCrdSuspendResumeIoBalancer
XCrdIsCorruptionError
XCrdFreeDevicePathBuffer
ntdll.dll
NtOpenPartition
RtlSetProcessIsCritical
RtlWaitForWnfMetaNotification / RtlPublishWnfStateData
NtQueryWnfStateData / NtDeleteWnfStateName
ext-ms-win-xblauth-console-l1-1-0.dll (تحميل مؤجل):
XblaInitialize bootstraps Xbox Live auth identity into ERA partition
ext-ms-win-ntuser-rim-l1-1-0.dll (تحميل مؤجل):
RIMAddInputObserver / RIMRemoveInputObserver intercepts raw controller input for ERA routing
SspiCli.dll:
LogonUserExExW creates user logon tokens for the ERA session
ext-ms-win-session-usermgr-l1-1-0.dll (تحميل مؤجل):
UMgrOpenProcessHandleForAccess
RPCRT4.dll:
RpcServerInqCallAttributesW / I_RpcBindingInqLocalClientPID RPC caller identity verification
eraproxyapp.exe هو المُركِّب (compositor) في جانب SystemOS وجسر IPC بين قسم ERA والصدفة. حجمه 339KB، وهو أكبر بكثير من eracontrol.exe (249KB).
تركيب إطار العرض:
d3d11.dll: D3D11CreateDevice
dcomp.dll: DCompositionCreateDevice
AVRT.dll: AvSetMmThreadCharacteristicsW / AvSetMmThreadPriority / AvRevertMmThreadCharacteristics
ينشئ eraproxyapp جهاز D3D11 وجهاز DirectComposition لتركيب إطار عرض ERA في صدفة SystemOS. تضمن أولوية مؤشر ترابط الوسائط المتعددة AVRT تسليم الإطارات بزمن وصول منخفض.
IPC بين الأقسام عبر ALPC:
ntdll: NtAlpcConnectPort / NtAlpcAcceptConnectPort
NtAlpcSendWaitReceivePort
NtAlpcCreatePortSection / NtAlpcCreateSectionView
NtAlpcDeletePortSection / NtAlpcDeleteSectionView
NtAlpcDisconnectPort / NtAlpcCancelMessage
توفر أقسام منفذ ALPC ذاكرة مشتركة بدون نسخ (zero-copy). لا يتم نسخ إطار عرض لعبة ERA، بل تتم مشاركته عبر طرق عرض أقسام ALPC المعيّنة في نفس الوقت في كلا مساحتي العنوان.
مساحة اسم خاصة (قناة IPC آمنة):
CreatePrivateNamespaceW / OpenPrivateNamespaceW
CreateBoundaryDescriptorW / AddSIDToBoundaryDescriptor / DeleteBoundaryDescriptor
ClosePrivateNamespace
bcrypt: BCryptGenRandom / BCryptHashData / BCryptCreateHash / BCryptFinishHash
ينشئ eraproxyapp مساحة اسم كائنات خاصة مع واصف حدود قائم على SID، وهي مساحة اسم كائنات مسماة مرئية فقط لـ ERA وSystemOS. توفر BCrypt مادة مفاتيح عشوائية للحدود.
هوية العنوان والصوت:
XboxLiveTitleId.dll: GetCurrentXboxLiveInfo identifies the running title
xamapi.dll: XamApiDisableLayoutScaling
ConsoleGlobalization.dll: GetConsoleGlobalizationInfo
api-ms-win-audiocore-spatial-config-l1-1-0.dll: Create_SpatialAudioDevicePropertyReader
الأنابيب المسماة:
CreateNamedPipeW / ConnectNamedPipe / DisconnectNamedPipe
XblAuthConsoleExt.dll هوية الأجهزة والمصادقة (46 تصديرًا)هوية وحدة التحكم:
XblaGetConsoleCert / XblaGetConsoleId / XblaGetConsoleSerialNumber
XblaGetDevkitType retail vs devkit detection
XblaGetXblSandbox Xbox Live environment (retail/preview/dev)
هوية العنوان:
XblaGetXboxLiveTitleId
XblaGetTitleAttestation / XblaGetTitleConsoleGeneration
التشفير:
XblaSignDigest sign with console private key
XblaGetAttestation / XblaGetTpmPcrAttestation fTPM PCR boot chain measurements
XblaProcessChallenge / XblaProcessSpToken
يؤكد XblaGetTpmPcrAttestation أن وحدة التحكم تنفذ مصادقة كاملة لسلسلة الإقلاع. يمكن لمايكروسوفت التحقق تشفيريًا من الحالة الدقيقة لتسلسل الإقلاع عندما تصادق وحدة التحكم على Xbox Live.
xamapi.dll طبقة توافق مدير تطبيقات Xbox (24 تصديرًا)يتجاوز واجهات برمجة تطبيقات Win32 القياسية لتطبيقات ERA التي تعمل في سياق SystemOS:
ClipCursorOverride / GetClipCursorOverride
GetCursorPosOverride / SetCursorPosOverride
GetMonitorInfoWOverride / GetSystemMetricsOverride
XamApiDisableLayoutScaling / XamApiSetLayoutScaleOverride
AdjustDeviceIdMappingForKeyEventBefore / After
UserContextExtInitialize / SetToken / Cleanup
هكذا تقدم SystemOS بيئة Windows PC مقنعة للمكونات التي تتوقع واجهات برمجة تطبيقات Win32 القياسية للعرض والإدخال.
xboxsynthetickm.dll حقن الإدخال الاصطناعي (M:\، 12 تصديرًا)موجود على وحدة تخزين الطبقة العلوية للأجهزة M:\ (تُعامَل كطبقة أجهزة، وليست طبقة تطبيقات):
SyntheticInput_CreateKeyboard / CreateMouse / CreateMouseAbsolute
SyntheticInput_InjectKeyboardInput / InjectMouseInput
SyntheticInput_ReadKeyboardOutput
هكذا يحول xCloud حزم الشبكة إلى أحداث إدخال محلية. لا يمكن لوحدة التحكم التمييز بين الإدخال الاصطناعي والإدخال الفعلي على مستوى الأجهزة.
xboxcloudstreaming.dll محرك بث xCloud (تصديران)GetCloudStreamManager
ShutdownCloudStreamManager
XboxLiveTitleId.dll اكتشاف اللعبة في وقت التشغيل (12 تصديرًا)GetCurrentXboxLiveTitleId / GetCurrentXboxLiveInfo
GetProcessXboxLiveInfo / GetPackageXboxLiveInfo
AuthenticateSystemXboxLiveTitle
XBBlackbox.dll مسجل الرحلةتصدير واحد: BlackboxServiceMain
XBCastRecv.dll مستلم Miracast (22 تصديرًا)GetWiFiDirectDeviceCategoryForCurrentPlatform
IsMiracastReceiverStartAllowedWithoutApp
GetEdidForCurrentDisplayDevice
Xbox.Shell.Api.dll تكامل الصدفة (44 تصديرًا)CheckGamingPrivilegeSilently / WithUI
ShowProfileCardUI / ShowGameInviteUI
PlaySystemSound
AreWebAppsEnabled
XAccessoriesGip.dll:
PendragonGIP_SendGIPMessage
PendragonGIP_SetMessageCallback
PendragonGIP_Start / Stop
Hypervisor (lowest layer, hardware virtualization)
↓
Host OS (Root Partition) hidden from SystemOS, management OS
├── 108MB fixed RAM carve-out
├── 5 core system processes
├── **XVIO.SYS** Xbox Virtual I/O core (ring buffers, GPA translation)
├── **XSraFlt.sys** GPU security filter (display capture interception)
├── **sevpipe driver** secure IPC namespace root
├── **xvncbus.sys** Durango Virtual XVNC Bus Driver
├── **xvnc.sys** XVSC miniport
├── **xrfs.sys** NTFS Filesystem driver
└── Hardware device ownership (GPU, network, storage)
↓ (creates child VMs with virtualized hardware)
SRA SystemOS Partition (Windows 11 24H2 / WCOS, child partition)
├── Total RAM: 6400MB (dynamically allocated)
├── 89-95 processes
├── sevpipe IPC backbone (client views)
├── ERA lifecycle management (eracontrol.exe)
├── Telemetry pipeline (EtwUploader->NetworkTransferManager)
├── XTF toolchain (J:\tools\, always present on retail)
├── Device Portal web server (:11443)
└── Virtualized hardware views (GPU, NIC, storage via Host OS)
↓ (manages as child)
ERA GameOS Partition
├── Game title process
├── XVIO client view
└── All hardware access proxied: ERA->SystemOS->Host OS
Host OS Boot (invisible to research, complete assumptions):
1. Host OS loads from its own protected storage partition
2. Normal Windows driver loading within Host OS:
- XVIO.SYS (registers as \Device\Xvio)
- XSraFlt.sys (filters GPU commands)
- sevpipe driver (creates \\.\sevpipe namespace)
- xvncbus.sys/xvnc.sys (virtual NIC root)
3. Host OS creates SystemOS VM with virtualized hardware, and symlinks images
4. SystemOS never sees Host OS drivers or filesystem
SystemOS View (what research can tell):
1. Sees virtualized devices provided by Host OS
2. XVIO appears as a service, not a driver (xvmctrl.sys interface)
3. sevpipe appears as a namespace but server runs in Host OS
4. Cannot enumerate or access Host OS drivers/files
↓
ERA: XVIO guest call->SystemOS
↓
SystemOS: xvmctrl.sys->xvioc.sys->Host OS via hypercall
↓
Host OS: XVIO.SYS validates request
↓
Host OS: Programs actual GPU MMU
↓
Host OS: Returns GPA mapping token to SystemOS
↓
SystemOS: Forwards to ERA
يحتوي ملف HDRGameCalibration من نوع WinMD بشكل مفاجئ على ما يبدو أنه السجل الكامل لعقود WinRT على Xbox، بما يزيد عن 100 عقد يحدد كل سطح API من نوع WinRT من الطرف الأول المتاح على المنصة.
Kinect كعقد مدعوم. Windows.Kinect.KinectContract v1 حاضر كعقد من الدرجة الأولى غير مُهمَل، بما يتوافق مع المكدس النشط (C:\Windows\System32\ht) وقيمة KinectSensorEnabled=true في WdConfig. رؤية Kinect هي بنية تحتية تتم صيانتها بنشاط حتى على الأجهزة التي لا تحتوي على Kinect مادي. خط أنابيب التنسيق الكامل (nuiservice.exe, KinectMediaSource.dll, ثلاثة مسارات استدلال, توجيه المخرجات) موثق في القسم 33.
الإعلانات بنية تحتية داخلية. كون AdsContract عقدًا داخليًا وليس واجهة برمجة تطبيقات عامة في SDK، يعني أن توصيل الإعلانات مدمج في نظام التشغيل على المستوى نفسه الذي تعمل به المصادقة والتخزين، وليس تكاملًا عبر SDK من طرف ثالث.
أتمتة الاختبار على أجهزة التجزئة. يأتي Windows.Xbox.TestAutomationContract على وحدات التجزئة، بما يتوافق مع إمكانية وصول أدوات وضع المطوّر إلى Windows.Xbox.TestAutomationContract.
UserMgr2 هو حساب المستخدم التفاعلي الذي يملك الجلسة النشطة المسجلة الدخول. NTUSER.DAT مقفل (UserMgr2 نشط). النتائج الرئيسية من الملف الشخصي:
| المسار | المحتويات |
|---|---|
ntuser.ini | 3 أسطر جديدة |
AccountPictures\UserImage.jpg | صورة واحدة لحساب Microsoft بدقة 1080×1080، منفصلة عن نظام صور الألعاب (انظر القسم 3.2) |
تُحل الروابط في Device Portal باستخدام صلاحيات UserMgr2 بدلاً من صلاحيات DevToolsUser (انظر القسم 1.2 والسؤال غير المحلول 12). يتمتع UserMgr2 بمستوى صلاحيات أعلى من DevToolsUser؛ إذ يملك UserMgr2 الجلسة التفاعلية بينما DevToolsUser حساب وصول مطوّر مقيد.
nuiservice.exe (3.8MB، يعمل بصلاحيات SYSTEM، دائم التشغيل) هو عملية التنسيق لمكدس الإدراك الكامل Kinect/NUI. يستضيف ثلاثة مسارات استدلال متوازية: الجسم والوجه والصوت؛ يعمل كل منها كخط معالجة منفصل، مجدولًا بشكل تعاوني عبر مخطط ألياف (fiber graph) وتغذيه بالإطارات مضخة IOCP مدعومة بجهاز استدلال GPU عبر D3D11.
nuiservice.exe
├── D3D11CreateDevice <- GPU inference device
├── IOCP frame pump <- async frame dispatch
└── Fiber graph <- cooperative ML inference scheduling
يتم إدخال الإطارات بواسطة KinectMediaSource.dll:
KinectMediaSource.dll
├── MFCreate2DMediaBuffer <- allocates 2D image frames (Media Foundation)
├── alignment.bin [10.7MB] <- depth -> 3D coordinate transform LUT
├── alignment_color.bin [5.7MB] <- depth/color registration
├── DeviceIoControl->\\.\KinectSensorControl <- talks to PetraXC.sys
└── CoCreateInstance {9178b0a6} <- self-registration CLSID
alignment.bin (10.7MB) وalignment_color.bin (5.7MB) هما جدولا بحث محسوبان مسبقًا لتحويل بيانات مستشعر العمق الخام إلى إحداثيات ثلاثية الأبعاد في الفضاء العالمي ولتسجيل بكسلات العمق مع بكسلات اللون على التوالي.
تُحمَّل النماذج من X:\ht\versions\{1.0.0|1.0.1|1.0.2}\ عبر vvtechs.dll (NuiVisionCreateFactory):
KinectMediaSource.dllتُحمَّل النماذج من C:\Windows\System32\ht\ (انظر القسم 3.3 لقائمة النماذج الكاملة):
LogonUserExExW لتسجيل الدخول التلقائي المعتمد على الوجه (انظر توجيه المخرجات أدناه)يتم التعامل معها بواسطة speechwov.dll:
speechwov.dll
├── SpeechWov_Create / UpdateAcousticModels
├── SpeechWov_ProcessRecognition
└── Output->wake word events, speech recognition events
speechwov.dll هو محرك لكلمات الاستيقاظ والتعرف على الكلام. يشير UpdateAcousticModels إلى إمكانية تحديث النموذج الصوتي أثناء التشغيل (تغيّرات حزمة اللغة أو معايرة الميكروفون). هذه هي البنية التحتية لأوامر "Hey Cortana" / الأوامر الصوتية على مستوى النظام.
يوزع nuiservice.exe نتائج الاستدلال عبر قنوات متعددة:
RtlCapabilityCheck هي آلية التحكم في الوصول: يجب أن تحمل العملية صلاحية NT المناسبة لتلقي أي بيانات NUI. يقيّد هذا وصول عناوين الألعاب ووصول الصدفة ووصول المطوّرين بشكل منفصل.
عقد WinRT Windows.Kinect.KinectContract v1 (انظر القسم 31) هو السطح المواجه للتجزئة لوصول عناوين الألعاب إلى هذا الخط.
Camera Sensor Hardware
└── ciumd_wddm.dll <- most likely WDDM user-mode camera driver
└── PetraXC.sys (KinectSensorControl) <- WDF 1.11, disabled until device arrives
└── \\.\KinectSensorControl
nuiservice.exe [always running, SYSTEM]
└── KinectMediaSource.dll->DeviceIoControl->\\.\KinectSensorControl
├── Track 1: vvtechs.dll (body)
├── Track 2: FaceDetector/FaceRecognition + RF models (face)
└── Track 3: speechwov.dll (audio)
└──->WNF / LogonUserExExW / named pipe / RPC / State Repository
تم إجراء البحث على Xbox Series S من إصدار التجزئة في وضع المطوّر. كان كل الوصول عبر البنية التحتية لوضع المطوّر التي توفرها Microsoft.
| الأداة | الغرض |
|---|
| Windows Explorer | مشاركة شبكة Xbox (التعليمات في https://XBOX:11443/#File%20explorer > تصفّح) |
SSH (DevToolsUser + VS PIN) | الوصول إلى قشرة SystemOS |
mklink /J | إنشاء وصلة NTFS لـ كشف محركات الأقراص عبر مشاركة الشبكة |
Device Portal (https://XBOX:11443) | REST API، مستعرض ملفات، قائمة العمليات، تفريغات حية |
dumpbin /IMPORTS, dumpbin /EXPORTS | تحليل ثابت لملفات PE الثنائية عبر مشاركة الشبكة |
| Python | نص برمجي لأتمتة REST API |
| Phasor | بيئة تشغيل نصوص برمجية للاستخدام على الكونسول (نسخ عبر مشاركة الشبكة، تشغيل عبر SSH) نزّلها من هنا |
reg query | تعداد السجل من قشرة SSH |
WdApp.exe | مدير الحزم والتحكم في دورة حياة ERA (تعداد سطح الأوامر) |
WdConfig.exe | تعداد API إعدادات الكونسول |
| تحليل تتبعات ETL | خط أنابيب Windows Update عبر وصلة S:\Deployment\SoftwareDistribution\ |
| تفريغات العمليات الحية | GET /api/debug/dump/usermode/live?pid=<pid> |
| Ghidra | تحليل واجهات COM / برامج التشغيل |
| IDA Pro | مخططات استدعاء لملفات DLL وواجهات COM المعقدة |
| XboxTools | مجموعتي الخاصة من الأدوات المساعدة لأغراض متنوعة |
| Namespace | Base URI | Key Endpoints |
|---|
| نشر التطبيق | /api/appx/packagemanager/ | تثبيت، إلغاء تثبيت، سرد الحزم، مجموعات المحتوى |
| إدارة الأجهزة | /api/devicemanager/ | شجرة أجهزة هرمية كاملة |
| جمع التفريغ | /api/debug/dump/ | تفريغ العمليات الحية، تفريغ فحص الأخطاء، التحكم في الانهيار |
| ETW | /api/etw/ | ETW في الوقت الفعلي عبر WebSocket، تعداد المزوّدين |
| مستكشف الملفات | /api/filesystem/ | تصفح، رفع، تنزيل، حذف، إعادة تسمية |
| الشبكات | /api/networking/ | ipconfig |
| معلومات نظام التشغيل | /api/os/ | اسم الجهاز، معلومات نظام التشغيل |
| الأداء | /api/resourcemanager/ | قائمة العمليات الحية مع CPU/الذاكرة، إحصائيات أداء النظام |
| الطاقة | /api/power/ | البطارية، مخططات الطاقة، تقارير دراسة السكون |
| التحكم عن بُعد | /api/control/ | إعادة تشغيل، إيقاف تشغيل |
| إدارة المهام | /api/taskmanager/ | بدء/إيقاف التطبيقات، إنهاء العمليات |
| بلوتوث | /api/bt/ | تعداد، إقران، توصيل أجهزة الصوت |
| واي فاي | /api/wifi/ | تعداد الواجهات/الشبكات، اتصال، فصل |
| WER | /api/wer/ | تعداد وتنزيل تقارير الإبلاغ عن أخطاء Windows |
| WPR | /api/wpr/ | بدء/إيقاف/تنزيل تتبعات أداء WPR، ملفات تعريف مخصصة |
| Flag | Affected Endpoints |
|---|
NoKernelDumps | تفريغ النواة الحي، تنزيل تفريغ فحص الأخطاء |
NoUserModeDumps | تفريغ العملية الحية (حسب PID) |
NoBugcheckDumps | قائمة/تنزيل/تحكم تفريغ فحص الأخطاء |
NoWPRBootTracing | تتبع WPR عند الإقلاع |
NoPowerSchemeAccess | قراءة/كتابة مخطط الطاقة |
| File | Size | Purpose |
|---|
RestDocumentation.json | 40KB | مخطط كامل لواجهة برمجة تطبيقات REST قابل للقراءة آليًا |
workspace-definitions.js | 26KB | تخطيط لوحة مساحة عمل البوابة (فهرس ثانوي لواجهة برمجة التطبيقات) |
common-xbox.js | 21KB | إضافات البوابة الخاصة بـ Xbox فوق بوابة الجهاز الأساسية |
common.js | 56KB | إطار عمل بوابة الجهاز الأساسي |
toolhost.js | 7.8KB | طبقة استضافة الأدوات |
rest.js | 19KB | مكتبة بناء استدعاءات REST |
d3.js | 570KB | تصور بيانات D3 |
konva.js | 676KB | عرض Canvas |
| PID | Image | User | Notes |
|---|
| 156 | (مخفي) | SYSTEM | مجموعة عمل 66MB، لا يوجد اسم صورة ظاهر |
| 1456 | xbdiagservice.exe | SYSTEM | خدمة تشخيص Xbox |
| 1808 | EtwUploader.exe | SYSTEM | رافع بيانات تتبع ETW |
| 1832 | StorageManagement.exe | DefaultAccount | تطبيق Xbox.StorageManagement UWP، IsRunning: false (معلّق) |
| 1904 | ApplicationClipService.exe | SYSTEM | إدارة مقاطع GameDVR، مجموعة عمل 37MB |
| 2032 | xnetsharedservice.exe | SYSTEM | جسر الشبكات بين الأقسام |
| 2040 | NetworkTransferManagerService.exe | SYSTEM | مدير تنزيل محتوى Xbox |
| 2344 | WebManagement.exe | SYSTEM | خادم ويب بوابة الجهاز |
| 2416 | XUpdMgr.exe | SYSTEM | مدير تحديث Xbox |
| 2436 | PRProvisioningService.exe | NETWORK SERVICE | خدمة توفير PlayReady |
| 2460 | XNetConfig.exe | SYSTEM | إعداد الشبكة |
| 2468 | toolsautoexec.exe | SYSTEM | مشغّل تلقائي لسكربت .xboxunattend |
| 2572 | sihost.exe | DefaultAccount | مضيف البنية التحتية للصدفة، مجموعة عمل 60MB |
| 2836 | XboxDevService.exe | SYSTEM | مضيف خدمة مطوري Xbox، 37MB |
| 3160 | xrun.exe | DefaultAccount | منسق إطلاق الألعاب في جانب الصدفة |
| 3256 | MicrosoftXboxSecurityClip.exe | SYSTEM | مضيف التحقق من DRM في وقت التشغيل |
| 3600 | XboxUI.exe | DefaultAccount | واجهة مستخدم صدفة لوحة المعلومات، مجموعة عمل 60MB |
| 3844 | xrfssvc.exe | SYSTEM | خدمة نظام ملفات XRFS بين الأقسام، 352KB (خاملة) |
| 3864 | xrmntcl.exe | SYSTEM | عميل تحميل وقت تشغيل Xbox |
| 3888 | xtfrtservice.exe | SYSTEM | خدمة وقت تشغيل XTF |
| 4320 | Guide.exe | DefaultAccount | دليل Xbox (Xbox.Guide_2602.0.2602.11003)، IsRunning: true |
| 4548 | eracontrol.exe | SYSTEM | مدير دورة حياة قسم ERA، مجموعة عمل 991KB |
| 4660 | WWAHost.exe | DefaultAccount | الصفحة الرئيسية للمطور (Microsoft.Xbox.DevHome_1.0.2601.4001)، IsRunning: true |
| 6524 | CastSrv.exe | DefaultAccount | خدمة البث Miracast |
| الطبقة | المكونات |
|---|
| المحتوى | XCRDAPI.dll (تركيب/إزالة تركيب/بث XVD) |
| الهوية | XblAuthConsoleExt.dll, XboxLiveTitleId.dll, pspsra.sys |
| DRM | MicrosoftXboxSecurityClip.exe, XCRDAPI.dll |
| التحكم في ERA | eracontrol.exe (NtOpenPartition, XCRDAPI, XblaInitialize) |
| وكيل ERA | eraproxyapp.exe (ALPC, D3D11, DComp, مساحة اسم خاصة) |
| الإدخال (محلي) | xviokbd.sys, xviomou.sys, XAccessoriesGip.dll (Pendragon) |
| الإدخال (عن بُعد) | xboxcloudstreaming.dll, xboxsynthetickm.dll |
| تركيز الإدخال | xviomonc.sys (انتحال الهوية) |
| NPFS؟ | VMNP.SYS برنامج تشغيل NPFS (نظام ملفات الأنابيب المسماة؟ نظام تصفية؟) يُستخدم أيضًا لانتحال هوية ERA |
| نظام التشغيل المضيف | xvmctrl.sys, XVIO.SYS, FLTMGR.sys (ليس على نظام الملفات) |
| نظام الملفات عبر الأقسام | xrfs.sys, xbtplinkc.sys, xrmntcl.exe, xrfssvc.exe |
| العرض | eraproxyapp.exe, xamapi.dll (تجاوزات Win32), MPO المستوى 3 |
| GPU | umd12ddi_arden.dll, newbe_xs.dll, xbsc_xs.dll, xg_xs.dll |
| الصوت | XVMAudioServer.dll, XAudio2_8/9.dll, إعداد الصوت المكاني |
| الشبكات | xvnc.sys/xvncbus.sys (محول شبكة افتراضي), NetXVmService |
| التشخيص | XBBlackbox.dll, xbdiagservice.exe, EtwUploader.exe, EtwPlus.dll (خط أنابيب Etx) |
| التحديث | XUpdMgr.exe, عميل WU (wuauengcore.dll), وحدة تخزين Deploy:\ |
| الصدفة | Xbox.Shell.Api.dll, XboxUI.exe, Guide.exe, sihost.exe |
| البث | xboxcloudstreaming.dll, XBCastRecv.dll (Miracast) |
| أدوات المطوّرين | WebManagement.exe (بوابة الجهاز), مكدس XTF (132 ملفًا), WdApp.exe, unattendedsetuphelper.exe |
| التوافق | xamapi.dll (طبقة توافق Win32), dxbc2dxil_xs.dll (DX11->DX12) |
| الرؤية / Kinect | nuiservice.exe (3.8MB, SYSTEM, مُنظّم دائم التشغيل), KinectMediaSource.dll (التقاط الإطارات, alignment.bin 10.7MB, alignment_color.bin 5.7MB), vvtechs.dll (NuiVisionCreateFactory, تتبع الجسم), speechwov.dll (مسار كلمة الاستيقاظ/الكلام), نماذج الغابة العشوائية للوجه (FaceDetector.bin, FaceRecognition.bin, ExpressionRandomForest.model, +8 أخرى), 3 إصدارات نشطة (X:\ht\versions\) |
| الإعلانات | AdsLauncher (تطبيق نظام), Windows.Xbox.System.Internal.AdsContract (عقد WinRT) |
| القديم (معطّل) | Zurich (موالف تلفزيون، مرتبط بـ XVIO), PetraXC / KinectSensorControl (WDF 1.11, معطّل حتى وصول جهاز Kinect, يغذي KinectMediaSource.dll عبر \\.\KinectSensorControl) |
| العقد | الإصدار | ملاحظات |
|---|
Windows.Kinect.KinectContract | v1 | من المرجح أن Kinect مدعوم للتوافق العكسي مع عناوين الألعاب |
Windows.Xbox.TestAutomationContract | سطح أتمتة الاختبار يأتي على أجهزة التجزئة | |
Windows.Xbox.System.Internal.AdsContract | نظام الإعلانات هو عقد WinRT داخلي | |
Windows.Xbox.System.Internal.CopyOnLan.CopyOnLanContract | نسخ الألعاب عبر الشبكة المحلية، نقل العناوين عبر الشبكة المحلية؟ | |
Windows.System.Internal.XboxLive.Auth.AuthContract | v2 | سطح مصادقة Xbox Live داخلي (منفصل عن واجهات برمجة تطبيقات XBL العامة) |
AppData\Local\Packages\ | توجد فقط إعدادات تطبيقات المطوّرين المثبتة جانبيًا، تطبيقات نظام Xbox لا تستخدم مسارات التخزين القياسية LocalPackages لتطبيقات UWP |
| القناة | API | الغرض |
|---|
| بث على مستوى النظام | RtlPublishWnfStateData | ينشر حالة الجسم/الوجه/الصوت لجميع المشتركين في WNF |
| تسجيل دخول بالوجه | LogonUserExExW | يطلق تسجيل دخول المستخدم التلقائي المعتمد على الوجه |
| قناة مسماة لكل تطبيق | Named pipe server + GetNamedPipeClientProcessId | مخرجات مقيدة لكل عملية؛ يتحقق من هوية المستدعي قبل تسليم البيانات |
| استدعاء إجراء عن بُعد لكل مستدعي | RPC server + RpcServerInqCallAttributesW | وصول مصادق عليه لكل مستدعي إلى نتائج الاستدلال |
| هوية مستمرة | State Repository (SRDictionaryToPropertySet) | يحفظ الهوية المعترف بها عبر الجلسات |
| بوابة الصلاحيات | RtlCapabilityCheck | كل الوصول إلى مخرجات الاستدلال مقيد بفحص صلاحية NT |
| المستهلك | ملاحظات |
|---|
| Xbox Shell | تكيّف واجهة المستخدم مع التعبيرات |
Guide.exe | مشغل تسجيل الدخول التلقائي |
XboxUI.exe | واجهة مستخدم تدرك الانتباه/النظرة |
| عناوين الألعاب | عبر عقد WinRT NuiVision (Windows.Kinect.KinectContract v1، إصدار التجزئة) |
| xCloud | عميل البث يستقبل حالة NUI |