Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
XboxSeries — Xbox Series のアーキテクチャに関する個人研究 | Kitploit
ツール/GitHubGitHub/daniellmcguire/xboxseries
組み込みシステムセキュリティ静的分析動的分析 (サンドボックス)リバースエンジニアリングデバッガハードウェアセキュリティバイナリ解析学習と教育ファームウェア解析
GitHubdaniellmcguire/xboxseries

XboxSeries

Xbox Series のアーキテクチャに関する個人研究

5741ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る
ウェブサイト

Xbox Series: 内部アーキテクチャ調査

フィールド値
日付2026年3月9日〜12日 + 2026年7月7日〜?日
ハードウェアXbox Series S (コードネーム: Lockhart)
OS ビルド26100.7010.amd64fre.xb_flt_2602ge.260212-1010 + 26100.8561.amd64fre.xb_flt_2606ge.260609-2200
アクセス方法Dev Mode + SSH + REST API + NTFS ファイル共有ジャンクション

要約

このレポートは、Xbox Series S の内部アーキテクチャを静的および動的に分析したもので、すべて Microsoft の公式開発者モード基盤を通じて実施されました。エクスプロイトやポリシー違反は一切使用されておらず、すべてのアクセスは個人開発者プログラムの範囲内に収まっています。

本レポートには、ゲームプレイに使用される最上位レベルのコンポーネントから、最下位レベルのシステムドライバーコンポーネントに至るまでの詳細が含まれています。これらの詳細のほとんどは Xbox One でも同じであると予想されます。


補足

AI は、大量の初期調査結果 (200 件以上の分析出力と 50 件以上のランダムなメモ) をこの文書にすばやく一貫した形式で整形するために使用されました。今後の編集はすべて手作業で行われます。

もしこの文書の一部が不明確、記載不足、または誤りであると思われる場合は、遠慮なく DM を送ってください。また、私の質問 (セクション 12) に対する回答があれば、それも歓迎します。GUID やその他の一般的なパターンは、私のアカウントを特定するようなものを残してしまわないように、pre-commit フックで秘匿化されています。

私が取り組んでいることの多くは仮定に基づいているため、不正確かもしれません。より多くの情報を得て、より多くのバイナリを調査するにつれて変更される可能性があります。

おそらくお察しの理由により、私はいかなる状況でも、直接のバイナリ、逆アセンブル出力、または Microsoft およびその子会社の IP と見なされるものを共有しません。

root@kitploit:~
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 は、Windows が初期化される前にハイパーバイザー (HostOS 経由) によって直接読み込まれ、アクセス可能なすべてのボリュームには存在しません。完全なカーネルアクセス下でも改ざんできず、これが主要なセキュリティ境界となっています。

HVCI は意図的に無効化されています (セクション 18)。 IsSecureKernelRunning = 0x0 は、セキュアカーネル (VTL1) が実行されていないことを確認しています。コード整合性はロード時のみで、バイナリがマップされた後は TOCTOU ウィンドウが残ります。これは意図的なパフォーマンストレードオフであり、セキュリティ境界はパーティション内のメモリ保護ではなく、ハイパーバイザーパーティションです。

NTFS ジャンクションにより、SystemOS ファイルシステム全体がネットワーク経由で公開されます (セクション 1.2)。 SSH シェルから単一の mklink /J コマンドを実行するだけで、C:\ またはその他の任意の場所が Device Portal のファイル共有にマップされ、開発者モードの PIN 以外に追加の認証を必要とせず、すべてのシステムバイナリをリモートから読み取ることができます。

パーティション間アーキテクチャはほぼ完全にマッピングされています (セクション 4、14、26〜28)。 ERA ゲームパーティションは、ハイパーバイザーを介したチャネルのみを通じて SystemOS と通信します。I/O 用の XVIO リングバッファ、共有メモリ用の GPA 変換、IPC 用の HvSocket、そして親となる "Host OS" によって許可されるゼロコピーフレームバッファ配信用の ALPC ポートセクションです。

Deploy:\ ジャンクションはローカルアクセス制限を回避します (セクション 25)。 Windows Update ボリュームは、どこかしらの不整合 (おそらく xrfssvc.exe?) により、ネットワーク共有 (S:\Deployment\SoftwareDistribution\) 経由でのみアクセス可能です。

ほとんどのバイナリには説明文字列が単に含まれているだけなのですが、それに気づいたのは今日になってからでした。というのも、私はコンソールへの実際の接続以外には Windows を何にも使っていなかったからです。多くの場合、内容は退屈ですが (例: XVUH、XVMCTRL)、時には非常に説明的なものもあります (例: Durango Virtual XVNC Bus Driver、Xbox Remote File System Service)。

対象範囲と制限事項

すべてのテストは、開発者モードの小売版 Xbox Series S 1台で実施されました。結果は多くのビルドを反映していますが、最終的にはビルド間の差分を取って報告書にまとめる予定です。調査結果は、ハードウェアリビジョン (Series X、Xbox One) やファームウェアバージョンによって異なる場合があります。いくつかのカーネルレベルのサーフェスには到達できませんでした。ライブカーネルダンプは NoKernelDumps 制限によってブロックされ、xvmctrl.sys の IOCTL サーフェスは完全には列挙されていません。未解決の質問はセクション 12 で追跡されています。


方法論

使用したツール

アプローチ

アクセスは、公式には文書化されていない (ただし、コミュニティドキュメント があります) Dev Mode SSH インターフェースを介して確立されました。NTFS ジャンクション手法 (セクション 1.2) により、D:\DevelopmentFiles のスクラッチスペースから、C:\ システムボリューム全体と、追加のドライブ文字を持つすべてのボリュームへの読み取りアクセスが拡張されました。すべての分析は読み取り専用であり、システム設定は変更されませんでした (WdConfig.exe set は使用されませんでした)。Xbox は、SSH シェルを介して標準の x86_64 Windows コンソールバイナリ (/MT でコンパイル) を直接実行できるため、ローカルで解析ツールを実行するためにこれを使用しました。

カーネルダンプは利用できませんでした。NoKernelDumps という Device Portal の制限により、小売版の開発者モードではブロックされます。ユーザーモードのライブプロセスダンプは利用可能であり、関連する箇所で使用されました。


1. リモートアクセス

1.1 シェルアクセス

Xbox Dev Mode は Visual Studio をサポートしており、これは SSH を使用します:

  • ユーザー名: DevToolsUser
  • パスワード: Dev Home に表示される Visual Studio の PIN

1.2 ファイルシステムアクセス

https://XBOX:11443 の Device Portal は、D:\DevelopmentFiles への隠し NTFS ファイル共有を公開しています。SSH シェルから:```batch mklink /J D:\DevelopmentFiles\C C:\

root@kitploit:~
This creates a junction point from the developer scratch space to the system C: drive root, exposing the entire SystemOS filesystem as a readable network share at:

    \\XBOX\DevelopmentFiles\C

This allows running tools like `dumpbin` from a PC directly against Xbox system binaries over the network.

---

## 2. OS Identity

| Field              | Value             |
|--------------------|-------------------|
| 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`          |

The OS identifies as **SystemOS**, not Windows. The build branch `xb_flt_2602ge` seems to be a distinct Xbox "fork" of the Windows codebase, still very similar to Windows 11. Some Windows system binaries are bit-for-bit identical to their desktop counterparts, built with the same MSVC toolchain, likely originating from the same UUP packages. This is seperate from the unclear "Host OS".

### 2.1 Registry Identity

Several `CurrentVersion` fields have been intentionally frozen, similarly to desktop Windows (for compatibility with Xbox One titles in this case):

| Key | Value | Notes |
|-----|-------|-------|
| `CurrentVersion` | `6.3` | Reports internally as Windows 8.1, for compatibility |
| `BuildGUID` | | zeroed/scrubbed |
| `InstallDate` | `0` | no install timestamp |
| `EditionID` | `SystemOS` | Never updated |
| `ReleaseId` | `2009` | Frozen at Windows 10 20H2 era; never incremented |

---

## 3. Volume Layout

The console exposes 13 drive letters, most of which are assumed to be [like the Xbox One, entirely virtual](https://xboxoneresearch.github.io/wiki/operating-system/xbox-operating-system/)

| Drive | Label | Contents | Notes |
|-------|-------|----------|-------|
| `C:` | System Boot | Windows OS files | Standard SystemOS partition |
| `D:` | *(none)* | `DevelopmentFiles\` | Dev mode scratch space |
| `G:` | *(none)* | `GameDVR_VideoBuffer` (272MB), `GameDVR_AudioBuffer` (16MB), `GameDVR_AudioBuffer_SysLoopback` (3MB) | Raw circular capture buffers, shared memory between ERA and SystemOS |
| `J:` | Sys Tools | XTF toolchain, drivers, QuickActions | See Section 5 |
| `M:` | Misc | Contains the console specific NTFS overlays for libraries and drivers | System OS partition?
| `N:` | *(none)* | `BlackBox\`, `EtwPlus\`, `CMS\`, `errorstrings\`, `usersettings\` | Diagnostics and telemetry volume, see Section 3.2 |
| `Q:` | *(none)* | `Users\DevToolsUser\` | user home directory |
| `S:` | *(none)* | `apps\`, `Clip\`, `Deployment\`, `Prefetch\`, `Microsoft\`, `ProgramData\` | likely Host OS Volume (also contains default apps, and other resources) |
| `T:` | *(none)* | `GameDVR\`, `Update\`, junctions to Harddisk16 | GameDVR metadata + update pipeline |
| `U:` | *(none)* | `ShellState\`, `BackCompatLicenses\`, `UserDataCache\` | Shell and user state |
| `V:` | *(none)* | *(empty)* | Unknown purpose |
| `X:` | SystemAux | `Apps\`, `Catalog000.bin` (2.3MB) | System app binaries: 63 apps including `AdsLauncher`, `Xbox.DiscordComponent`, `Xbox.SingleUserProxy`, `Xbox.NTSCaptivePortal`, `Xbox.Xmap`, `Xbox.XboxIDP`, see Section 3.3 |
| `Y:` | SystemAuxF | `Apps\`, `Catalog000.bin` (6.5MB) | Secondary system app binaries |

Additionally, `\\.\HarddiskVolume10` exists with no drive letter assignment. There is a hidden WER (Windows Error Reporting) volume containing `CrashDumps\`, `ReportArchive\`, `ReportQueue\`, and `Temp\`. At least **18 physical disk device objects exist** (`PhysicalDrive0` through `PhysicalDrive17`), all present as kernel objects but inaccessible at the raw level from userspace. `HarddiskVolume16` and `HarddiskVolume18` exist as real accessible volumes but are blocked from `DevToolsUser`.

### 3.1 Hidden Kernel Device Paths

The following paths exist as kernel device objects but are inaccessible from userspace (normally):

- `\??\Deploy:\` Xbox update/deployment pipeline volume (accessible via junction over network share at `S:\Deployment\`)

### 3.2 N:\ Diagnostics Volume

Several directories on `N:\` are actively hidden by a filesystem filter driver at the kernel level as they appear empty to all userspace tools but are confirmed to be written to at runtime:

| Path | Status | Notes |
|------|--------|-------|
| `N:\EtwPlus\` | **Kernel-hidden** | Contents concealed by filesystem filter driver |
| `N:\BlackBox\` | Accessible | Contains Xbox specific ETL crash report telemetry data |
| `N:\errorstrings\en-US.json` | Accessible | Complete Xbox error string database contains 797 entries, see Section 3.4 |
| `N:\usersettings\18\public\` | Accessible | Full-quality gamerpic stored as extensionless PNGs (1080×1080 RGBA, standard PNG format) |

`N:\usersettings\18\public\` stores both `AppDisplayPic` and `GameDisplayPic` as extensionless files. SHA256 hashing confirms they are byte-for-byte identical, the app display picture and gamerpic are the same file written to two paths.

### 3.3 X:\ SystemAux

`X:\ht\versions\` contains an active Kinect vision stack with **three simultaneous versions** installed side-by-side (1.0.0, 1.0.1, 1.0.2), totalling 119MB. These correspond to `vvtechs.dll` builds versioned 1.67MB->1.70MB->1.85MB respectively.

**Body tracking ML models** (per version directory):

| File | Size | Purpose |
|------|------|---------|
| `exemplardb.xmplr` | 36.7MB | Full body pose exemplar database |
| `FernsModel.bin` | 932KB | Depth keypoint detector (random ferns classifier) |
| `HeadPosition.mshdf` | 262–393KB | Head joint estimator (varies by version) |
| `LSVMGripReleaseRight.gbd` | 7.5KB | Latent SVM grip/release classifier, right hand |

**Face tracking ML models** (system-wide, `C:\Windows\System32\ht\`):

| File | Size | Purpose |
|------|------|---------|
| `FaceDetector.bin` | 3.0MB | Locate faces in frame |
| `FaceRecognition.bin` | 3.4MB | Depth/IR identity recognition |
| `FaceRecognition_Color.bin` | 5.9MB | Color-channel identity recognition |
| `ExpressionRandomForest.model` | 150KB | Emotion classifier |
| `EyeLeftRandomForest.model` | 55KB | Left eye state |
| `EyeRightRandomForest.model` | 65KB | Right eye state |
| `LookingAwayRandomForest.model` | 42KB | Gaze/attention detection |
| `MouthOpenRandomForest.model` | 58KB | Mouth open state |
| `MouthMovedRandomForest.model` | 35KB | Lip movement |
| `FacialHairIRRandomForest.model` | 126KB | Facial hair (IR sensor only) |
| `GlassesIRRandomForest.model` | 206KB | Glasses detection (IR sensor only) |

All face attribute classifiers are **Random Forest** models. Output covers identity, expression, gaze, lip state, and appearance attributes.

The `vvtechs.dll` in the stack exports a single function: `NuiVisionCreateFactory`. It imports `EtwPlus.dll` and `D3D11`, confirming the Kinect vision pipeline runs on the GPU and uses the Xbox-specific telemetry path. This is active on hardware with no physical Kinect attached (see also `KinectSensorEnabled=true` in Section 6, and the full `nuiservice.exe` pipeline in Section 33).

### 3.4 N:\errorstrings\en-US.json Error Code Database

797 Xbox error string entries. Notable codes with security or architectural relevance:

| Error Code | String | Notes |
|------------|-----------------|-------|
| `0x887E0002` | D3D12.X runtime/driver mismatch | Confirms D3D12.X is an Xbox-specific D3D12 variant, not generic D3D12 |
| `0x80A40406` | Enhanced Microsoft telemetry enabled in dev mode | Dev mode explicitly opts the console into elevated telemetry collection |

---

## 4. Hypervisor Architecture

The Xbox uses a custom Hyper-V based hypervisor running two partitions:

- **SystemOS** the SRA partition
- **ERA partition** the GameOS / Title OS execution environment

### 4.1 Driver Stack

    User space:     xpal.dll
                        ↓
    Kernel:         xpalk.dll 
                        ↓
                    xvmctrl.sys (364KB)
                        ↓
    Hypervisor:     XVIO.SYS 

### 4.2 Key Hypervisor Drivers

| Driver            | Size    | Purpose                                                              |
|-------------------|---------|----------------------------------------------------------------------|
| `xvmctrl.sys`     | 364KB   | VM Control, main hypervisor interface, IOCTL surface                 |
| `XVIO.SYS`        | unknown | Xbox Virtual I/O, direct hypervisor ABI (not on SystemOS filesystem) |
| `xvioc.sys`       | unknown | XVIO Client, SystemOS-side interface to XVIO                         |
| `xvbus.sys`       | 73KB    | Virtual bus root + HvSocket XVIO provider                            |
| `hvsocket.sys`    | 185KB   | Hyper-V socket implementation                                        |
| `VMNP.SYS`        | 106KB   | Is named "NPFS Driver", also handles impersonations.                      |
| `Xrfs.sys`        | 135KB   | Xbox Filesystem driver                                               |
| `XRmnt.sys`       | 49KB    | Xbox Mount driver                                                    |
| `XRo.sys`         | 95KB    | Xbox Readonly filter                                                 |
| `VerifierExt.sys` | 274KB   | Driver Verifier Extension                                            |

**Critical finding:** `XVIO.SYS` and `xpalk.dll` have **no registry service entries** and are **absent from the SystemOS filesystem**. They are probably loaded by Host OS before SystemOS starts, outside the local driver model entirely. This is the actual security mechanism; Even with full SystemOS kernel access, these components cannot be tampered with.

### 4.3 XVIO API Surface (reconstructed from imports)

Info on XVIO [can be found here](https://xboxoneresearch.github.io/wiki/development/xvio/xvio-overview/), however I cannot confirm things have not changed since the Xbox One.

From `xvmctrl.sys`, `xviomonc.sys`, and `srakmd_arden.sys` imports against `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` and the SFR functions are the hypervisor memory sharing mechanism, raw RAM and GPU framebuffer pages mapped across the partition boundary.

### 4.4 HvSocket Cross-Partition Services

`hvsocket.sys` exposes services for cross-partition socket communication:

- `HvSocketGetPartitionConnections` / `HvSocketGetPartitionListeners` enumerate active channels
- `HvSocketGetVmIdFromVmbusHandle` VMBus handle resolution
- `HvSocketUpdateServiceTable` registry of all cross-partition services

A GUID-named DLL `[REDACTED]_hvsocket.dll` registers an HvSocket service provider. The GUID is redacted in the case it might be identifiable.

The four wildcard HvSocket endpoint GUIDs have been resolved via SHA1 service SID computation, see Section 20 for full details including the DiagTrack, RpcSs, and EventLog cross-partition channels.

---

## 5. J:\ "Sys Tools" XTF / Dev Volume

> **Impact:** The `J:\` volume is present on every retail Xbox. In developer mode, the full XTF toolchain is accessible with no additional authentication beyond the dev mode PIN. This includes remote debugging, screen streaming, PIX GPU profiling, and console control APIs not intended for end-user access.

The most significant finding of this research. The `J:\` volume (labelled "Sys Tools") contains the **Xbox Tools Framework (XTF)**, Microsoft's internal developer kit toolchain, which is just present on every retail Xbox apparently. Full enumeration: **132 files, 52MB** across the volume.

### 5.1 XTF Extension Registry (`J:\tools\xtfextensions.txt`)

All 20 XTF extensions are registered with COM CLSIDs:

| 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 Remote Debugger (`J:\tools\debugmon\`)

    msvsmon.exe              
    vsdebugeng.dll (1.5MB)
    vsdebugeng.impl.dll (1.6MB)
    msdia120.dll             
    diagnosticsscripthost.dll
    vsdebuglaunchnotify.exe

Versioned debug payloads for VS 2015 through VS 2022 (`debugmondev14payload` through `debugmondev16payload`). **Three simultaneous Visual Studio remote debugger generations are present and registered: VS2015, VS2017, and VS2019** all coexist on the same retail console filesystem.

### 5.3 Other Notable Tools

| Binary | Purpose |
|---|---|
| `agent-xbox.exe` (1.5MB) | Main XTF agent |
| `xtfrtservice.exe` (1.3MB) | XTF runtime service host |
| `xstudioserviceexe.exe` | Xbox Studio service |
| `xperf.exe` | Xbox performance profiler, present and functional however **ETW kernel tracing is fully blocked regardless of tool** (see Section 5.5) |
| `videoserver.exe` (RTSP) | Standalone RTSP screen streaming server |
| `wdapp.exe`, `wdconfig.exe` | Wave Debugger / configuration tools |
| `wdcapture.exe` | Screenshot/video capture |
| `wdgamestream.exe` | Game streaming control |
| `xboxnetapidiagsystem.exe` | Xbox Live network diagnostics |
| `xbtp.dll` (503KB) | Xbox Broadband Transfer Protocol |
| `xraytool.exe` | Xbox console performance tool (Reveals the fact that Host OS exists) |
| `xstudioclient.dll` | Xbox Studio client library |
| `unattendedsetuphelper.exe` | Full console management toolkit, see Section 5.6 |

### 5.4 QuickActions `.xboxunattend` Format

`J:\QuickActions\` contains automation scripts in `.xboxunattend` format. These are plain Windows batch scripts triggered via Device Portal. Available actions:

- `Capture_Screenshot.xboxunattend` calls `wdcapture.exe screenshot`
- `Capture_Video.xboxunattend`
- `Toggle_ConsoleMode.xboxunattend` cycles hardware emulation modes via `WdConfig.exe`
- `Toggle_HDR.xboxunattend`
- `Toggle_Resolution.xboxunattend`
- `Launch_DevHome.xboxunattend` / `Launch_RetailHome.xboxunattend`
- `Suspend_Title.xboxunattend`

`Toggle_ConsoleMode.xboxunattend` reveals the full list of profiling mode identifiers passed to `WdConfig.exe`: `AnacondaProfiling`, `LockhartProfiling`, and **`Scarlett 40 GB`**.

### 5.5 xperf / WPR

`xperf.exe` and WPR are fully present and functional including a `NeuralProcessing` WPR profile. However, all ETW kernel tracing is blocked by two distinct error codes:

| Error Code | Meaning |
|------------|---------|
| `0x80070005` | `Access denied`, standard Windows ACL rejection |
| `0xc5585011` | `Xbox policy block`, **no user-facing error string exists for this code** (not present in `N:\errorstrings\en-US.json`) |

ETW provider enumeration shows **zero Xbox-specific providers** in the standard ETW namespace. All Xbox telemetry flows through `EtwPlus.dll` using `Etx`-prefixed functions, a completely separate pipeline from standard Windows ETW (see Section 19.3).

### 5.6 unattendedsetuphelper.exe Console Management Tool

`unattendedsetuphelper.exe` is a console management executable covering:

- Factory reset
- Network-based firmware update
- Toast/notification injection
- Device Portal management

It also serves as the runtime engine for `.xboxunattend` scripting (the QuickActions format documented in Section 5.4).

---

## 6. WdConfig Settings Surface

`J:\tools\WdConfig.exe` (build `10.0.26100.7010`) exposes the full console configuration API. notable settings:

### Debug Category
| Setting | Value | Notes |
|---|---|---|
| `ConsoleType` | `Lockhart` | Hardware identifier |
| `ConsoleMode` | `Default` | `AnacondaProfiling`, `LockhartProfiling`, `Scarlett 40GB` |
| `EraGraphicsDriverMode` | `Title Configured` | Options: `Retail`, `Instrumented`, `Validated`. SRA equivalent is `SraGraphicsDriverMode = Retail`, ERA and SRA use separate driver mode settings |
| `EnableKernelDebugging` | `false` | Prevents ERA crash teardown for kernel debugger attachment |
| `EnablePixMemory` | `false` | Reserves 6048MB extra for PIX on Lockhart Profiling mode |
| `CrashDumpType` | `None` | Options: `Triage`, `Mini`, `Heap` |
| `TitlePerformanceOverlay` | `false` | Real-time GPU/CPU HUD overlay on running titles |
| `ExtraTitleMemory` | `0` | Max 6048MB on Lockhart Profiling mode |
| `LastShutdownReason` | `Console crash` | Persisted across reboots, my console crashed at last shutdown |
| `KinectSensorEnabled` | `true` | **Set to true on hardware with no Kinect attached**, stack is provisioned regardless of hardware presence |

### Network Category
| Setting | Value | Notes |
|---|---|---|
| `UseDebugNicForAllTraffic` | `false` | A separate debug NIC exists, distinct from the reail NIC. |

### Storage Category
| Setting | Value | Notes |
|---|---|---|
| `DevkitUseRetailConnectedStorage` | `false` | If enabled, dev mode would use the retail connected storage partition. Not tested. |
| `RunFromPcDataCacheSizeInGB` | `100` | **100GB reserved by default for Run-From-PC title cache; locked, cannot be changed by the user** |

### Unattended Category
| Setting | Value | Notes |
|---|---|---|
| `AllowUsbUnattendScript` | `true` | `.xboxunattend` scripts on USB run automatically |
| `RunUnattendScriptImmediately` | `false` | If true, USB scripts run on boot without cancellation prompt |

### Security Notes

**Microsoft account email stored in plaintext.** The dev mode WdConfig store contains the linked Microsoft account email address in plaintext. This is likely readable by any process with SRA access.

---

## 7. XCRDAPI.dll Xbox Content Delivery API

`XCRDAPI.dll` is the Xbox platform's content management kernel. It handles DirectStorage, progressive install, DRM, xCloud, and blob storage in a single library.

### 7.1 DirectStorage

    DStorageGetFactory
    DStorageGetMappedControlPage

Xbox's DirectStorage implementation is embedded in XCRDAPI, not a separate SDK.

### 7.2 XVD LifecycleXCrdOpenAdapter / XCrdCloseAdapter
    XCrdMount / XCrdMountContentType / XCrdUnmount / XCrdUnmountEx
    XCrdCreateXVD / XCrdDeleteXVD / XCrdResizeXVD / XCrdGrowDynamicXvd
    XCrdSetEraLaunchMapping              associates XVD with ERA partition pre-launch
    XCrdUpdateXvc / XCrdUpdateXvcEx
    XCrdDefragXvc / XCrdTrimXvc / XCrdTrimXvd
    XCrdRepairXvc


### 7.3 プログレッシブストリーミングインストール

    XCrdStreamingStart / XCrdStreamingStop
    XCrdStreamingQueryActiveInstanceId
    XCrdStreamingQueryInformation / InformationByPath / InformationEx
    XCrdStreamingQueryRegionInformation / ByPath
    XCrdStreamingQueryRegionSpecifiers / ByPath
    XCrdStreamingQueueInsertRegion
    XCrdStreamingQueueQueryRegionList / ByPath
    XCrdStreamingAdjustStreamingFlags
    XCrdStreamingQueryRegionIdByOffset

完全な優先度付きキューのプログレッシブインストールパイプライン。リージョンはゲームコンテンツのアドレス可能なチャンクです。

### 7.4 XCloud統合

    XCloudQueryFeatureBits
    XCloudSetFeatureBits

xCloudストリーミング機能フラグは、ローカルコンテンツと同じAPIで制御されます。

### 7.5 DRM / アテステーション

    XCrdQueryAttestationBlob
    XCrdQueryEncryptedInfo / XCrdQueryUnlockInfo
    XCrdIsSideloadedKeyPresent
    XCrdEnableSharedPls / XCrdSetExternalPlsMapping

### 7.6 ストレージブロブシステム

    XCrdStorageCreateBlob / DeleteBlob / MoveBlob / CopyBlob
    XCrdStorageReadBlob / ReadBlobEx / WriteBlob / WriteBlobEx
    XCrdStorageQueryBlobAttributes
    XCrdXBlobCreate / Delete / Copy
    XCrdFindFirstBlob / FindNextBlob / FindCloseBlob

### 7.7 XVD転送パイプライン

    XCrdXvdXferInitialize / Uninitialize
    XCrdXvdXferStart / Stop
    XCrdXvdXferRead
    XCrdXvdXferGetResult

### 7.8 パスシステム

    XCrdXasBuildPath / XasBuildPathEx / XasKeyQueryValue   (XAS App Store paths)
    XCrdXdsGetVolumeMapping / XdsSetVolumeMapping           (XDS Delivery Service volumes)
    XCrdBuildPath / XCrdParsePath / XCrdUpdatePath
    XCrdQueryDevicePath / QueryDevicePathByPath
    XCrdSetFlatContentPath

---

## 8. xpal.dll Xboxプラットフォーム抽象化レイヤー(50エクスポート)

ハードウェアID、機能、電源管理のための、これまで文書化されていなかったAPI。

### ハードウェアID

    XpalGetConsoleCertificate     hardware certificate
    XpalGetConsoleIdCch           console hardware ID
    XpalGetConsoleSerialNumberCch serial number
    XpalGetSmcFirmwareId          SMC firmware version
    XpalGetSouthBridgeType        chipset variant

### 世代 / SKU検出

    XpalIsGen8                    Xbox One
    XpalIsGen9                    Series X/S
    XpalGetGenerationType
    XpalIsHyperV                  hypervisor active
    XpalIsExternalDevkit / XpalIsInternalDevkit
    XpalGetVmType
    XpalGetSystemType / XpalGetServerType / XpalGetConsoleMode


### 機能フラグ

    XpalIsCapabilityEnabled
    XpalIsCapabilityEnabledByVm
    XpalIsFactorySettingEnabled
    XpalGetFactorySettings
    XpalGetCapabilities
    XpalIsFeatureEnabled


### 電源管理

    XpalInitiateDump              trigger crash dump on demand
    XpalInitiatePowerStateToggle
    XpalInitiateSystemShutdown
    XpalSetWakeupTimer
    XpalQueryPowerToggleSource
    XpalIsInForcedCs / XpalIsTransitioningToConnectedStandby
    XpalIsSilentBootMode
    XpalNotifyForcedCsHeartbeat
    XpalIsRebootRequested
    XpalRefreshPowerChimeMode


### 構成

    XpalGetXConfig / XpalSetXConfig    Xbox config store (modern EEPROM equivalent)
    XpalSetSystemTime
    XpalSetInformation
    XpalReportUem                      trigger UEM (Universal Error Message)


### ERA / タイトルVM

    XpalQueryTitleVmInfo
    XpalWaitForTitleVmTermination
    XpalBackgroundActivityRequest

---

## 9. eracontrol.exe ERAパーティションライフサイクルマネージャー

`C:\Windows\System32\eracontrol.exe` は LocalSystem(手動開始)として実行され、ERAゲームパーティションのライフサイクル全体を管理します。完全なインポート分析はセクション28にあります。主なインポートの要約:

- `NtOpenPartition` はHyper-VのERAパーティションハンドルを直接開きます
- `RtlSetProcessIsCritical` は自身をクリティカルプロセスとしてマークします(クラッシュするとシステムがBSODになります)
- `XCRDAPI.dll` は `XCrdSetEraLaunchMapping` を介してゲームXVDをマウント/アンマウントします
- `RIMAddInputObserver` / `RIMRemoveInputObserver` はERAへのルーティングのために生のコントローラー入力を傍受します
- `XblaInitialize` はコンソールのXbox Live認証コンテキストをブートストラップします
- `LogonUserExExW` はERAセッション用のユーザーログオントークンを作成します
- `UMgrOpenProcessHandleForAccess` ユーザーマネージャーのプロセスハンドルアクセス
- `PsmQueryBackgroundActivationType` バックグラウンドアクティベーション状態

同じディレクトリには `eraproxyapp.exe`(339KB)もあり、SystemOS側のコンポジターであり、ERAとシェル間のIPCブリッジです。完全なインポート分析はセクション29にあります。

---

## 10. BlackBox ETLトレース (N:\BlackBox\)

`N:\BlackBox\` ディレクトリには、ライブETWフライトレコーダートレースが含まれています。キャプチャされたトレースの分析から:

**注:** Xbox ETL形式は '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

### Xbox Live認証のリライングパーティ

    http://xdes.xboxlive.com/          Xbox Dev/Engineering Services
    http://xboxlive.com                Standard XBL
    http://mp.microsoft.com/           Microsoft Passport (MSA)
    http://instance.mgt.xboxlive.com   Instance/session management

### キャプチャされたクラッシュ

1. **`XboxUI.exe` BEX64** ダッシュボードシェルが `XboxUI.Data.dll` のオフセット `0x13eb0` でスタックバッファーオーバーラン(`STATUS_STACK_BUFFER_OVERRUN`、`0xc0000409`)に遭遇
2. **`MoAppHang`** パッケージ `REDACTED_GUID` のUWPアプリハング

---

## 11. 追加の注目すべき発見

### Xbox上のWSL

`LxssManager` と `lxcore` サービスは、`LaunchProtected: 0x2`(保護プロセス)と `SeTcbPrivilege` を持って存在します。Xbox上のWSLはOSレベルの信頼で実行され、その使用状況から、ほぼ確実に何かを動かしているか、少なくとも何らかの形で `Xbox.ConsoleXCloudPlayer`(xCloudゲームストリーミングクライアント)に関連しています。

wsl.exe は存在しますが、**読み取り不可**です。

### Xbox限定のSystem32バイナリ

標準のWindowsには存在しない注目すべきDLL:

- `XCRDAPI.dll` コンテンツ配信(セクション7で説明)
- `XBBlackbox.dll` フライトレコーダー(セクション30で説明)
- `XBCastRecv.dll` Xbox Cast / Miracastレシーバー(セクション30で説明)
- `XVMAudioServer.dll` クロスパーティションVMオーディオサーバー
- `Xbox.Shell.Api.dll` / `Xbox.Shell.OneStoreServices.dll` シェルAPI(セクション30で説明)
- `XboxCommandService.dll` コマンド/自動化
- `XboxUserSim.dll` UIテスト自動化
- `xboxgipsynthetic.dll` / `xboxsynthetickm.dll` シンセティックGIP仮想コントローラー注入(セクション30で説明)
- `AppXDeploymentExtensions.xbox.dll` Xbox固有のAppX展開
- `xvnapi.dll` Xbox仮想ネットワークAPI
- `xbsc_xs.dll` Xbox Seriesシェーダーコンパイラ(セクション16.2で説明)

### 存在するが文書化されていないサービス

- `EraControlService` ERAパーティションライフサイクル
- `XvdStreamSvc`(`xnetsharedservice.exe`)XVDストリーミング / プログレッシブインストール
- `XUpdMgr` Xbox Update Manager(どういうわけかWindows Updateとは別?)
- `XSraFlt` Xbox SRAフィルタードライバー
- `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             root/loopback virtual NIC
    {e720983a-...}\wifi\01
    {e720983a-...}\wfd\01      Wi-Fi Direct
    {e720983a-...}\wfd_role0\01

`xvncbus` は、物理ワイヤレスアダプター上で仮想NICを列挙するWDF 1.15バスドライバーです。ERAパーティションはネットワークスタックに直接アクセスせず、`xvnc` 仮想NICレイヤーを所有する `NetXVmService` を介して通信します。GUID `{e720983a-...}` はXboxワイヤレスアダプターのハードウェアを識別します。

### `xviomonc.sys` XVIOモニタークライアント

表示パーティションのフォーカスを管理するブート開始ドライバー(`Start: 0x1`)。インポート分析:

    XVIO.SYS:   XvioInitialize, XvioCleanup, XvioPostMessage,
                XvioSetFocus, XvioGetCurrentPartitionId  - new XVIO export
    VMNP.SYS:   NpSetupVmImpersonation
    xpalk.dll:  XpalIsCapabilityEnabled

`xviomonc` はフレームバッファーデータを処理**しません**。シグナリングとフォーカス管理のみを行うドライバーです。`XvioSetFocus` はどのパーティションがディスプレイ/入力フォーカスを持つかを切り替え、`XvioGetCurrentPartitionId` はアクティブなパーティションを識別します。実際のフレームキャプチャは `srakmd_arden.sys` が処理します。

`VMNP.SYS` の `NpSetupVmImpersonation` は、モニタードライバーがパーティション境界を越えてERAディスプレイリソースにアクセスする際に、ERAパーティションのセキュリティIDを偽装できるようにします。

### G:\ GameDVRバッファー

G:\ にある3つのファイルは、ERAとSystemOS間で共有される生の循環メモリマップバッファーです:

- `GameDVR_VideoBuffer` 272MBのローリングビデオキャプチャ
- `GameDVR_AudioBuffer` 16MBのゲームオーディオ
- `GameDVR_AudioBuffer_SysLoopback` 3MBのシステム/UIオーディオ(別ストリーム)

---

## 11.1 レジストリの所見

### 開発キット専用 K:\ ドライブ参照

`HKLM\SOFTWARE\Microsoft\Durango\XTF` にはハードコードされたパスが含まれています:

    K:\TDK\Tools\XtfJuno.dll

### `HKLM\SYSTEM\ResourcePolicyStore`

| 階層 | メモリ予算 |
|------|--------------|
| `BackgroundSmall` | 40MB |
| `Background` | (標準バックグラウンド) |
| `Balloon` | 5120MB |

CPUポリシーの階層:

| ポリシー | CPU割り当て |
|--------|---------------|
| `Paused` | 1% |
| `SoftCapLow` | 10% |
| `SoftCapFull` | 100% |
| `HardCap0` | 0% - 完全に凍結 |

**BeanHogポリシー**(おそらくフォアグラウンドのゲームプロセス予算?):

- メモリ: フォアグラウンド階層
- CPU: 100%
- `DoNotKill`: true
- 優先度: 最高重要度

---

## 11.2 Xbox Oneレガシー考古学

Xbox One時代の3つのドライバーがSeries Sのサービスレジストリに残っています。2つは無効、1つは現在実行中です。

### `Zurich` TVチューナーデコーダースタック

`zurichs.sys` はXbox OneのDVB仮想ドライバーです。ステータス: **無効**ですが、依然として登録されています。

重要な発見: `zurichs.sys` は `XVIO.SYS` のリングバッファーをインポートしています。TVチューナーは、復号したビデオストリームをXVIOハイパーバイザーリングバッファー経由で配信するようにアーキテクチャ設計されていました。チューナーはまた、`ZwUpdateWnfStateData` を使用して、Windows通知機能(WNF)経由でチューナー状態を公開していました。

### `PetraXC` Kinectセンサー制御デバイス

現在、**KinectSensorControlデバイス**として識別されているWDF仮想デバイスドライバーで、Kinectカメラセンサー用のカーネル側ハードウェア抽象化です。ステータス: **デバイス到着まで無効**(WDFデマンドスタートモデル)。

注目すべき特性:

- **WDF 1.11** に対して構築されており、これはWindows 8に対応し、元のXbox Oneカーネルベースに起源を持ちます
- `XVIO.SYS` をインポートしており、ハイパーバイザーリングバッファートランスポートを介して通信することを意味します
- `\\.\KinectSensorControl` をデバイスインターフェイスとして提供し、nuiserviceパイプライン内の `KinectMediaSource.dll` が `DeviceIoControl` 経由で消費します(セクション33を参照)

### `pspsra.sys` AMD PSPからSRAへのブリッジ

ステータス: **現在実行中**(`Start: 0x0`、ブート開始)。カーネルレベルでアクセス拒否され、ドライバーはロックされており、これ以上検査できません。

`pspsra.sys` はブートチェーン内でSRAパーティションの直下に位置し、**AMD Platform Security Processor(PSP)とSRAレイヤー間のブリッジ**として機能します。AMD PSPは、ベアメタルレベルでfTPMアテステーションとコンソール証明書を処理し、`pspsra.sys` はそのトラストチェーンをSRAに表面化するブリッジです。これにより、`XVIO.SYS` や `XSraFlt.sys` と同じ信頼階層に置かれ、SystemOSより先に初期化され、SystemOSに対して不透明であり、完全なカーネルアクセスでも到達できません。

---

## 12. 未解決の質問 + ドライバー

質問:

1. **XVIO.SYSの場所** アクセス可能なファイルシステム上にはなく、ブート時にハイパーバイザーによってロードされる
2. **WSLの使用** 存在し使用されていることは確認されたが、Xbox OSにおける具体的な役割は完全には解明されていない
3. **`XCrdXpfOp`** 未識別のXCRDAPI関数(XPF = ?)
4. **`XSraFlt.sys` + `XRmnt.sys` の場所** アクセス可能なすべてのファイルシステムに存在しないことが確認された。XVIO.SYSと共にホストOSによってロードされる
5. **`xvnc` GUID `{REDACTED_GUID}`** ワイヤレスアダプターGUID、完全なドライバーチェーンは未解明
6. **`S:\Shares\TitleScratch` リパースポイントターゲット** ディレクトリ一覧でOSによって積極的に秘匿されている。cmd.exe層より下で `FSCTL_GET_REPARSE_POINT` が必要。ほぼ確実に `\Device\Xrfs\<partition-guid>`(セクション26を参照)
7. **`xvmctrl.sys` IOCTLサーフェス** ライブカーネルダンプがブロックされている(小売開発モードの `NoKernelDumps` 制限)。IOCTLディスパッチテーブルはまだ列挙されていない
8. **ERAパーティションGUID** アクセス可能なレジストリパスでは公開されていない。カーネルダンプには表示されるはず(ブロックされているため回避策を調査中)
9. **`N:\EtwPlus\` の内容** カーネルファイルシステムフィルタードライバーによって積極的に隠されており、書き込みアクティビティが確認されているにもかかわらず、ディレクトリ一覧は空を返す。フィルタードライバーの正体は特定されていない(セクション3.2を参照)
10. ホストOS全体として、それが何をするのかさえ完全には確実ではない。

ドライバー:

1. **`xtcc.sys`**、`ntoskrnl.exe` と `XVIO.sys` の大量のインポートを考えると、おそらくセキュリティ関連の何かを担当している
2. **`FLTMGR.SYS`** `XRmnt.sys`、`XRo.sys` によってインポートされる

---

## 13. 仮想化I/Oとリモートアクセス(XVIO/SRA)

`xboxcloudstreaming.dll` のエクスポートと `CurrentControlSet\Services` レジストリエントリの分析は、リモート接続のための深いカーネルレベル統合を示しており、標準的なソフトウェアエミュレーションではなく「シンセティック」ハードウェアモデルを利用しています。ERA VMは、入力がどこから来るかにかかわらず(リモート、USB、ワイヤレスなど)、同じシンセティックデバイスを見ます。

### 13.1 XVIO(仮想I/O)スタック

XVIOフレームワークは、外部またはクロスパーティションソースからSystemOSにハードウェアレベルイベントを注入するための主要な方法であると思われます。

| サービス | カテゴリ | 機能 |
| --- | --- | --- |
| `hvsocketxvio` | トランスポート | Hyper-VソケットをXVIOプロトコルに接続するブリッジサービス。 |
| `InputXVIOClient` | コーディネーター | リモート入力パケットの仮想デバイスノードへのマッピングを管理します。 |
| `xviokbdbus` / `xviomoubus` | バスドライバー | シンセティック内部バス上で仮想HIDデバイスを列挙します。 |
| `xviokbd` / `xviomou` | デバイスドライバー | 仮想化されたキーボードとマウス用の特定の機能ドライバー。 |

### 13.2 シンセティックコントローラーパイプライン

`xboxcloudstreaming.dll` バイナリは `XboxgipSynthetic.dll` を活用して、OSが物理的に接続されたローカル周辺機器として認識するものを作り出します。

- **オーディオ仮想化:** `SyntheticController_AddAudioHeadset` により、システムはリモートネットワークオーディオをハードウェアバインドデバイスとしてコンソールのローカルオーディオスタックに流し込むことができます。
- **入力注入(RIM):** Remote Input Manager(`ext-ms-win-ntuser-rim-l1-1-0.dll`)の使用は、xCloudおよびリモートプレイセッションがWindowsリモートデスクトップと同じ高権限の注入メソッド、具体的には `InjectKeyboardInput` と `InjectPointerInput` を使用することを確認します。

### 13.3 SRA & 「Arden」ドライバー

> **注:** `SraKmdArden` ドライバーは、Series X/Sアーキテクチャ(Arden)に固有のハードウェアです。このドライバーは、システムがカーネルレベルでディスプレイバッファーを傍受できるようにし、通常クロスVM描画に伴うレイテンシーオーバーヘッドを最小限に抑える可能性があります。

### 13.4 HvSocketブリッジ(GUID `4545ffe2-...`)

これまで未識別だったHvSocket GUIDは、`hvsocketxvio` サービスに一致しました。これにより、XVIOはスタンドアロンのプロトコルではなく、Hyper-Vの内部ソケットトランスポート上で動作するレイヤーであることが確認されます。

これは、**ERA(ゲーム)パーティション**が入力のためにネットワークと直接通信しないことを示唆しています。その代わりに:

1. **SystemOS** が `XboxNetApiSvc` を介してネットワークパケットを受信します。
2. **`xboxcloudstreaming.dll`** がストリームを処理します。
3. **`hvsocketxvio`** が **HvSocket** を介して生の入力データをパーティション境界越えにパイプします。
4. ハイパーバイザー/ホスト層がそれをハードウェアイベントとしてターゲットパーティションに注入します。

---

## 14. M:\ ボリューム | オーバーレイアーキテクチャ

M:\(「System OS Misc」というラベル)は**オーバーレイボリューム**として機能します。ベースのC:\イメージの上にマウントされるコンポーネントを含むツリーです。このアーキテクチャにより、Microsoftは単一のOSイメージを出荷し、マウント時にオーバーレイを介して特定の機能セットを適用できます。

### 14.1 ボリューム構造

    M:\
    ├── Catalog000-003.bin     volume-specific code integrity catalogs
    └── windows\
        ├── system32\
        │   ├── drivers\       kernel drivers
        │   ├── ht\            Kinect support (see section 33)
        │   └── [~120 DLLs]    userspace components
        ├── SystemApps\        system apps
        ├── DefaultApp\
        ├── Fonts\
        ├── Speech_OneCore\
        ├── textinput\
        └── WebManagement\

### 14.2 ファイルシステムシンボリックリンク

C:\ はNTFSシンボリックリンクを介してM:\ コンポーネントを参照します。シンボリックリンクは2つのレベルに存在します:

**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置き換えよりも広範囲に及びます。フォントストア、システムアプリ、Web管理インターフェイスを含むコアWindowsサブシステムディレクトリは、完全にM:\ 上に存在します。これは、特定のオーバーレイがGPUおよびキャプチャドライバーだけでなく、ある程度システムアプリとUIシェルレイヤー全体を制御する可能性があることを意味します。

M:\ を指すC:\ シンボリックリンクの完全な再帰的列挙は完了していません。

### 14.3 ハードウェア固有ドライバー(M:\windows\system32\drivers\)

| ドライバー | サイズ | 目的 |
|---|---|---|
| `srakmd_arden.sys` | 274KB | SRAキャプチャKMD -> Ardenハードウェア固有のフレームグラバー |
| `acpi.sys` | 873KB | ACPI -> ハードウェア固有ビルド(汎用より大きい) |
| `spaceport.sys` | 1MB | ストレージポート -> XVD暗号化 + ライセンスチェック |
| `spacedump.sys` | 304KB | ストレージダンプドライバー |
| `buttonconverter.sys` | 90KB | 電源/イジェクトHID -> コンソールイベント変換 |
| `qwavedrv.sys` | 90KB | QoS/ネットワーク品質ドライバー |
| `acpiex.sys` | 181KB | ACPI拡張 |
| `AcpiDev.sys` | 61KB | ACPIデバイス拡張 |
| `acpitime.sys` | 57KB | ACPIタイマー |

**発見:** `XSraFlt.sys` はM:\ ドライバーにもC:\ にも存在しません。アクセス可能なファイルシステムボリュームには保存されておらず、`XVIO.SYS` および `FLTMGR.sys` と共にブート時にホストOSによってロードされることを示唆しています。

### 14.4 ハードウェア固有ユーザースペースコンポーネント(M:\windows\system32\)

M:\ に固有の注目すべきDLL/EXE:

**GPU / シェーダースタック:**

- `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)  「NewBe」Arden GPUシェーダーコンパイラバックエンド
- `xbsc_xs.dll` (3.9MB)  Xbox Seriesシェーダーコンパイラフロントエンド
- `dxcompiler_xs.dll` (17.8MB)  Xbox Series HLSLコンパイラ
- `dxbc2dxil_xs.dll` (2.9MB)  DXBCからDXILへのバイトコードコンバーター
- `pixrtddi.dll` (679KB)  PIXレンダー/デバッグDDI

**開発者 / PIXツールチェーン:**- `VsGraphicsRemoteEngine.exe` (4.75MB) PIX GPUプロファイラのリモートエンジン
- `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 API(Xboxタイトル通信?)
- `wusys.dll` (308KB) Windows Updateシステム統合

---

## 15. GPUスタック | シェーダーコンパイルパイプライン

Xbox Series S/Xのシェーダーコンパイルパイプライン全体はM:\上に存在し、C:\には存在しない。ハードウェア固有のオーバーレイがマウントされていない限り、シェーダーコンパイルは不可能である。

### 15.1 `newbe_xs.dll`

26MBのDLL。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`

完全なコンパイルAPIをカバーする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

`_mmddu`および`_MMDDT0` PEセクションには、コンパイラに組み込まれたハードウェアマイクロアーキテクチャテーブル(命令レイテンシ、レジスタファイルトポロジ、Ardenの実行ユニット数)である**Microsoft Machine-Dependent Driver Data**が含まれている。

### 15.3 `dxcompiler_xs.dll`

17.8MB。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` バイトコードコンバーター

2.9MB。単一のエクスポート:

    SCDxil_ConvertDxbcToDxil   convert DX11 DXBC bytecode to DXIL for DX12 pipeline

下位互換性のあるDX11シェーダーを、DX12専用のArdenパイプライン上で実行できるようにする。

### 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:\ではない)に配置されている。テクスチャタイリング、レイトレーシングBVHレイアウト、DCC圧縮をカバーする27のエクスポートを含む。

### 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`は第2世代のBVHレイアウトAPIを公開しており、Ardenアーキテクチャが、一般的なDXRとは異なる独自のBVHノード形式を持つことを示唆している。

**AMD DCC圧縮が公開されている。** `XGEncodeDCC` / `XGDecodeDCC`は、RDNA GPUで使用されるハードウェア可逆フレームバッファ圧縮であるAMDのDelta Color Compressionを実装している。`XGDecodeDCCSurface`は、PIXがDCC圧縮されたキャプチャフレームバッファを読み戻す際に使用するAPIである。

**DirectStorageタイリング。** `XGShuffleTextureBufferForDirectStorage`は、GPU展開中に、ディスク上のテクスチャレイアウトをArdenハードウェアタイリング形式に変換するGPU側シャッフルを実行し、VRAMへのゼロコピーロードを可能にする。

**`XGSetHardwareVersion`がすべてのレイアウトアルゴリズムを制御する。** このライブラリには、複数のハードウェアリビジョン向けのレイアウト実装が含まれている。Series SとSeries Xの識別子を指定して`XGSetHardwareVersion`を呼び出すと、それぞれ異なるメモリバス幅とキャッシュジオメトリを反映した異なるタイリング結果が生成される。

### 16.3 `.xbld` ビルドメタデータセクション

`xg_xs.dll`には、他のすべてのXboxバイナリには存在しない`.xbld` PEセクションが含まれており、Xbox OSビルドシステムではなく、別のGDK CIビルドパイプラインに由来することを示している。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エディションの公開リリースより前のものであり(執筆時点では2026年3月9日)、製品版OSが次の未リリースSDKサイクルに対してビルドされたGDKコンポーネントを同梱していることを裏付けている。`sdktype=260400`のバージョニングは`YYMMRR`(年/月/リビジョン)パターンに従っている。

`edition_build`のタイムスタンプ`0x65F41B62`は**2024年3月13日**にデコードされ、OSビルド日(2026年2月12日)より1年以上前であり、テクスチャレイアウトアルゴリズムが少なくとも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で受け取るものとビット単位で同一であることを意味する。2026年4月の公開GDKリリース(利用可能になった時点)に対するハッシュ検証により、これを確認できるだろう。

---

## 17. カタログベース信頼コード整合性モデル

### 17.1 PEコンテナ形式

各ボリュームの`Catalog*.bin`ファイルは、**サブシステム`0x11`("Xbox Code Catalog")を持つPE32+実行可能ファイル**であり、公開ドキュメントには存在しない未文書化のサブシステムである。主要な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 バイト | 172,928 |
| C:\ | Catalog001.bin | 253,952 バイト | 7,936 |
| C:\ | Catalog002.bin | 57,344 バイト | 1,792 |
| C:\ | Catalog003.bin | 176,128 バイト | 5,504 |
| M:\ | Catalog000.bin | 5,537,792 バイト | 173,056 |
| M:\ | Catalog001.bin | 258,048 バイト | 8,064 |
| M:\ | Catalog002.bin | 61,440 バイト | 1,920 |
| M:\ | Catalog003.bin | 180,224 バイト | 5,632 |

すべてのカタログのペイロード長(PEセクション内)は余りなく正確に32で割り切れ、36、40、その他の一般的なレコードサイズでは一貫して割り切れない。これは、ペイロードが**32バイトレコード**のフラット配列であることを強く示唆している。

**ハッシュアルゴリズム:** 既知のバイナリのファイル全体SHA-256およびSHA-1はカタログ内で見つからず、単純なファイル全体ハッシュは除外される。最も可能性の高い形式は**Authenticodeページハッシュ**であり、PEファイルのマップされたセクションの各4KBアラインされたページが個別にハッシュされるWindows CI標準である。これにより、ファイルごとに、ページごとに1つの32バイト(SHA-256)エントリが生成され、膨大なエントリ数(C:\だけで172,928エントリ)が説明できる。

**順序:** ペイロードはハッシュ値でソートされていない。順序付け方式は確定されていない。可能性としては、ファイルパスハッシュ順、インストールパッケージ順、ボリュームのファイルセット内のページオフセット順、あるいは何らかのNTFS特性による順序などが含まれる。

**ヘッダーなし:** ペイロードの最初の128バイトには、認識可能なASCIIマジックも、数やバージョンを示す可能性のある小さな整数フィールドも、標準ヘッダーと一致する構造も含まれていない。ハッシュ配列は、前文なしでペイロードのバイト0から始まる。

### 17.3 ロード時限定の実施

コード整合性の実施は**ロード時のみ**である。バイナリがカタログハッシュ検証を通過し、ページがメモリにマップされると、CIはそれ以上関与しない。HVCI(ハイパーバイザー保護コード整合性)がSystemOSで有効であれば、ロードされたコードページをハイパーバイザーのページテーブルレベルでハードウェア読み取り専用にすることで、結果として生じるTOCTOU(Time-of-check to time-of-use)ウィンドウを閉じることができる。**HVCIはSystemOSでオフであることが確認されており**、`IsSecureKernelRunning = 0x0`(セクション18参照)。したがって、TOCTOUウィンドウが存在する。

### 17.5 Host OSコンポーネント

2つのドライバが、アクセス可能なすべてのファイルシステムボリュームに存在しないことが確認されており、SRAが初期化される前にHost OSによって直接ロードされる:

- `XVIO.SYS` Xbox仮想I/Oコア(レジストリサービスエントリなし、どのボリュームにも存在しない)
- `FLTMGR.sys` フィルターマネージャー
- `XSraFlt.sys` SRAフィルター(サービスエントリは存在するが、どのボリュームにも対応するファイルがない)

これらのコンポーネントは、カタログ信頼モデルの完全に外側に存在する。SystemOSの完全なカーネルアクセスがあっても改ざんすることはできない。なぜなら、それらはSystem OSの親であるHostOSのロードが始まる前にブートローダーによってマップされるからである。

Xbox Oneコンポーネントの情報は[ここ](https://xboxoneresearch.github.io/wiki/boot/vbi/)で確認できるが、HostOSがこれまでに変更されていないとは完全には確信できない。

---

## 18. HVCIステータス

> **影響:** HVCIがオフの場合、コード整合性はロード時のみとなる。バイナリがメモリにマップされると、メモリ内での改変を防ぐハードウェアによる実施は存在しない。したがって、セクション17.3で説明したTOCTOUウィンドウは開いた状態となる。意図されたセキュリティ境界は、SystemOSがERA(GameOS)と通信しないことに完全に依存したままである。

`HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\KeyGuard\Status`

    IsSecureKernelRunning = 0x0

セキュアカーネル(VTL1)はSystemOS上で実行されておらず、HVCIがアクティブになり得ないことを裏付けている。これは意図的なパフォーマンストレードオフであり、ゲームループのカーネルアクティビティにVTL1の負担はない。セキュリティ境界はハイパーバイザーパーティション自体であり、パーティション内のメモリ保護ではない。したがって、コード整合性モデル(セクション17)は、TOCTOU保護なしのロード時限定となる。

---

## 19. sevpipeハイパーバイザーIPC名前空間

Xbox固有のすべてのプロセス間およびパーティション間通信の主要IPCバックボーンとして機能する、カスタムWindows名前付きパイプデバイス名前空間(`\\.\sevpipe\`)。プロトコルレベルではハイパーバイザー構造ではなく、その下では標準の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`。Suspend/resumeエクスポートは製品版ビルドではスタブである可能性が高く、3つのエクスポートが同じRVAを共有している。

### 19.4 videoserver.exe RTSPスクリーンキャプチャ(おそらく[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には、`XBOXMOBILE`ターゲティングエントリと`WCOS`レジストリハイブパスを含む完全なWindows Updateターゲティングスキーマが搭載されており、Xbox Series SがHoloLensやSurface Hubと共有されるWindows Core OS(WCOS)基盤上で動作することを裏付けている。このOSは軽度にカスタマイズされたWindows 11 24H2であり、専用に構築されたプラットフォームOSではない。

---

## 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の子である。ERAパーティションのGUIDは、アクセス可能なレジストリパスを通じてSystemOSに公開されておらず、ランダム化されている可能性がある。

### HvSocketパーティション間ワイルドカードエンドポイント

`HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\HvSocket\WildcardDescriptors`

SHA1サービスSID計算によって解決される4つのサービスGUID:

| GUID | サービス | 目的 |
|------|---------|------|
| `REDACTED_GUID` | DiagTrack | テレメトリパイプ1 |
| `REDACTED_GUID` | DiagTrack | テレメトリパイプ2 |
| `REDACTED_GUID` | RpcSs | パーティション間RPC |
| `REDACTED_GUID` | EventLog | パーティション間イベント転送 |

DiagTrack、RpcSs、EventLogは第一級のパーティション間市民である。ゲームテレメトリ、RPC呼び出し、イベントは、ERA内で実行されるものには見えない専用のハイパーバイザーソケットチャネルを通じて、ERAからSystemOSへパイプされる。

---

## 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 UIを合成する方法である: 各サーフェスが個別のハードウェアオーバーレイプレーンを占有する。

---

## 22. WdApp.exeパッケージマネージャーおよびアプリライフサイクルツール

`J:\tools\WdApp.exe`は、Xboxアプリプラットフォーム向けの完全なパッケージマネージャーおよびアプリケーションライフサイクルマネージャーである。完全なコマンドサーフェス:| Command | Purpose |
|---------|---------|
| `install` | ウェブサーバー、ネットワーク共有、またはローカルパスからパッケージ化されたビルドをストリーム配信する |
| `register` / `unregister` | ルーズファイルのアプリパッケージを登録/登録解除する |
| `registerdrive` | ドライブ全体のすべてのアプリケーションを一度に登録する |
| `registernetworkshare` | オプションの資格情報を使用してUNCネットワーク共有からインストールする |
| `registerscratch` | 開発スクラッチドライブから登録する |
| `registertitlescratch` | ERAタイトルスクラッチドライブから登録する |
| `launch` | AUMID、exeパス、またはURIで起動する |
| `terminate` / `suspend` | 実行中のアプリを停止または一時停止する |
| `uninstall` | アプリまたはその一部をアンインストールする |
| `list` | 登録済みのすべてのアプリケーションを一覧表示する |
| `listdlc` | インストール済みDLCを一覧表示する |
| `move` / `copy` | パッケージを移動またはコピーする |
| `movedrive` / `copydrive` | ドライブ上のすべてのパッケージを移動またはコピーする |
| `applyconfig` | 指定した設定または `game.config`/`.xvd` を使用してERAゲームOSを起動する |
| `queryconfig` | 実行中のゲームOSの4部構成のバージョン番号を出力する |
| `queryversioninfo` | 指定されたパッケージのゲームOSバージョンを照会する |
| `collectxip` | XIPトレースを収集する |
| `lastgamedetails` | 最後に実行されたゲームに関する詳細を取得する |
| `installkey` | コンソールにキーをインストールする |
| `installplan` | コンソールにプランをインストールする |
| `overlayfolder` | パッケージオーバーレイフォルダーを管理する |

### 注目すべき発見

**`applyconfig [game.config | ERA.xvd]`** コマンドラインからERAパーティションブートを直接制御する。`.xvd` XVDディスクイメージまたは `game.config` 設定ファイルのいずれかを受け入れる。引数なしで実行すると、最後に使用されたゲームOSを起動する。以前のゲームコンテキストがないシステムでは、`0x87E50002`(ERAファシリティ、XVDが見つからない)が返される。

**`/drive=Retail`** `install` コマンドはターゲットドライブ指定子として `Retail`、`Development`、`Ext1-Ext7` を受け入れ、開発シェルから小売ストレージパーティションへの直接パッケージインストールを可能にする。

**`/WaitToExit`** を `launch` で使用すると、WdAppが起動したプロセスの親として所有し、終了コードをキャプチャする。システムアプリはこれを `0x8D160121`(Xbox PLMファシリティ、ライフサイクルの親が不正)で拒否する。`/WaitToExit` なしで起動すると、ShellCoreServiceがライフサイクルの所有権を保持するため成功する。

**`launch` AUMIDエンコーディング** システムアプリのAUMIDには、`.xboxunattend` QuickActionsスクリプトで使用されるパターンと一致するbase64エンコーディングが必要である。```
WdApp.exe launch <base64(FamilyName!AppId)>

23. Device Portal REST API

Device Portal Web サーバー(WebManagement.exe、PID 2344)は、M:\windows\WebManagement\www\default\ からフロントエンドを配信します。完全な REST API スキーマは js\RestDocumentation.json(40KB)に文書化されています。

認証: HTTPS ポート 11443 での HTTP Basic 認証。資格情報は、開発者モードのアクティベーション時に設定された Device Portal のユーザー名と PIN です。

API 名前空間

制限フラグ

一部のエンドポイントには、小売開発者モードコンソールで無効化する制限フラグが付いています:

ユーザーモードライブプロセスダンプ(/api/debug/dump/usermode/live?pid=<pid>)は nonRestrictable であり、小売開発者モードでも成功します。

Device Portal ソースツリー


24. ライブプロセス一覧

GET /api/resourcemanager/processes で取得。注目すべきプロセスの抜粋:

xnetsharedservice.exe の 3 つのインスタンス(PID 2032、2764、2844)が SYSTEM として同時に実行されており、異なるクロスパーティションチャネル用に個別のネットワークブリッジインスタンスが存在することを示唆しています。

eracontrol.exe のワーキングセット 991KB は、ゲームが実行されていない状態であることから、これが純粋にイベント駆動型であり、アイドル時にはほぼ状態を保持せず、ERA ライフサイクルイベント時のみ起動することを裏付けています。


25. Windows Update パイプライン(Deploy:\)

影響: Deploy:\ ボリュームはユーザー空間からのアクセスがローカルに制限されていますが、この制限は S:\Deployment\SoftwareDistribution\ ジャンクションを通じたネットワーク共有パスにより回避されます。更新 ETL トレース、WU データベースパス、SLS エンドポイント URL(プラットフォーム識別子とインストール済み言語パックを含む)は完全に読み取り可能です。

S:\Deployment\SoftwareDistribution\ は、非表示の Deploy:\ カーネルデバイスボリュームへのジャンクションです。

ETL トレース分析

2 つの更新セッションがキャプチャされました:

セッション 1 2026年3月9日 18:25:23

  • WU サービスはコールドスタートし、DataStore.edb は存在しませんでした(このセッションで新規作成)
  • ネットワーク状態: 起動時に切断
  • 試行された SLS エンドポイント: https://slscr.update.microsoft.com/SLS/{REDACTED_GUID}/x64/10.0.26100.7010/0
  • 0x8024402C(インターネットなし)で即座に失敗。更新チェックは完了しませんでした。

セッション 2 2026年3月10日 03:59:18

  • WU サービスが起動し、既存の DataStore.edb を読み込み
  • ネットワーク状態: 起動時に切断
  • 同じ SLS リクエストが 0x8024402C で失敗
  • ネットワークは 03:59:24 にオンライン化、サービスがすでに失敗してセッションを放棄した 6 秒後
  • サービスは 10 分間アイドル状態となり、その後 04:09:19 に終了コード 0x240001 で正常にシャットダウン
  • どちらのセッションでも更新チェックは完了しませんでした

注記: 両セッションとも、WU サービスが初期化された時点でネットワークが利用できず、更新チェックを放棄しました。セッション 2 では、サービスが発見フェーズをすでに終了した 6 秒後にオンラインになりました。これは、初期ネットワークチェックが失敗すると更新パイプラインに再接続リトライが存在しないことを示唆しています。

SLS エンドポイント URL 構造

root@kitploit:~
https://slscr.update.microsoft.com/SLS/{SERVICE_GUID}/x64/{BUILD}/0
?CH=928          catalog hash / change counter (セッション1では928、セッション2では19)
&L=en-US;...     31 個のインストール済み言語パック
&PT=0xc0         プラットフォームタイプ: Xbox
&WUA=1451.2510.27012.0  Windows Update Agent バージョン

PT=0xc0 は、すべての更新チェックに埋め込まれた Xbox プラットフォーム識別子です。CH はセッション間で 928 から 19 に減少しており、データベースが再作成されるとリセットされるカタログ状態カウンターと一致します。

サービス構成 GUID

[REDACTED] Xbox Windows Update サービス構成識別子。SLS\ サブディレクトリに存在し、すべての SLS リクエスト URL に埋め込まれています。

WU クライアントソースツリー

デバッグ計装を介して漏洩した内部 Azure DevOps ビルドパス:

root@kitploit:~
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 セルフホストエージェントのワークスペースパスです。Xbox Windows Update クライアントはデスクトップ Windows Update とソースを共有しており、Xbox プラットフォームターゲット向けにコンパイルされた同じコードベースです。

永続タイマー

タイマー GUID REDACTED_GUID はセッション 1 で設定され、セッション 2 への再起動後も存続しました。これは DataStore.edb の外部(おそらくレジストリ内)に保存され、データベースのライフサイクルとは独立して次の更新チェックをスケジュールします。


26. クロスパーティション I/O スタックドライバー分析

xbtplinkc.sys XVIO トランスポートリンククライアント

インポート分析により、完全な XVIO リングバッファ API サーフェスと GPA 変換メカニズムが明らかになります:

root@kitploit:~
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 にゲスト物理アドレスを渡し、SystemOS はこの関数を呼び出して使用可能なマッピングを取得します。これは GameDVR キャプチャ、フレームバッファ合成、クロスパーティションオーディオの背後にあるメカニズムです。

xbtplinkc はまた、xpalk.dll から XpalIsCapabilityEnabledByVm をインポートします。ByVm サフィックスは、OS レベルではなくハイパーバイザーレベルで機能状態を照会し、先に進む前にハイパーバイザー自体が機能を有効にしているかどうかを確認していることを示します。

xrfs.sys Xbox Runtime Filesystem

完全な NT ファイルシステムドライバー。インポート分析により、Cache Manager(Cc*)、MDL I/O、ファイルロック(FsRtl*)、セキュリティ記述子の構築、ディレクトリインデックス用の AVL ツリー汎用テーブルなど、本物のファイルシステムセマンティクスを実装していることが確認されます。

主要な特徴的インポート:

root@kitploit:~
FsRtlRegisterFileSystemFilterCallbacks
IoRegisterFileSystem
RtlCreateSecurityDescriptor / RtlCreateAcl / RtlAddAccessAllowedAce
XpalIsCapabilityEnabled
WppRecorder.sys in-memory ETW trace recorder

xrfs.sys は XVIO を直接インポートしません。代わりに、xbtplinkc.sys が XvioTranslateXrfsGuestGpa をインポートします。XRFS はファイルシステム層であり、XVIO はその下で GPA 変換を提供します。

クロスパーティションファイルシステムアーキテクチャ

root@kitploit:~
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

27. eracontrol.exe

主要な Xbox 固有インポート:

XCRDAPI.dll XVD マウントの直接制御:

root@kitploit:~
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

root@kitploit:~
NtOpenPartition
RtlSetProcessIsCritical
RtlWaitForWnfMetaNotification / RtlPublishWnfStateData
NtQueryWnfStateData / NtDeleteWnfStateName

ext-ms-win-xblauth-console-l1-1-0.dll(遅延読み込み):

root@kitploit:~
XblaInitialize            bootstraps Xbox Live auth identity into ERA partition

ext-ms-win-ntuser-rim-l1-1-0.dll(遅延読み込み):

root@kitploit:~
RIMAddInputObserver / RIMRemoveInputObserver  intercepts raw controller input for ERA routing

SspiCli.dll:

root@kitploit:~
LogonUserExExW            creates user logon tokens for the ERA session

ext-ms-win-session-usermgr-l1-1-0.dll(遅延読み込み):

root@kitploit:~
UMgrOpenProcessHandleForAccess

RPCRT4.dll:

root@kitploit:~
RpcServerInqCallAttributesW / I_RpcBindingInqLocalClientPID  RPC caller identity verification

28. eraproxyapp.exe

eraproxyapp.exe は、ERA パーティションとシェル間の SystemOS 側コンポジター兼 IPC ブリッジです。339KB で、eracontrol.exe(249KB)よりかなり大きいです。

フレームバッファ合成:

root@kitploit:~
d3d11.dll:  D3D11CreateDevice
dcomp.dll:  DCompositionCreateDevice
AVRT.dll:   AvSetMmThreadCharacteristicsW / AvSetMmThreadPriority / AvRevertMmThreadCharacteristics

eraproxyapp は、ERA フレームバッファを SystemOS シェルに合成するための D3D11 デバイスと DirectComposition デバイスを作成します。AVRT マルチメディアスレッド優先度により、低遅延のフレーム配信が保証されます。

ALPC 経由のクロスパーティション IPC:

root@kitploit:~
ntdll: NtAlpcConnectPort / NtAlpcAcceptConnectPort
    NtAlpcSendWaitReceivePort
    NtAlpcCreatePortSection / NtAlpcCreateSectionView
    NtAlpcDeletePortSection / NtAlpcDeleteSectionView
    NtAlpcDisconnectPort / NtAlpcCancelMessage

ALPC ポートセクションはゼロコピー共有メモリを提供します。ERA ゲームフレームバッファはコピーされず、両方のアドレス空間に同時にマッピングされる ALPC セクションビューを介して共有されます。

プライベート名前空間(セキュア IPC チャネル): CreatePrivateNamespaceW / OpenPrivateNamespaceW CreateBoundaryDescriptorW / AddSIDToBoundaryDescriptor / DeleteBoundaryDescriptor ClosePrivateNamespace bcrypt: BCryptGenRandom / BCryptHashData / BCryptCreateHash / BCryptFinishHash

eraproxyapp は、SID ベースの境界記述子を備えたプライベートオブジェクト名前空間を確立します。これは ERA と SystemOS にのみ表示される名前付きオブジェクト名前空間です。BCrypt は境界のランダムキー素材を提供します。

タイトル ID とオーディオ: 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

名前付きパイプ:

root@kitploit:~
CreateNamedPipeW / ConnectNamedPipe / DisconnectNamedPipe

29. 追加 DLL 分析

XblAuthConsoleExt.dll ハードウェア ID と認証(46 エクスポート)

コンソール ID:

root@kitploit:~
XblaGetConsoleCert / XblaGetConsoleId / XblaGetConsoleSerialNumber
XblaGetDevkitType      retail vs devkit detection
XblaGetXblSandbox      Xbox Live environment (retail/preview/dev)

タイトル ID:

root@kitploit:~
XblaGetXboxLiveTitleId
XblaGetTitleAttestation / XblaGetTitleConsoleGeneration

暗号:

root@kitploit:~
XblaSignDigest         sign with console private key
XblaGetAttestation / XblaGetTpmPcrAttestation fTPM PCR boot chain measurements
XblaProcessChallenge / XblaProcessSpToken

XblaGetTpmPcrAttestation は、コンソールが完全なブートチェーン構成証明を実行することを確認します。Microsoft は、コンソールが Xbox Live に認証するときにブートシーケンスの正確な状態を暗号的に検証できます。

xamapi.dll Xbox Application Manager 互換シム(24 エクスポート)

SystemOS コンテキストで実行される ERA アプリ用に標準 Win32 API をオーバーライドします:

root@kitploit:~
ClipCursorOverride / GetClipCursorOverride
GetCursorPosOverride / SetCursorPosOverride
GetMonitorInfoWOverride / GetSystemMetricsOverride
XamApiDisableLayoutScaling / XamApiSetLayoutScaleOverride
AdjustDeviceIdMappingForKeyEventBefore / After
UserContextExtInitialize / SetToken / Cleanup

これは、SystemOS が標準の Win32 ディスプレイおよび入力 API を期待するコンポーネントに、説得力のある Windows PC 環境を提示する方法です。

xboxsynthetickm.dll 合成入力インジェクション(M:\、12 エクスポート)

ハードウェアオーバーレイボリューム M:\ に配置(アプリケーション層ではなくハードウェア層として扱われる):

root@kitploit:~
SyntheticInput_CreateKeyboard / CreateMouse / CreateMouseAbsolute
SyntheticInput_InjectKeyboardInput / InjectMouseInput
SyntheticInput_ReadKeyboardOutput

これは xCloud がネットワークパケットをローカル入力イベントに変換する方法です。コンソールはハードウェアレベルで合成入力を物理入力と区別できません。

xboxcloudstreaming.dll xCloud ストリーミングエンジン(2 エクスポート)

root@kitploit:~
GetCloudStreamManager
ShutdownCloudStreamManager

XboxLiveTitleId.dll ランタイムゲーム検出(12 エクスポート)

root@kitploit:~
GetCurrentXboxLiveTitleId / GetCurrentXboxLiveInfo
GetProcessXboxLiveInfo / GetPackageXboxLiveInfo
AuthenticateSystemXboxLiveTitle

XBBlackbox.dll フライトレコーダー

単一エクスポート: BlackboxServiceMain

XBCastRecv.dll Miracast レシーバー(22 エクスポート)

root@kitploit:~
GetWiFiDirectDeviceCategoryForCurrentPlatform
IsMiracastReceiverStartAllowedWithoutApp
GetEdidForCurrentDisplayDevice

Xbox.Shell.Api.dll シェル統合(44 エクスポート)

root@kitploit:~
CheckGamingPrivilegeSilently / WithUI
ShowProfileCardUI / ShowGameInviteUI
PlaySystemSound
AreWebAppsEnabled

コントローラースタックコードネーム「Pendragon」

XAccessoriesGip.dll:

root@kitploit:~
PendragonGIP_SendGIPMessage
PendragonGIP_SetMessageCallback
PendragonGIP_Start / Stop

30. 完全なシステムアーキテクチャ概要

全体アーキテクチャ

root@kitploit:~
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

ドライバー初期化(これまでの内容に基づく仮定)

root@kitploit:~
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 起動シーケンス(仮定)

  1. eracontrol.exe: NtOpenPartition - open ERA hypervisor partition handle
  2. eracontrol.exe: XCRDAPI XCrdSetEraLaunchMapping - associate XVD with partition
  3. eracontrol.exe: XCRDAPI XCrdMountContentType - mount game content into ERA
  4. eracontrol.exe: XblaInitialize - provision Xbox Live identity into ERA
  5. eracontrol.exe: LogonUserExExW - create ERA session user token
  6. eracontrol.exe: RIMAddInputObserver - begin routing controller input to ERA
  7. eraproxyapp.exe: ALPC port sections - establish zero-copy framebuffer channel
  8. eraproxyapp.exe: CreatePrivateNamespaceW - establish secure IPC namespace
  9. eraproxyapp.exe: D3D11 + DComp - prepare framebuffer compositor
  10. ERA partition boots game

呼び出しフロー(仮定)ERA Game Process needs GPU memory:

root@kitploit:~
    ↓
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

フルスタックマップ


31. WinRTコントラクトレジストリ

HDRGameCalibration WinMDには驚くべきことに、一見したところ Xbox WinRTコントラクトレジストリの全体が含まれている。100以上のコントラクトが、プラットフォームで利用可能なすべてのファーストパーティWinRT APIサーフェスを定義している。

注目のコントラクト

影響

Kinectは維持されているコントラクト。 Windows.Kinect.KinectContract v1は、非推奨ではないファーストクラスコントラクトとして存在しており、アクティブなスタック(C:\Windows\System32\ht)およびWdConfigのKinectSensorEnabled=trueと一致している。Kinectビジョンは、物理的なKinectを搭載していないハードウェアでも積極的に維持されているインフラストラクチャである。完全なオーケストレーションパイプライン(nuiservice.exe、KinectMediaSource.dll、3つの推論トラック、出力ルーティング)はセクション33で文書化されている。

広告は内部インフラストラクチャ。 AdsContractがInternalコントラクトであり公開SDK APIではないことは、広告配信がサードパーティSDK統合ではなく、認証やストレージと同じレベルでOSに組み込まれていることを意味する。

小売版でのテスト自動化。 Windows.Xbox.TestAutomationContractは小売版ユニットに搭載されており、開発者モードツールがWindows.Xbox.TestAutomationContractにアクセスできることと一致している。


32. UserMgr2

UserMgr2は、アクティブなログインセッションを所有する対話型ユーザーアカウントである。NTUSER.DATはロックされている(UserMgr2がライブである)。プロファイルから得られた主な発見事項は以下の通り:

プロファイル構造

パス内容
ntuser.ini3つの改行
AccountPictures\UserImage.jpgMicrosoftアカウントの1080x1080の写真1枚。ゲーマーピクチャシステムとは別(セクション3.2を参照)
AppData\Local\Packages\

特権に関する注記

デバイスポータルのジャンクションは、DevToolsUser権限ではなくUserMgr2権限を使用して解決される(セクション1.2および未解決の質問12を参照)。UserMgr2はDevToolsUserよりも高い特権レベルを持ち、UserMgr2は対話型セッションの所有者である一方、DevToolsUserは制限された開発者アクセスアカウントである。


33. nuiservice.exe Kinectビジョンパイプライン

nuiservice.exe(3.8MB、SYSTEMとして実行、常時稼働)は、Kinect/NUI認識スタック全体のオーケストレーションプロセスである。ボディ、フェイス、オーディオという3つの並列推論トラックをホストしており、それぞれが独立した処理パイプラインとして動作し、ファイバーグラフを介して協調的にスケジューリングされ、D3D11 GPU推論デバイスによって支えられたIOCPポンプを通じてフレームが供給される。

アーキテクチャ

root@kitploit:~
nuiservice.exe
├── D3D11CreateDevice          <- GPU inference device
├── IOCP frame pump            <- async frame dispatch
└── Fiber graph                <- cooperative ML inference scheduling

入力: KinectMediaSource.dll

フレームの取り込みはKinectMediaSource.dllによって処理される:

root@kitploit:~
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)は、生の深度センサーデータを3Dワールド空間座標に変換するため、および深度ピクセルをカラーピクセルにそれぞれ位置合わせするための事前計算済みルックアップテーブルである。

ボディトラッキング

モデルはvvtechs.dll(NuiVisionCreateFactory)を介してX:\ht\versions\{1.0.0|1.0.1|1.0.2}\から読み込まれる:

  • 入力: KinectMediaSource.dllからの深度フレーム
  • 出力: スケルトンの関節、頭の位置、手の状態(握り/解放)
  • 3つのバージョンディレクトリが同時に存在し、アクティブなバージョンは実行時に選択される

フェイス

モデルはC:\Windows\System32\ht\から読み込まれる(完全なモデル一覧はセクション3.3を参照):

  • 入力: 深度、IR、カラーフレーム
  • 出力: アイデンティティ(誰か)、表情(感情)、視線(注意方向)、唇の状態(開いた/動いた)、外見の属性(眼鏡、ひげ)
  • アイデンティティ出力は、顔ベースの自動サインインのためにLogonUserExExWに直接供給される(下記の出力ルーティングを参照)

オーディオ

speechwov.dllによって処理される:

root@kitploit:~
speechwov.dll
├── SpeechWov_Create / UpdateAcousticModels
├── SpeechWov_ProcessRecognition
└── Output->wake word events, speech recognition events

speechwov.dllはウェイクワードおよび音声認識エンジンである。UpdateAcousticModelsは、音響モデルが実行時に更新可能であることを示している(言語パックやマイクキャリブレーションの変更)。これはシステムレベルの"Hey Cortana" / 音声コマンドインフラストラクチャである。

出力ルーティング

nuiservice.exeは推論結果を複数のチャネルを通じて配信する:

RtlCapabilityCheckはアクセス制御メカニズムである。プロセスはNUIデータを受信するために適切なNTケイパビリティを保持している必要がある。これにより、ゲームタイトルアクセス、シェルアクセス、開発者アクセスが個別にゲート制御される。

コンシューマー(WNFサブスクリプション経由)

WinRTコントラクトWindows.Kinect.KinectContract v1(セクション31を参照)は、このパイプラインへのゲームタイトルアクセスを提供する小売版向けサーフェスである。

root@kitploit:~
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 エクスプローラー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 バイナリの静的解析
PythonREST API を自動化するスクリプト
Phasorコンソール上で使用するスクリプトランタイム (ネットワーク共有経由でコピーし、SSH 経由で実行) ダウンロードはこちら
reg querySSH シェルからのレジストリ列挙
WdApp.exeパッケージマネージャーおよび ERA ライフサイクル制御 (コマンドサーフェスの列挙)
WdConfig.exeコンソール設定 API の列挙
ETL トレース分析S:\Deployment\SoftwareDistribution\ ジャンクション経由の Windows Update パイプライン
ライブプロセスダンプGET /api/debug/dump/usermode/live?pid=<pid>
GhidraCOM インターフェース / ドライバーの解析
IDA Pro複雑な DLL および COM インターフェースのコールグラフ
XboxToolsさまざまな用途のための自作ユーティリティ集
名前空間ベース URI主要エンドポイント
App Deployment/api/appx/packagemanager/インストール、アンインストール、パッケージ一覧、コンテンツグループ
Device Manager/api/devicemanager/完全な階層型デバイスツリー
Dump Collection/api/debug/dump/ライブプロセスダンプ、バグチェックダンプ、クラッシュ制御
ETW/api/etw/WebSocket 経由のリアルタイム ETW、プロバイダー列挙
File Explorer/api/filesystem/参照、アップロード、ダウンロード、削除、名前変更
Networking/api/networking/ipconfig
OS Information/api/os/マシン名、OS 情報
Performance/api/resourcemanager/CPU/メモリ付きライブプロセス一覧、システムパフォーマンス統計
Power/api/power/バッテリー、電源プラン、スリープスタディレポート
Remote Control/api/control/再起動、シャットダウン
Task Manager/api/taskmanager/アプリの開始/停止、プロセスの強制終了
Bluetooth/api/bt/オーディオデバイスの列挙、ペアリング、接続
WiFi/api/wifi/インターフェース/ネットワークの列挙、接続、切断
WER/api/wer/Windows エラー報告レポートの列挙とダウンロード
WPR/api/wpr/WPR パフォーマンストレースの開始/停止/ダウンロード、カスタムプロファイル
フラグ影響を受けるエンドポイント
NoKernelDumpsライブカーネルダンプ、バグチェックダンプのダウンロード
NoUserModeDumpsライブプロセスダンプ(PID 指定)
NoBugcheckDumpsバグチェックダンプの一覧/ダウンロード/制御
NoWPRBootTracingブート時 WPR トレース
NoPowerSchemeAccess電源プランの読み書き
ファイルサイズ目的
RestDocumentation.json40KB完全な機械可読 REST API スキーマ
workspace-definitions.js26KBポータルワークスペースパネルレイアウト(二次 API インデックス)
common-xbox.js21KB基本 Device Portal に対する Xbox 固有のポータル追加機能
common.js56KB基本 Device Portal フレームワーク
toolhost.js7.8KBツールホスティング層
rest.js19KBREST 呼び出し構築ライブラリ
d3.js570KBD3 データ可視化
konva.js676KBCanvas レンダリング
PIDイメージユーザー備考
156(非表示)SYSTEM66MB ワーキングセット、イメージ名は表示されず
1456xbdiagservice.exeSYSTEMXbox 診断サービス
1808EtwUploader.exeSYSTEMETW テレメトリアップローダー
1832StorageManagement.exeDefaultAccountXbox.StorageManagement UWP、IsRunning: false(一時停止中)
1904ApplicationClipService.exeSYSTEMGameDVR クリップ管理、37MB ワーキングセット
2032xnetsharedservice.exeSYSTEMクロスパーティションネットワークブリッジ
2040NetworkTransferManagerService.exeSYSTEMXbox コンテンツダウンロードマネージャー
2344WebManagement.exeSYSTEMDevice Portal Web サーバー
2416XUpdMgr.exeSYSTEMXbox Update Manager
2436PRProvisioningService.exeNETWORK SERVICEPlayReady プロビジョニングサービス
2460XNetConfig.exeSYSTEMネットワーク構成
2468toolsautoexec.exeSYSTEM.xboxunattend スクリプト自動実行ランナー
2572sihost.exeDefaultAccountシェルインフラストラクチャホスト、60MB ワーキングセット
2836XboxDevService.exeSYSTEMXbox 開発者サービスホスト、37MB
3160xrun.exeDefaultAccountシェル側ゲーム起動コーディネーター
3256MicrosoftXboxSecurityClip.exeSYSTEMランタイム DRM 検証ホスト
3600XboxUI.exeDefaultAccountダッシュボードシェル UI、60MB ワーキングセット
3844xrfssvc.exeSYSTEMXRFS クロスパーティションファイルシステムサービス、352KB(アイドル)
3864xrmntcl.exeSYSTEMXbox Runtime Mount クライアント
3888xtfrtservice.exeSYSTEMXTF ランタイムサービス
4320Guide.exeDefaultAccountXbox Guide(Xbox.Guide_2602.0.2602.11003)、IsRunning: true
4548eracontrol.exeSYSTEMERA パーティションライフサイクルマネージャー、991KB ワーキングセット
4660WWAHost.exeDefaultAccountDev Home(Microsoft.Xbox.DevHome_1.0.2601.4001)、IsRunning: true
6524CastSrv.exeDefaultAccountMiracast キャストサービス
レイヤーコンポーネント
コンテンツXCRDAPI.dll (XVDのマウント/アンマウント/ストリーミング)
アイデンティティXblAuthConsoleExt.dll, XboxLiveTitleId.dll, pspsra.sys
DRMMicrosoftXboxSecurityClip.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の偽装にも使用される
ホストOSxvmctrl.sys, XVIO.SYS, FLTMGR.sys (ファイルシステム上にはない)
クロスパーティションFSxrfs.sys, xbtplinkc.sys, xrmntcl.exe, xrfssvc.exe
ディスプレイeraproxyapp.exe, xamapi.dll (Win32オーバーライド)、MPOティア3
GPUumd12ddi_arden.dll, newbe_xs.dll, xbsc_xs.dll, xg_xs.dll
オーディオXVMAudioServer.dll, XAudio2_8/9.dll, 空間オーディオ構成
ネットワークxvnc.sys/xvncbus.sys (仮想NIC)、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)
ビジョン / Kinectnuiservice.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 (TVチューナー、XVIO連携)、PetraXC / KinectSensorControl (WDF 1.11、Kinectデバイスが到着するまで無効。\\.\KinectSensorControl経由でKinectMediaSource.dllに供給)
コントラクトバージョン備考
Windows.Kinect.KinectContractv1Kinectはタイトルの後方互換性を目的としてサポートされている可能性が高い
Windows.Xbox.TestAutomationContractテスト自動化サーフェスは小売版ハードウェアに搭載されている
Windows.Xbox.System.Internal.AdsContract広告システムは内部WinRTコントラクトである
Windows.Xbox.System.Internal.CopyOnLan.CopyOnLanContractLANゲームコピー、ローカルネットワークタイトル転送?
Windows.System.Internal.XboxLive.Auth.AuthContractv2内部Xbox Live認証サーフェス(公開XBL APIとは別)
サイドロードされた開発アプリの設定のみ存在。Xboxシステムアプリは標準のUWP LocalPackagesストレージパスを使用しない
チャネルAPI目的
システム全体へのブロードキャストRtlPublishWnfStateDataボディ/フェイス/オーディオの状態をすべてのWNFサブスクライバーに公開
顔サインインLogonUserExExW顔ベースの自動ユーザーサインインをトリガー
アプリごとの名前付きパイプ名前付きパイプサーバー + GetNamedPipeClientProcessIdプロセスごとの出力をゲート制御し、データ配信前に呼び出し元のIDを検証する
呼び出し元ごとのRPCRPCサーバー + RpcServerInqCallAttributesW推論結果への呼び出し元ごとの認証済みアクセス
永続的なアイデンティティ状態リポジトリ (SRDictionaryToPropertySet)認識されたアイデンティティをセッション間で永続化する
ケイパビリティゲートRtlCapabilityCheck推論出力へのすべてのアクセスはNTケイパビリティチェックでゲート制御される
コンシューマー備考
Xbox Shell表情を考慮したUI適応
Guide.exe自動サインイントリガー
XboxUI.exe注意/視線を考慮したUI
ゲームタイトルNuiVision WinRTコントラクト(Windows.Kinect.KinectContract v1、小売版)経由
xCloudストリーミングクライアントがNUI状態を受信する