Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
XboxSeries — Pesquisa pessoal sobre a arquitetura do Xbox Series | Kitploit
Ferramentas/GitHubGitHub/daniellmcguire/xboxseries
Segurança de Sistemas EmbarcadosAnálise EstáticaAnálise Dinâmica (Sandboxing)Engenharia ReversaDepuradoresSegurança de HardwareAnálise de BináriosAprendizado e EducaçãoAnálise de Firmware
GitHubdaniellmcguire/xboxseries

XboxSeries

Pesquisa pessoal sobre a arquitetura do Xbox Series

574há 1 mêsRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver RepositórioSite

Xbox Series: Pesquisa de Arquitetura Interna

CampoValor
Data9 a 12 de março de 2026 + 7 a ? de julho de 2026
HardwareXbox Series S (Codename: Lockhart)
Build do SO26100.7010.amd64fre.xb_flt_2602ge.260212-1010 + 26100.8561.amd64fre.xb_flt_2606ge.260609-2200
Método de acessoDev Mode + SSH + REST API + junction de compartilhamento de arquivos NTFS

Resumo

Este relatório é uma análise estática e dinâmica da arquitetura interna do Xbox Series S, conduzida inteiramente por meio da infraestrutura oficial de modo de desenvolvedor da Microsoft. Nenhum exploit ou violação de política foi utilizado; todo o acesso foi realizado dentro dos limites do programa de desenvolvedor individual.

Ele contém detalhes dos componentes de mais alto nível usados para jogabilidade até os componentes de driver de sistema de mais baixo nível. A maioria desses detalhes deve ser a mesma também para o Xbox One.


Esclarecimentos

A IA foi usada para formatar de forma consistente a grande pesquisa inicial (mais de 200 saídas de análise e mais de 50 notas aleatórias) nisto rapidamente. Todas as edições futuras são feitas manualmente.

Se você achar que algum ponto disto está pouco claro, pouco documentado ou falso, sinta-se à vontade para enviar um DM, ou se você tiver alguma resposta para minhas perguntas (na Seção 12), também seria bom. GUIDs e outros padrões comuns são redigidos em um hook de pre-commit, apenas no caso de eu deixar algo que identifique minha conta.

Muito do que estou trabalhando são suposições, então pode ser impreciso e mudará conforme eu obtiver mais informações e analisar mais binários.

Por razões que você pode imaginar, não compartilharei de forma alguma binários diretos, saída de desmontagem ou qualquer coisa considerada propriedade intelectual da Microsoft ou de suas subsidiárias.

root@kitploit:~
ERA = GameOS Partition
SRA = SystemOS Partition
HT = Kinect (possibly "Human Tracking"?)
Arden = Xbox Series X/S GPU Stack
NewBe = Arden shader compiler

Principais Descobertas

Existe um gerenciamento de drivers do Host OS fora do modelo SRA/ERA conhecido; veja o modelo de confiança (Seções 4.2, 17.5). XVIO.SYS e XSraFlt.sys são carregados diretamente pelo hipervisor (via HostOS) antes da inicialização do Windows e estão ausentes de todos os volumes acessíveis. Eles não podem ser adulterados nem mesmo com acesso total ao kernel — essa é a principal fronteira de segurança.

O HVCI está deliberadamente desabilitado (Seção 18). IsSecureKernelRunning = 0x0 confirma que o Secure Kernel (VTL1) não está em execução. A integridade de código é apenas no momento do carregamento, deixando uma janela TOCTOU depois que os binários são mapeados. Isso é uma troca deliberada de desempenho; a fronteira de segurança é a partição do hipervisor, não a proteção de memória dentro da partição.

Junctions NTFS expõem todo o sistema de arquivos do SystemOS pela rede (Seção 1.2). Um único comando mklink /J a partir do shell SSH mapeia C:\ ou qualquer outra coisa para o compartilhamento de arquivos do Device Portal, tornando todos os binários do sistema legíveis remotamente sem autenticação adicional além do PIN do modo de desenvolvedor.

A arquitetura entre partições está quase totalmente mapeada (Seções 4, 14, 26-28). A partição de jogos ERA se comunica com o SystemOS exclusivamente por meio de canais mediados pelo hipervisor: ring buffers XVIO para I/O, tradução de GPA para memória compartilhada, HvSocket para IPC e seções de porta ALPC para entrega de framebuffer com cópia zero concedidas por um "Host OS" pai.

A junction Deploy:\ contorna as restrições de acesso local (Seção 25). O volume do Windows Update só é acessível por meio do compartilhamento de rede (S:\Deployment\SoftwareDistribution\) devido a alguma discrepância em algum lugar (talvez xrfssvc.exe?).

A maioria dos binários possui apenas strings de descrição; eu não sabia disso até hoje, pois não estava usando o Windows para nada além da conexão real com o Console. Muitas vezes é entediante (por exemplo, XVUH, XVMCTRL), mas outras vezes é muito descritivo (por exemplo, Durango Virtual XVNC Bus Driver, Xbox Remote File System Service).

Escopo e Limitações

Todos os testes foram realizados em um único Xbox Series S de varejo em modo de desenvolvedor. Os resultados refletem várias builds, porém vou eventualmente fazer o diff das builds e documentar. Os resultados podem variar entre revisões de hardware (Series X, Xbox One) e versões de firmware. Várias superfícies de nível de kernel não puderam ser alcançadas: dumps de kernel ao vivo são bloqueados pela restrição NoKernelDumps, e a superfície IOCTL de xvmctrl.sys não foi totalmente enumerada. Perguntas em aberto estão acompanhadas na Seção 12.


Metodologia

Ferramentas Utilizadas

Abordagem

O acesso foi estabelecido por meio da interface SSH do Dev Mode não documentada (oficialmente, mas há documentação da comunidade). A técnica de junction NTFS (Seção 1.2) estendeu o acesso de leitura do espaço de trabalho D:\DevelopmentFiles para o volume completo do sistema C:\ e todos os volumes de letras adicionais. Toda a análise foi somente leitura; nenhuma configuração do sistema foi modificada (WdConfig.exe set não foi usado). O Xbox pode executar binários de console Windows x86_64 padrão (compilados com /MT) diretamente via shell SSH, o que foi usado para executar ferramentas de análise localmente.

Dumps de kernel não estavam disponíveis: a restrição NoKernelDumps do Device Portal os bloqueia no modo de desenvolvedor de varejo. Dumps de processo ao vivo em modo de usuário estavam disponíveis e foram usados onde relevante.


1. Acesso Remoto

1.1 Acesso ao Shell

O Xbox Dev Mode suporta o Visual Studio; isto usa SSH:

  • Usuário: DevToolsUser
  • Senha: o PIN do Visual Studio mostrado no Dev Home

1.2 Acesso ao Sistema de Arquivos

O Device Portal em https://XBOX:11443 expõe um compartilhamento de arquivos NTFS oculto para D:\DevelopmentFiles. A partir do shell SSH:```batch mklink /J D:\DevelopmentFiles\C C:\

root@kitploit:~
Isto cria um ponto de junção do espaço de trabalho do desenvolvedor para a raiz da unidade C: do sistema, expondo todo o sistema de arquivos do SystemOS como um compartilhamento de rede legível em:

    \\XBOX\DevelopmentFiles\C

Isso permite executar ferramentas como `dumpbin` a partir de um PC diretamente contra os binários do sistema Xbox pela rede.

---

## 2. Identidade do SO

| Campo              | Valor             |
|--------------------|-------------------|
| Nome do Produto    | Xbox Series S     |
| Edição do SO       | SystemOS          |
| Versão do Windows NT | 10.0              |
| Número do Build    | 26100             |
| String do Build    | `26100.8561.amd64fre.xb_flt_2606ge.260609-2200` |
| LCUVer             | `10.0.26100.8536` |
| Branch             | `xb_flt_2602ge`   |
| Data do Build      | 09 de junho de 2026 |
| Arquitetura        | x64               |
| Secure Boot UEFI   | `NotCapable`      |
| Codinome do Console | Lockhart          |
| Modo do Console    | Default           |
| ID da Sandbox      | `XDKS.1`          |

O SO se identifica como **SystemOS**, não Windows. O branch de build `xb_flt_2602ge` parece ser um "fork" distinto do Xbox do código-fonte do Windows, ainda muito semelhante ao Windows 11. Alguns binários do sistema Windows são idênticos, bit por bit, aos seus equivalentes de desktop, compilados com o mesmo toolchain MSVC, provavelmente originados dos mesmos pacotes UUP. Isso é separado do vago "Host OS".

### 2.1 Identidade do Registro

Vários campos de `CurrentVersion` foram deliberadamente congelados, de forma semelhante ao Windows desktop (para compatibilidade com títulos do Xbox One neste caso):

| Chave | Valor | Notas |
|-----|-------|-------|
| `CurrentVersion` | `6.3` | Relata internamente como Windows 8.1, para compatibilidade |
| `BuildGUID` | | zerado/limpado |
| `InstallDate` | `0` | sem timestamp de instalação |
| `EditionID` | `SystemOS` | Nunca atualizado |
| `ReleaseId` | `2009` | Congelado na era do Windows 10 20H2; nunca incrementado |

---

## 3. Layout de Volumes

O console expõe 13 letras de unidade, a maioria das quais presume-se ser [como no Xbox One, totalmente virtual](https://xboxoneresearch.github.io/wiki/operating-system/xbox-operating-system/)

| Unidade | Rótulo | Conteúdo | Notas |
|-------|-------|----------|-------|
| `C:` | System Boot | Arquivos do SO Windows | Partição padrão do SystemOS |
| `D:` | *(nenhum)* | `DevelopmentFiles\` | Espaço de trabalho do modo dev |
| `G:` | *(nenhum)* | `GameDVR_VideoBuffer` (272MB), `GameDVR_AudioBuffer` (16MB), `GameDVR_AudioBuffer_SysLoopback` (3MB) | Buffers circulares brutos de captura, memória compartilhada entre ERA e SystemOS |
| `J:` | Sys Tools | Toolchain XTF, drivers, QuickActions | Ver Seção 5 |
| `M:` | Misc | Contém as sobreposições NTFS específicas do console para bibliotecas e drivers | Partição do SystemOS? |
| `N:` | *(nenhum)* | `BlackBox\`, `EtwPlus\`, `CMS\`, `errorstrings\`, `usersettings\` | Volume de diagnóstico e telemetria, ver Seção 3.2 |
| `Q:` | *(nenhum)* | `Users\DevToolsUser\` | diretório home do usuário |
| `S:` | *(nenhum)* | `apps\`, `Clip\`, `Deployment\`, `Prefetch\`, `Microsoft\`, `ProgramData\` | provavelmente volume do Host OS (também contém aplicativos padrão e outros recursos) |
| `T:` | *(nenhum)* | `GameDVR\`, `Update\`, junctions para Harddisk16 | Metadados do GameDVR + pipeline de atualização |
| `U:` | *(nenhum)* | `ShellState\`, `BackCompatLicenses\`, `UserDataCache\` | Estado do shell e do usuário |
| `V:` | *(nenhum)* | *(vazio)* | Propósito desconhecido |
| `X:` | SystemAux | `Apps\`, `Catalog000.bin` (2.3MB) | Binários de aplicativos do sistema: 63 aplicativos incluindo `AdsLauncher`, `Xbox.DiscordComponent`, `Xbox.SingleUserProxy`, `Xbox.NTSCaptivePortal`, `Xbox.Xmap`, `Xbox.XboxIDP`, ver Seção 3.3 |
| `Y:` | SystemAuxF | `Apps\`, `Catalog000.bin` (6.5MB) | Binários secundários de aplicativos do sistema |

Além disso, `\\.\HarddiskVolume10` existe sem atribuição de letra de unidade. Há um volume WER (Windows Error Reporting) oculto contendo `CrashDumps\`, `ReportArchive\`, `ReportQueue\` e `Temp\`. Existem pelo menos **18 objetos de dispositivo de disco físico** (`PhysicalDrive0` a `PhysicalDrive17`), todos presentes como objetos de kernel, mas inacessíveis no nível bruto a partir do espaço do usuário. `HarddiskVolume16` e `HarddiskVolume18` existem como volumes reais acessíveis, mas são bloqueados para `DevToolsUser`.

### 3.1 Caminhos de Dispositivos de Kernel Ocultos

Os seguintes caminhos existem como objetos de dispositivo de kernel, mas são inacessíveis a partir do espaço do usuário (normalmente):

- `\??\Deploy:\` Volume do pipeline de atualização/implantação do Xbox (acessível via junction pelo compartilhamento de rede em `S:\Deployment\`)

### 3.2 Volume de Diagnóstico N:\

Vários diretórios em `N:\` são ativamente ocultados por um driver de filtro de sistema de arquivos no nível do kernel, pois parecem vazios para todas as ferramentas de espaço do usuário, mas é confirmado que recebem gravação em tempo de execução:

| Caminho | Status | Notas |
|------|--------|-------|
| `N:\EtwPlus\` | **Oculto pelo kernel** | Conteúdo oculto pelo driver de filtro do sistema de arquivos |
| `N:\BlackBox\` | Acessível | Contém dados de telemetria de relatórios de falha ETL específicos do Xbox |
| `N:\errorstrings\en-US.json` | Acessível | O banco de dados completo de strings de erro do Xbox contém 797 entradas, ver Seção 3.4 |
| `N:\usersettings\18\public\` | Acessível | Gamerpic em qualidade total armazenado como PNGs sem extensão (1080×1080 RGBA, formato PNG padrão) |

`N:\usersettings\18\public\` armazena tanto `AppDisplayPic` quanto `GameDisplayPic` como arquivos sem extensão. O hash SHA256 confirma que eles são idênticos, byte por byte; a imagem de exibição do aplicativo e a gamerpic são o mesmo arquivo gravado em dois caminhos.

### 3.3 X:\ SystemAux

`X:\ht\versions\` contém uma pilha de visão Kinect ativa com **três versões simultâneas** instaladas lado a lado (1.0.0, 1.0.1, 1.0.2), totalizando 119MB. Elas correspondem aos builds de `vvtechs.dll` com versões 1.67MB->1.70MB->1.85MB, respectivamente.

**Modelos de ML de rastreamento corporal** (por diretório de versão):

| Arquivo | Tamanho | Propósito |
|------|------|---------|
| `exemplardb.xmplr` | 36.7MB | Banco de dados de exemplares de pose corporal completa |
| `FernsModel.bin` | 932KB | Detector de keypoints de profundidade (classificador de ferns aleatórios) |
| `HeadPosition.mshdf` | 262–393KB | Estimador de articulação da cabeça (varia por versão) |
| `LSVMGripReleaseRight.gbd` | 7.5KB | Classificador SVM latente de preensão/soltura, mão direita |

**Modelos de ML de rastreamento facial** (em todo o sistema, `C:\Windows\System32\ht\`):

| Arquivo | Tamanho | Propósito |
|------|------|---------|
| `FaceDetector.bin` | 3.0MB | Localizar rostos no quadro |
| `FaceRecognition.bin` | 3.4MB | Reconhecimento de identidade por profundidade/IR |
| `FaceRecognition_Color.bin` | 5.9MB | Reconhecimento de identidade por canal de cor |
| `ExpressionRandomForest.model` | 150KB | Classificador de emoções |
| `EyeLeftRandomForest.model` | 55KB | Estado do olho esquerdo |
| `EyeRightRandomForest.model` | 65KB | Estado do olho direito |
| `LookingAwayRandomForest.model` | 42KB | Detecção de olhar/atenção |
| `MouthOpenRandomForest.model` | 58KB | Estado de boca aberta |
| `MouthMovedRandomForest.model` | 35KB | Movimento dos lábios |
| `FacialHairIRRandomForest.model` | 126KB | Pelos faciais (somente sensor IR) |
| `GlassesIRRandomForest.model` | 206KB | Detecção de óculos (somente sensor IR) |

Todos os classificadores de atributos faciais são modelos **Random Forest**. A saída cobre identidade, expressão, olhar, estado dos lábios e atributos de aparência.

O `vvtechs.dll` na pilha exporta uma única função: `NuiVisionCreateFactory`. Ele importa `EtwPlus.dll` e `D3D11`, confirmando que o pipeline de visão do Kinect roda na GPU e usa o caminho de telemetria específico do Xbox. Isso está ativo em hardware sem nenhum Kinect físico conectado (ver também `KinectSensorEnabled=true` na Seção 6 e o pipeline completo de `nuiservice.exe` na Seção 33).

### 3.4 Banco de Dados de Códigos de Erro N:\errorstrings\en-US.json

797 entradas de strings de erro do Xbox. Códigos notáveis com relevância de segurança ou arquitetural:

| Código de Erro | String | Notas |
|------------|-----------------|-------|
| `0x887E0002` | Incompatibilidade de runtime/driver D3D12.X | Confirma que D3D12.X é uma variante D3D12 específica do Xbox, não D3D12 genérico |
| `0x80A40406` | Telemetria aprimorada da Microsoft habilitada no modo dev | O modo dev opta explicitamente o console por coleta elevada de telemetria |

---

## 4. Arquitetura do Hipervisor

O Xbox usa um hipervisor personalizado baseado em Hyper-V executando duas partições:

- **SystemOS**, a partição SRA
- **Partição ERA**, o ambiente de execução do GameOS / Title OS

### 4.1 Pilha de Drivers

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

### 4.2 Principais Drivers do Hipervisor

| Driver            | Tamanho | Propósito                                                              |
|-------------------|---------|----------------------------------------------------------------------|
| `xvmctrl.sys`     | 364KB   | Controle de VM, principal interface do hipervisor, superfície de IOCTL |
| `XVIO.SYS`        | desconhecido | Xbox Virtual I/O, ABI direta do hipervisor (não está no sistema de arquivos do SystemOS) |
| `xvioc.sys`       | desconhecido | Cliente XVIO, interface do lado do SystemOS para o XVIO |
| `xvbus.sys`       | 73KB    | Raiz do barramento virtual + provedor XVIO do HvSocket |
| `hvsocket.sys`    | 185KB   | Implementação de socket Hyper-V |
| `VMNP.SYS`        | 106KB   | Chamado de "NPFS Driver", também lida com impersonações. |
| `Xrfs.sys`        | 135KB   | Driver do sistema de arquivos do Xbox |
| `XRmnt.sys`       | 49KB    | Driver de montagem do Xbox |
| `XRo.sys`         | 95KB    | Filtro somente leitura do Xbox |
| `VerifierExt.sys` | 274KB   | Extensão do Driver Verifier |

**Descoberta crítica:** `XVIO.SYS` e `xpalk.dll` **não têm entradas de serviço de registro** e estão **ausentes do sistema de arquivos do SystemOS**. Eles provavelmente são carregados pelo Host OS antes de o SystemOS iniciar, totalmente fora do modelo de driver local. Este é o mecanismo de segurança real; mesmo com acesso total ao kernel do SystemOS, esses componentes não podem ser adulterados.

### 4.3 Superfície da API XVIO (reconstruída a partir de imports)

Informações sobre XVIO [podem ser encontradas aqui](https://xboxoneresearch.github.io/wiki/development/xvio/xvio-overview/), no entanto, não posso confirmar que as coisas não mudaram desde o Xbox One.

A partir dos imports de `xvmctrl.sys`, `xviomonc.sys` e `srakmd_arden.sys` contra `XVIO.SYS`:

    XvioInitialize / XvioCleanup
    XvioCreateEvent
    XvioPostMessage
    XvioGetCurrentPartitionId                           (identifica a partição ativa, de xviomonc)
    XvioGetReservedMemory                               (acesso à RAM reservada do hipervisor, de srakmd_arden)
    XvioRegisterGpaMdl / XvioUnregisterGpa              (mapeamento de Guest Physical Address)
    XvioSfrMapPages / XvioSfrUnmapPages                 (Shared Frame Region, memória GPU entre partições)
    XvioSfrCounterGet / XvioSfrPerfCounterSet
    XvioSfrReadEvent
    XvioSetFocus                                        (alterna o foco de entrada entre partições)
    XvioSetSystemTime
    XvioSaveProvidersState / XvioRestoreProvidersState
    XvioPerfMonitoringEnabled
    XvioCreateRingBuffer / XvioDestroyRingBuffer
    XvioGetRingBufferContext
    XvioReadRingBuffer / XvioReadRingBufferEx / XvioWriteRingBuffer
    XvioAcquireRingBufferRundown / XvioReleaseRingBufferRundown

`XvioRegisterGpaMdl` e as funções SFR são o mecanismo de compartilhamento de memória do hipervisor, RAM bruta e páginas de framebuffer de GPU mapeadas através da fronteira entre partições.

### 4.4 Serviços entre Partições HvSocket

`hvsocket.sys` expõe serviços para comunicação de socket entre partições:

- `HvSocketGetPartitionConnections` / `HvSocketGetPartitionListeners` enumeram canais ativos
- `HvSocketGetVmIdFromVmbusHandle` resolução de handle VMBus
- `HvSocketUpdateServiceTable` registro de todos os serviços entre partições

Uma DLL nomeada por GUID `[REDACTED]_hvsocket.dll` registra um provedor de serviço HvSocket. O GUID foi redigido caso seja identificável.

Os quatro GUIDs de endpoint curinga do HvSocket foram resolvidos via computação de SID de serviço SHA1; ver Seção 20 para detalhes completos, incluindo os canais entre partições DiagTrack, RpcSs e EventLog.

---

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

> **Impacto:** O volume `J:\` está presente em todos os Xbox de varejo. No modo desenvolvedor, o toolchain XTF completo é acessível sem autenticação adicional além do PIN do modo dev. Isso inclui depuração remota, streaming de tela, criação de perfil GPU PIX e APIs de controle do console não destinadas ao acesso do usuário final.

A descoberta mais significativa desta pesquisa. O volume `J:\` (rotulado "Sys Tools") contém o **Xbox Tools Framework (XTF)**, o toolchain interno de kit de desenvolvimento da Microsoft, que aparentemente está apenas presente em todos os Xbox de varejo. Enumeração completa: **132 arquivos, 52MB** em todo o volume.

### 5.1 Registro de Extensões XTF (`J:\tools\xtfextensions.txt`)

Todas as 20 extensões XTF estão registradas com CLSIDs 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 Depurador Remoto do Visual Studio (`J:\tools\debugmon\`)

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

Payloads de depuração versionados para VS 2015 a VS 2022 (`debugmondev14payload` até `debugmondev16payload`). **Três gerações simultâneas de depurador remoto do Visual Studio estão presentes e registradas: VS2015, VS2017 e VS2019** todas coexistem no mesmo sistema de arquivos do console de varejo.

### 5.3 Outras Ferramentas Notáveis

| Binário | Propósito |
|---|---|
| `agent-xbox.exe` (1.5MB) | Agente XTF principal |
| `xtfrtservice.exe` (1.3MB) | Host do serviço de runtime XTF |
| `xstudioserviceexe.exe` | Serviço Xbox Studio |
| `xperf.exe` | Perfilador de desempenho do Xbox, presente e funcional, no entanto **o rastreamento de kernel ETW é totalmente bloqueado independentemente da ferramenta** (ver Seção 5.5) |
| `videoserver.exe` (RTSP) | Servidor de streaming de tela RTSP autônomo |
| `wdapp.exe`, `wdconfig.exe` | Wave Debugger / ferramentas de configuração |
| `wdcapture.exe` | Captura de captura de tela/vídeo |
| `wdgamestream.exe` | Controle de streaming de jogos |
| `xboxnetapidiagsystem.exe` | Diagnóstico de rede do Xbox Live |
| `xbtp.dll` (503KB) | Xbox Broadband Transfer Protocol |
| `xraytool.exe` | Ferramenta de desempenho do console Xbox (revela o fato de que o Host OS existe) |
| `xstudioclient.dll` | Biblioteca cliente do Xbox Studio |
| `unattendedsetuphelper.exe` | Kit de ferramentas completo de gerenciamento do console, ver Seção 5.6 |

### 5.4 Formato `.xboxunattend` do QuickActions

`J:\QuickActions\` contém scripts de automação no formato `.xboxunattend`. São scripts de lote do Windows simples acionados via Device Portal. Ações disponíveis:

- `Capture_Screenshot.xboxunattend` chama `wdcapture.exe screenshot`
- `Capture_Video.xboxunattend`
- `Toggle_ConsoleMode.xboxunattend` alterna os modos de emulação de hardware via `WdConfig.exe`
- `Toggle_HDR.xboxunattend`
- `Toggle_Resolution.xboxunattend`
- `Launch_DevHome.xboxunattend` / `Launch_RetailHome.xboxunattend`
- `Suspend_Title.xboxunattend`

`Toggle_ConsoleMode.xboxunattend` revela a lista completa de identificadores de modo de criação de perfil passados ao `WdConfig.exe`: `AnacondaProfiling`, `LockhartProfiling` e **`Scarlett 40 GB`**.

### 5.5 xperf / WPR

`xperf.exe` e WPR estão totalmente presentes e funcionais, incluindo um perfil WPR `NeuralProcessing`. No entanto, todo o rastreamento de kernel ETW é bloqueado por dois códigos de erro distintos:

| Código de Erro | Significado |
|------------|---------|
| `0x80070005` | `Access denied`, rejeição padrão de ACL do Windows |
| `0xc5585011` | `Xbox policy block`, **não existe string de erro voltada ao usuário para este código** (não presente em `N:\errorstrings\en-US.json`) |

A enumeração de provedores ETW mostra **zero provedores específicos do Xbox** no namespace ETW padrão. Toda a telemetria do Xbox flui através de `EtwPlus.dll` usando funções com prefixo `Etx`, um pipeline completamente separado do ETW padrão do Windows (ver Seção 19.3).

### 5.6 Ferramenta de Gerenciamento do Console unattendedsetuphelper.exe

`unattendedsetuphelper.exe` é um executável de gerenciamento do console que cobre:

- Restauração de fábrica
- Atualização de firmware baseada em rede
- Injeção de toast/notificação
- Gerenciamento do Device Portal

Ele também serve como o mecanismo de runtime para scripts `.xboxunattend` (o formato QuickActions documentado na Seção 5.4).

---

## 6. Superfície de Configurações do WdConfig

`J:\tools\WdConfig.exe` (build `10.0.26100.7010`) expõe a API completa de configuração do console. Configurações notáveis:

### Categoria Debug
| Configuração | Valor | Notas |
|---|---|---|
| `ConsoleType` | `Lockhart` | Identificador de hardware |
| `ConsoleMode` | `Default` | `AnacondaProfiling`, `LockhartProfiling`, `Scarlett 40GB` |
| `EraGraphicsDriverMode` | `Title Configured` | Opções: `Retail`, `Instrumented`, `Validated`. O equivalente SRA é `SraGraphicsDriverMode = Retail`; ERA e SRA usam configurações de modo de driver separadas |
| `EnableKernelDebugging` | `false` | Impede o teardown de falha da ERA para anexação do depurador de kernel |
| `EnablePixMemory` | `false` | Reserva 6048MB extras para PIX no modo Lockhart Profiling |
| `CrashDumpType` | `None` | Opções: `Triage`, `Mini`, `Heap` |
| `TitlePerformanceOverlay` | `false` | Overlay HUD de GPU/CPU em tempo real sobre títulos em execução |
| `ExtraTitleMemory` | `0` | Máximo de 6048MB no modo Lockhart Profiling |
| `LastShutdownReason` | `Console crash` | Persistido entre reinicializações; meu console travou no último desligamento |
| `KinectSensorEnabled` | `true` | **Definido como true em hardware sem Kinect conectado**; a pilha é provisionada independentemente da presença de hardware |

### Categoria Network
| Configuração | Valor | Notas |
|---|---|---|
| `UseDebugNicForAllTraffic` | `false` | Existe uma NIC de depuração separada, distinta da NIC real. |

### Categoria Storage
| Configuração | Valor | Notas |
|---|---|---|
| `DevkitUseRetailConnectedStorage` | `false` | Se habilitado, o modo dev usaria a partição de armazenamento conectado de varejo. Não testado. |
| `RunFromPcDataCacheSizeInGB` | `100` | **100GB reservados por padrão para o cache de títulos Run-From-PC; bloqueado, não pode ser alterado pelo usuário** |

### Categoria Unattended
| Configuração | Valor | Notas |
|---|---|---|
| `AllowUsbUnattendScript` | `true` | Scripts `.xboxunattend` em USB são executados automaticamente |
| `RunUnattendScriptImmediately` | `false` | Se true, scripts USB são executados na inicialização sem prompt de cancelamento |

### Notas de Segurança

**E-mail da conta Microsoft armazenado em texto puro.** O armazenamento WdConfig do modo dev contém o endereço de e-mail da conta Microsoft vinculada em texto puro. Isso provavelmente é legível por qualquer processo com acesso SRA.

---

## 7. XCRDAPI.dll API de Entrega de Conteúdo do Xbox

`XCRDAPI.dll` é o kernel de gerenciamento de conteúdo da plataforma Xbox. Ele lida com DirectStorage, instalação progressiva, DRM, xCloud e armazenamento de blobs em uma única biblioteca.

### 7.1 DirectStorage

    DStorageGetFactory
    DStorageGetMappedControlPage

A implementação de DirectStorage do Xbox está embutida no XCRDAPI, não em um SDK separado.

### 7.2 Ciclo de Vida do XVDXCrdOpenAdapter / 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 Instalação Progressiva por Streaming

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

Pipeline completo de instalação progressiva com fila de prioridade. As regiões são blocos endereçáveis de conteúdo do jogo.

### 7.4 Integração XCloud

    XCloudQueryFeatureBits
    XCloudSetFeatureBits

Os sinalizadores de recursos do streaming xCloud são controlados pela mesma API do conteúdo local.

### 7.5 DRM / Atestação

    XCrdQueryAttestationBlob
    XCrdQueryEncryptedInfo / XCrdQueryUnlockInfo
    XCrdIsSideloadedKeyPresent
    XCrdEnableSharedPls / XCrdSetExternalPlsMapping

### 7.6 Sistema de Blobs de Armazenamento

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

### 7.7 Pipeline de Transferência XVD

    XCrdXvdXferInitialize / Uninitialize
    XCrdXvdXferStart / Stop
    XCrdXvdXferRead
    XCrdXvdXferGetResult

### 7.8 Sistemas de Caminhos

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

---

## 8. xpal.dll Camada de Abstração da Plataforma Xbox (50 exportações)

API anteriormente não documentada para identidade de hardware, capacidades e gerenciamento de energia.

### Identidade de Hardware

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

### Detecção de Geração / SKU

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


### Sinalizadores de Capacidade

    XpalIsCapabilityEnabled
    XpalIsCapabilityEnabledByVm
    XpalIsFactorySettingEnabled
    XpalGetFactorySettings
    XpalGetCapabilities
    XpalIsFeatureEnabled


### Gerenciamento de Energia

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


### Configuração

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


### ERA / VM de Título

    XpalQueryTitleVmInfo
    XpalWaitForTitleVmTermination
    XpalBackgroundActivityRequest

---

## 9. eracontrol.exe Gerenciador do Ciclo de Vida da Partição ERA

`C:\Windows\System32\eracontrol.exe` executa como LocalSystem (inicialização manual) e gerencia o ciclo de vida completo da partição de jogos ERA. A análise completa das importações está na Seção 28. Resumo das principais importações:

- `NtOpenPartition` abre diretamente o identificador da partição ERA do Hyper-V
- `RtlSetProcessIsCritical` marca a si mesmo como crítico (o sistema entra em BSOD se ele falhar)
- `XCRDAPI.dll` monta/desmonta XVDs de jogos por meio de `XCrdSetEraLaunchMapping`
- `RIMAddInputObserver` / `RIMRemoveInputObserver` intercepta a entrada bruta do controle para roteamento para a ERA
- `XblaInitialize` inicializa o contexto de autenticação do Xbox Live do console
- `LogonUserExExW` cria tokens de logon de usuário para a sessão ERA
- `UMgrOpenProcessHandleForAccess` acesso ao identificador de processo do gerenciador de usuários
- `PsmQueryBackgroundActivationType` estado de ativação em segundo plano

Também no mesmo diretório: `eraproxyapp.exe` (339KB), o compositor do lado do SystemOS e a ponte IPC entre a ERA e o shell. Análise completa das importações na Seção 29.

---

## 10. Rastreamentos ETL do BlackBox (N:\BlackBox\)

O diretório `N:\BlackBox\` contém rastreamentos do gravador de voo ETW em tempo real. A partir da análise de um rastreamento capturado:

**Nota:** O formato ETL do Xbox só será resolvido com 'tracerp'

### Caminhos Internos da Árvore de Origem (incorporados na instrumentação de depuração)

    onecoreuap\xbox\xblauth\lib\authmanagerimpl.cpp
    onecoreuap\xbox\xblauth\lib\authmanagertokens.cpp
    onecoreuap\xbox\xblauth\lib\xstsauthorizer.cpp
    onecoreuap\xbox\xblauth\util\httprequest.cpp

### Partes Confiáveis de Autenticação do 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

### Falhas Capturadas

1. **`XboxUI.exe` BEX64** O shell do Dashboard sofreu um estouro de buffer de pilha (`STATUS_STACK_BUFFER_OVERRUN`, `0xc0000409`) em `XboxUI.Data.dll` no offset `0x13eb0`
2. **`MoAppHang`** Um aplicativo UWP travado para o pacote `REDACTED_GUID`

---

## 11. Descobertas Adicionais Relevantes

### WSL Presente no Xbox

Os serviços `LxssManager` e `lxcore` estão presentes com `LaunchProtected: 0x2` (Processo Protegido) e `SeTcbPrivilege`. O WSL no Xbox executa com confiança em nível de SO e, com base no uso, quase certamente está alimentando algo ou, pelo menos, de alguma forma menor, relacionado a `Xbox.ConsoleXCloudPlayer` (cliente de streaming de jogos xCloud).

wsl.exe está presente, porém **não** é legível.

### Binários System32 Exclusivos do Xbox

DLLs notáveis não presentes no Windows padrão:

- `XCRDAPI.dll` entrega de conteúdo (documentado na Seção 7)
- `XBBlackbox.dll` gravador de voo (documentado na Seção 30)
- `XBCastRecv.dll` receptor Xbox Cast / Miracast (documentado na Seção 30)
- `XVMAudioServer.dll` servidor de áudio de VM entre partições
- `Xbox.Shell.Api.dll` / `Xbox.Shell.OneStoreServices.dll` API do shell (documentado na Seção 30)
- `XboxCommandService.dll` comando/automação
- `XboxUserSim.dll` automação de testes de UI
- `xboxgipsynthetic.dll` / `xboxsynthetickm.dll` injeção de controle virtual GIP sintético (documentado na Seção 30)
- `AppXDeploymentExtensions.xbox.dll` implantação AppX específica do Xbox
- `xvnapi.dll` API de Rede Virtual do Xbox
- `xbsc_xs.dll` Compilador de Shaders Xbox Series (documentado na Seção 16.2)

### Serviços Presentes Mas Não Documentados

- `EraControlService` ciclo de vida da partição ERA
- `XvdStreamSvc` (`xnetsharedservice.exe`) streaming XVD / instalação progressiva
- `XUpdMgr` Gerenciador de Atualizações do Xbox (separado do Windows Update de alguma forma?)
- `XSraFlt` driver de filtro SRA do Xbox
- `Manufacturing Broker` serviço de provisionamento de fábrica
- `TestSirepSvc` protocolo interno de teste SIREP
- `GameCoreController` serviço de controle do game core do GDK
- `ConnectedStorage` serviço de salvamento em nuvem do Xbox
- `VideoManagerService` gerenciamento de saída de vídeo
- `XBBlackbox` serviço de gravador de voo
- `xbdiagservice` serviço de diagnóstico do Xbox
- `XtfRtService` serviço de runtime XTF

Drivers adicionais legados/de baixo nível confirmados no registro de serviços (veja a Seção 11.2):

- `Zurich` driver virtual DVB

### `xvnc` / `xvncbus` Placa de Rede Virtual do Xbox

`xvnc.sys` e `xvncbus.sys` são uma **pilha de NIC virtual**; a enumeração do serviço `xvnc` revela:

    ROOT\xvnc\0000             root/loopback virtual NIC
    {e720983a-...}\wifi\01
    {e720983a-...}\wfd\01      Wi-Fi Direct
    {e720983a-...}\wfd_role0\01

`xvncbus` é um driver de barramento WDF 1.15 que enumera NICs virtuais sobre o adaptador sem fio físico. A partição ERA não acessa a pilha de rede diretamente; ela se comunica por meio de `NetXVmService`, que possui a camada de NIC virtual `xvnc`. O GUID `{e720983a-...}` identifica o hardware do adaptador sem fio do Xbox.

### `xviomonc.sys` Cliente de Monitor XVIO

Driver de inicialização (`Start: 0x1`) que gerencia o foco da partição de exibição. Análise das importações:

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

`xviomonc` **não** lida com dados do framebuffer; é apenas um driver de sinalização e gerenciamento de foco. `XvioSetFocus` alterna qual partição tem o foco de exibição/entrada; `XvioGetCurrentPartitionId` identifica a partição ativa. A captura de quadros real é tratada por `srakmd_arden.sys`.

`NpSetupVmImpersonation`, de `VMNP.SYS`, permite que o driver de monitor personifique a identidade de segurança da partição ERA ao acessar recursos de exibição da ERA através do limite da partição.

### G:\ Buffers GameDVR

Três arquivos em G:\ são buffers crus circulares mapeados em memória, compartilhados entre a ERA e o SystemOS:

- `GameDVR_VideoBuffer` captura de vídeo contínua de 272MB
- `GameDVR_AudioBuffer` áudio do jogo de 16MB
- `GameDVR_AudioBuffer_SysLoopback` áudio do sistema/interface de 3MB (fluxo separado)

---

## 11.1 Descobertas do Registro

### Referência ao Drive K:\ Exclusiva de Devkit

`HKLM\SOFTWARE\Microsoft\Durango\XTF` contém um caminho hardcoded:

    K:\TDK\Tools\XtfJuno.dll

### `HKLM\SYSTEM\ResourcePolicyStore`

| Camada | Orçamento de Memória |
|------|--------------|
| `BackgroundSmall` | 40MB |
| `Background` | (segundo plano padrão) |
| `Balloon` | 5120MB |

Camadas de política de CPU:

| Política | Alocação de CPU |
|--------|---------------|
| `Paused` | 1% |
| `SoftCapLow` | 10% |
| `SoftCapFull` | 100% |
| `HardCap0` | 0% - completamente congelada |

**Política BeanHog** (talvez o orçamento do processo de jogo em primeiro plano?):

- Memória: camada de primeiro plano
- CPU: 100%
- `DoNotKill`: true
- Prioridade: importância mais alta

---

## 11.2 Arqueologia do Legado do Xbox One

Três drivers da era do Xbox One sobrevivem no registro de serviços do Series S. Dois estão desabilitados; um está em execução ativa.

### Pilha do Decodificador de TV `Zurich`

`zurichs.sys` é o driver virtual DVB do Xbox One. Status: **desabilitado**, mas ainda registrado.

Descoberta importante: `zurichs.sys` importa ring buffers de `XVIO.SYS`. O sintonizador de TV foi projetado arquiteturalmente para entregar seu fluxo de vídeo decodificado por meio dos ring buffers do hipervisor XVIO. O sintonizador também usava `ZwUpdateWnfStateData` para publicar o estado do sintonizador por meio do Windows Notification Facility (WNF).

### Dispositivo de Controle do Sensor Kinect `PetraXC`

Um driver de dispositivo virtual WDF agora identificado como o **dispositivo KinectSensorControl**, a abstração de hardware no lado do kernel para o sensor de câmera do Kinect. Status: **desabilitado até o dispositivo chegar** (modelo WDF de início sob demanda).

Características notáveis:

- Compilado com **WDF 1.11**, que corresponde ao Windows 8, situando sua origem na base do kernel original do Xbox One
- Importa `XVIO.SYS`, o que significa que ele se comunica por meio do transporte de ring buffer do hipervisor
- Apresenta `\\.\KinectSensorControl` como sua interface de dispositivo, consumida por `KinectMediaSource.dll` no pipeline do nuiservice via `DeviceIoControl` (veja a Seção 33)

### `pspsra.sys` Ponte AMD PSP para SRA

Status: **em execução ativa** (`Start: 0x0`, inicialização). Acesso negado no nível do kernel; o driver está bloqueado e não pode ser inspecionado mais.

`pspsra.sys` fica diretamente abaixo da partição SRA na cadeia de inicialização como uma **ponte entre o AMD Platform Security Processor (PSP) e a camada SRA**. O AMD PSP lida com a atestação do fTPM e o certificado do console no nível do bare metal, e `pspsra.sys` é a ponte que expõe essa cadeia de confiança para a SRA. Isso o coloca no mesmo nível de confiança de `XVIO.SYS` e `XSraFlt.sys`, inicializado antes do SystemOS, opaco a ele e inacessível mesmo com acesso total ao kernel.

---

## 12. Perguntas Não Resolvidas + Drivers

Perguntas:

1. **Localização do XVIO.SYS** não está em nenhum sistema de arquivos acessível; carregado pelo hipervisor na inicialização
2. **Uso do WSL** confirmado como presente e utilizado, mas o papel específico no Xbox OS não foi totalmente mapeado
3. **`XCrdXpfOp`** função XCRDAPI não identificada (XPF = ?)
4. **Localização de `XSraFlt.sys` + `XRmnt.sys`** confirmadamente ausentes de todos os sistemas de arquivos acessíveis; carregados pelo Host OS juntamente com XVIO.SYS
5. **`xvnc` GUID `{REDACTED_GUID}`** GUID do adaptador sem fio, cadeia completa do driver não mapeada
6. **Alvo do ponto de reparse de `S:\Shares\TitleScratch`** ativamente ocultado pelo SO nas listagens de diretório; requer `FSCTL_GET_REPARSE_POINT` abaixo da camada do cmd.exe. Quase certamente `\Device\Xrfs\<partition-guid>` (veja a Seção 26)
7. **Superfície IOCTL de `xvmctrl.sys`** despejo de kernel ao vivo bloqueado (restrição `NoKernelDumps` no modo dev comercial); tabela de dispatch IOCTL ainda não enumerada
8. **GUID da partição ERA** não exposto por nenhum caminho de registro acessível; estaria visível no despejo de kernel (bloqueado, investigando contornos)
9. **Conteúdo de `N:\EtwPlus\`** ativamente ocultado por um driver de filtro do sistema de arquivos do kernel; as listagens de diretório retornam vazias apesar da atividade de escrita confirmada. A identidade do driver de filtro não foi determinada (veja a Seção 3.2)
10. O Host OS como um todo: nem sequer é totalmente certo o que ele faz.

Drivers:

1. **`xtcc.sys`**, provavelmente responsável por algo relacionado à segurança, dado seu vasto número de importações de `ntoskrnl.exe` e `XVIO.sys`
2. **`FLTMGR.SYS`** importado por `XRmnt.sys`, `XRo.sys`

---

## 13. E/S Virtualizada e Acesso Remoto (XVIO/SRA)

A análise das exportações de `xboxcloudstreaming.dll` e das entradas de registro `CurrentControlSet\Services` mostra integração profunda no nível do kernel para conexões remotas, utilizando um modelo de hardware "sintético" em vez da emulação de software padrão. A VM da ERA enxerga o(s) mesmo(s) dispositivo(s) sintético(s), não importa de onde a entrada esteja vindo (remoto, USB, sem fio, etc).

### 13.1 A Pilha XVIO (E/S Virtual)

O framework XVIO parece ser o método principal para injetar eventos no nível de hardware no SystemOS a partir de fontes externas ou entre partições.

| Serviço | Categoria | Função |
| --- | --- | --- |
| `hvsocketxvio` | Transporte | Serviço de ponte conectando soquetes Hyper-V ao protocolo XVIO. |
| `InputXVIOClient` | Coordenador | Gerencia o mapeamento de pacotes de entrada remota para nós de dispositivos virtuais. |
| `xviokbdbus` / `xviomoubus` | Driver de Barramento | Enumera dispositivos HID virtuais em um barramento interno sintético. |
| `xviokbd` / `xviomou` | Driver de Dispositivo | Drivers de função específicos para teclados e mouses virtualizados. |

### 13.2 Pipeline do Controlador Sintético

O binário `xboxcloudstreaming.dll` aproveita `XboxgipSynthetic.dll` para criar o que o SO percebe como periféricos locais fisicamente conectados.

- **Virtualização de Áudio:** Por meio de `SyntheticController_AddAudioHeadset`, o sistema pode canalizar áudio de rede remota para a pilha de áudio local do console como um dispositivo vinculado ao hardware.
- **Injeção de Entrada (RIM):** O uso do Remote Input Manager (`ext-ms-win-ntuser-rim-l1-1-0.dll`) confirma que sessões de xCloud e remote play usam os mesmos métodos de injeção de alta autoridade do Windows Remote Desktop, especificamente `InjectKeyboardInput` e `InjectPointerInput`.

### 13.3 Drivers SRA e "Arden"

> **Nota:** O driver `SraKmdArden` é específico de hardware para a arquitetura Series X/S (Arden). Esse driver provavelmente permite que o sistema intercepte o buffer de exibição no nível do kernel, minimizando a sobrecarga de latência geralmente associada ao desenho entre VMs.

### 13.4 Ponte HvSocket (GUID `4545ffe2-...`)

O GUID HvSocket anteriormente não identificado foi correspondido ao serviço `hvsocketxvio`. Isso confirma que o XVIO não é um protocolo independente, mas uma camada executada sobre o transporte de soquetes interno do Hyper-V.

Isso sugere que a **partição ERA (jogo)** não fala diretamente com a rede para entrada; em vez disso:

1. **SystemOS** recebe pacotes de rede via `XboxNetApiSvc`.
2. **`xboxcloudstreaming.dll`** processa o fluxo.
3. **`hvsocketxvio`** canaliza os dados brutos de entrada através do limite da partição via **HvSocket**.
4. A camada Hypervisor/Host os injeta na partição de destino como um evento de hardware.

---

## 14. Volume M:\ | Arquitetura de Overlay

M:\ (rotulado como "System OS Misc") funciona como um **volume overlay**, uma árvore contendo componentes que são montados sobre a imagem base C:\. Essa arquitetura permite que a Microsoft forneça uma única imagem de SO e aplique conjuntos de recursos específicos por meio de overlays no momento da montagem.

### 14.1 Estrutura do Volume

    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 Symlinks do Sistema de Arquivos

C:\ referencia componentes de M:\ por meio de symlinks NTFS. Os symlinks existem em dois níveis:

**Nível de driver do System32:**

    C:\Windows\System32\drivers\srakmd_arden.sys -> M:\windows\system32\drivers\srakmd_arden.sys

**Nível de diretório do 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

O overlay M:\ é mais abrangente do que uma simples substituição de drivers/DLLs; diretórios centrais de subsistemas do Windows, incluindo a loja de fontes, aplicativos do sistema e a interface de gerenciamento web, residem inteiramente em M:\. Isso pode significar que um overlay específico controla não apenas drivers de GPU e captura, mas todo o sistema de aplicativos e a camada de shell da interface até certo ponto.

Uma enumeração recursiva completa dos symlinks de C:\ apontando para M:\ não foi concluída.

### 14.3 Drivers Específicos de Hardware (M:\windows\system32\drivers\)

| Driver | Tamanho | Finalidade |
|---|---|---|
| `srakmd_arden.sys` | 274KB | KMD de captura SRA -> capturador de quadros específico do hardware Arden |
| `acpi.sys` | 873KB | ACPI -> compilação específica de hardware (maior que a genérica) |
| `spaceport.sys` | 1MB | Porta de armazenamento -> criptografia XVD + verificação de licença |
| `spacedump.sys` | 304KB | Driver de despejo de armazenamento |
| `buttonconverter.sys` | 90KB | HID de energia/ejetação -> conversão em eventos do console |
| `qwavedrv.sys` | 90KB | Driver de QoS/qualidade de rede |
| `acpiex.sys` | 181KB | Extensões ACPI |
| `AcpiDev.sys` | 61KB | Extensões de dispositivo ACPI |
| `acpitime.sys` | 57KB | Temporizador ACPI |

**Descoberta:** `XSraFlt.sys` está ausente tanto dos drivers M:\ quanto de C:\. Ele não está armazenado em nenhum volume de sistema de arquivos acessível, o que sugere que é carregado pelo Host OS na inicialização, juntamente com `XVIO.SYS` e `FLTMGR.sys`.

### 14.4 Componentes Userspace Específicos de Hardware (M:\windows\system32\)

DLLs/EXEs notáveis exclusivos de M:\:

**Pilha de GPU / Shaders:**

- `umd12ddi_arden.dll` (1.56MB)  DDI do driver em modo de usuário D3D12, hardware Arden
- `umd12ddi_d.dll` (1.5MB)  UMD D3D12, compilação instrumentada para depuração/PIX
- `umd12ddi_i.dll` (1.14MB)  UMD D3D12, compilação inbox/fallback
- `newbe_xs.dll` (26MB)  backend do compilador de shaders GPU Arden "NewBe"
- `xbsc_xs.dll` (3.9MB)  frontend do Xbox Series Shader Compiler
- `dxcompiler_xs.dll` (17.8MB)  compilador HLSL do Xbox Series
- `dxbc2dxil_xs.dll` (2.9MB)  conversor de bytecode DXBC para DXIL
- `pixrtddi.dll` (679KB)  DDI de renderização/depuração PIX

**Toolchain para Desenvolvedores / PIX:**- `VsGraphicsRemoteEngine.exe` (4.75MB) mecanismo remoto do profiler de GPU PIX
- `VsGraphicsCapture.dll` (225KB) captura de quadros do PIX
- `VsGraphicsExperiment.dll` (327KB) estrutura de experimentos do PIX
- `DXCaptureReplay.dll` (18MB) mecanismo de replay de captura de GPU
- `DXCap.exe` (1.19MB) ferramenta de captura de GPU
- `DXToolsMonitor.dll` / `DXToolsOfflineAnalysis.dll` / `DXToolsReporting.dll` pilha de análise do PIX
- `DXGIDebug.dll` (151KB) camada de depuração DXGI
- `d3d12SDKLayers.dll` (4.8MB) camadas de validação/depuração D3D12
- `d3d11_3SDKLayers.dll` (1.19MB) camadas de depuração D3D11
- `d2d1debug3.dll` (618KB) camada de depuração D2D
- `VSD3DWARPDebug.dll` (155KB) build de depuração do rasterizador de software WARP
- `plmdebug.exe` (204KB) depurador de PLM (ciclo de vida de processo)

**Streaming / Acesso Remoto:**

- `rdpbase.dll` (1.8MB) biblioteca base RDP
- `rdpserverbase.dll` (2.3MB) base do servidor RDP
- `XboxDevService.exe` (3.7MB) host do serviço de desenvolvimento Xbox
- `XboxDevService.ProxyStub.dll`

**Pilha Social / Plugins:**

- `DiscordPlugin.dll` (139KB) integração com Discord
- `TwitchPlugin.dll` (639KB) integração de streaming com Twitch

**Outros Notáveis:**

- `XboxSyntheticKM.dll` (36KB)
- `xrmntcl.exe` (90KB) cliente de montagem do Xbox Runtime
- `xtfupdateT_s_i.dll` (98KB) ?
- `xtcapi.dll` (57KB) API XTC (Comunicações de Título do Xbox?)
- `wusys.dll` (308KB) integração com o sistema do Windows Update

---

## 15. Pilha de GPU | Pipeline de Compilação de Shaders

O pipeline completo de compilação de shaders do Xbox Series S/X reside em M:\ e está ausente de C:\. Nenhuma compilação de shader é possível sem a sobreposição específica de hardware montada.

### 15.1 `newbe_xs.dll`

DLL de 26MB. Backend do compilador de shaders da GPU Arden. Apenas 6 exports:

    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

A seção `.pass` pode sugerir um pipeline de passes no estilo LLVM. `NB_CreatePixDwarfApi` gera informações de depuração de shader em nível de fonte para o PIX.

### 15.2 `xbsc_xs.dll`

41 exports cobrindo a API de compilação completa:

    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


As seções PE `_mmddu` e `_MMDDT0` contêm **Microsoft Machine-Dependent Driver Data** (Dados de Driver Dependentes da Máquina da Microsoft), tabelas de microarquitetura de hardware embutidas no compilador (latências de instrução, topologia do arquivo de registradores, contagens de unidades de execução para Arden).

### 15.3 `dxcompiler_xs.dll`

17.8MB. Fork do Xbox Series do compilador DXC HLSL. 4 exports:

    DxcCreateInstance / DxcCreateInstance2   standard DXC factory (compatible with public API)
    CreateXdxrCompiler / CreateXdxrCompiler2 Xbox DXIR compiler (Xbox-specific IR format)

### 15.4 `dxbc2dxil_xs.dll` Conversor de Bytecode

2.9MB. Export único:

    SCDxil_ConvertDxbcToDxil   convert DX11 DXBC bytecode to DXIL for DX12 pipeline


Permite que shaders DX11 com compatibilidade reversa sejam executados no pipeline Arden exclusivo para DX12.

### 15.5 Cadeia Completa de Compilação de Shaders

    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` Biblioteca de Layout de Texturas Gráficas do Xbox

Localizada em **C:\** (não em M:\). Contém 27 exports cobrindo tiling de texturas, layout de BVH para ray tracing e compressão DCC.

### 16.1 Superfície de Exports

    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 Principais Descobertas

**O layout de BVH para Ray Tracing é específico do hardware.** `XGCreateBVHComputer2` expõe uma API de layout de BVH de segunda geração, sugerindo que a arquitetura Arden possui um formato distinto de nó BVH que difere do DXR genérico.

**A compressão DCC da AMD está exposta.** `XGEncodeDCC` / `XGDecodeDCC` implementam a Delta Color Compression da AMD, a compressão sem perdas de framebuffer por hardware usada nas GPUs RDNA. `XGDecodeDCCSurface` é a API que o PIX usa ao ler de volta framebuffers capturados comprimidos com DCC.

**Tiling do DirectStorage.** `XGShuffleTextureBufferForDirectStorage` realiza o embaralhamento no lado da GPU que transforma o layout de textura em disco no formato de tiling de hardware Arden durante a descompressão pela GPU, permitindo carga zero-copy para a VRAM.

**`XGSetHardwareVersion` controla todos os algoritmos de layout.** A biblioteca contém implementações de layout para múltiplas revisões de hardware. Chamar `XGSetHardwareVersion` com o identificador do Series S em vez do Series X produz resultados de tiling diferentes, refletindo as diferentes larguras de barramento de memória e geometrias de cache.

### 16.3 Seção de Metadados de Build `.xbld`

`xg_xs.dll` contém uma seção PE `.xbld` ausente em todos os outros binários do Xbox, indicando que ela se origina de um pipeline de build de CI do GDK separado, em vez do sistema de build do sistema operacional Xbox. O sistema de build do SO zera os timestamps e remove seções de metadados; o CI do GDK não.

    _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

O valor `edition_name` de **"April 2026 GXDK"** antecede o lançamento público dessa edição do SDK (no momento da escrita, é 9 de março de 2026), confirmando que o SO comercial é distribuído com componentes GDK compilados contra o próximo ciclo de SDK ainda não lançado. A versão `sdktype=260400` segue o padrão `YYMMRR` (Ano/Mês/Revisão).

O timestamp `edition_build` `0x65F41B62` decodifica para **13 de março de 2024**, mais de um ano antes da data do build do SO (12 de fevereiro de 2026), indicando que os algoritmos de layout de textura permaneceram estáveis e inalterados ao longo de pelo menos 5 ciclos de lançamento do GDK.

O `mscver=193833145.100` identifica o compilador como **MSVC 19.38** (Visual Studio 2022 17.8.x).

### 16.4 Inferência do Pipeline de Build (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

Isso significa que o `xg_xs.dll` nos consoles comerciais é idêntico, bit a bit, ao que os desenvolvedores recebem no GDK. A verificação de hash contra o lançamento público do GDK de abril de 2026 (quando disponível) confirmaria isso.

---

## 17. Modelo de Integridade de Código Trust-by-Catalog

### 17.1 Formato do Contêiner PE

Os arquivos `Catalog*.bin` em cada volume são **executáveis PE32+ com subsystem `0x11`** ("Xbox Code Catalog"), um subsystem não documentado e ausente em qualquer documentação pública. Principais características do cabeçalho 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)

Sobre como eles funcionam, não tenho certeza, o Xbox One

### 17.2 Cadeia de Confiança

    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

Este é um modelo **trust-by-catalog**. Uma única assinatura da Microsoft cobre uma grande quantidade de arquivos por volume. Binários individuais e provavelmente outros tipos de arquivo não são assinados; sua integridade é garantida pela participação no catálogo.

**Contagem de entradas e dimensionamento:**

| Volume | Catálogo | Tamanho do payload | Entradas (÷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 |

O tamanho do payload de cada catálogo (dentro da seção PE) é exatamente divisível por 32 sem resto, e não é consistentemente divisível por 36, 40 ou outros tamanhos comuns de registro. Isso sugere fortemente que o payload é um array plano de **registros de 32 bytes**.

**Algoritmo de hash:** SHA-256 e SHA-1 de arquivo inteiro de binários conhecidos não foram encontrados nos catálogos, descartando hash simples de arquivo inteiro. O formato mais provável é **Authenticode page hashes**, o padrão de CI do Windows em que cada página alinhada de 4KB das seções mapeadas de um arquivo PE recebe hash individualmente. Isso produziria uma entrada de 32 bytes (SHA-256) por página por arquivo, explicando as grandes contagens de entradas (172.928 entradas apenas para C:\).

**Ordenação:** O payload não está ordenado por valor de hash. O esquema de ordenação não foi determinado; as possibilidades incluem ordenação por hash do caminho do arquivo, por pacote de instalação, por deslocamento de página dentro do conjunto de arquivos do volume, ou até mesmo por alguma característica do NTFS.

**Sem cabeçalho:** Os primeiros 128 bytes do payload não contêm magic ASCII reconhecível, nenhum campo inteiro pequeno que pudesse indicar contagem ou versão, e nenhuma estrutura consistente com um cabeçalho padrão. O array de hashes começa no byte 0 do payload, sem preâmbulo.

### 17.3 Aplicação Apenas no Momento do Carregamento

A aplicação da Integridade de Código é **apenas no momento do carregamento**. Uma vez que um binário passa pela verificação de hash do catálogo e as páginas são mapeadas na memória, a CI não tem mais envolvimento. A HVCI (Hypervisor-Protected Code Integrity), se ativa no SystemOS, fecharia a janela TOCTOU (Time-of-check to time-of-use) resultante, tornando as páginas de código carregadas somente leitura por hardware no nível das tabelas de páginas do hipervisor. **HVCI está confirmadamente desativada no SystemOS**, `IsSecureKernelRunning = 0x0` (ver Seção 18). A janela TOCTOU, portanto, está presente.

### 17.5 Componentes do Host OS

Dois drivers estão confirmadamente ausentes de todos os volumes de filesystem acessíveis e são carregados diretamente pelo Host OS antes da inicialização do SRA:

- `XVIO.SYS` núcleo de E/S virtual do Xbox (sem entrada de serviço no registro, não está em nenhum volume)
- `FLTMGR.sys` gerenciador de filtros
- `XSraFlt.sys` filtro SRA (a entrada de serviço existe, mas não há arquivo correspondente em nenhum volume)

Esses componentes existem totalmente fora do modelo de confiança do catálogo. Eles não podem ser adulterados mesmo com acesso total ao kernel do SystemOS, pois são mapeados pelo bootloader antes que o HostOS (que é pai do System OS) comece a carregar.

Informações sobre os componentes do Xbox One [podem ser encontradas aqui](https://xboxoneresearch.github.io/wiki/boot/vbi/); no entanto, não posso ter certeza total de que o HostOS não mudou até agora.

---

## 18. Status da HVCI

> **Impacto:** Com a HVCI desativada, a integridade de código é apenas no momento do carregamento. Uma vez que um binário é mapeado na memória, não há aplicação por hardware impedindo a modificação em memória. A janela TOCTOU descrita na Seção 17.3 está, portanto, aberta. O limite de segurança pretendido continua a depender inteiramente de o SystemOS não se comunicar com a ERA (GameOS).

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

    IsSecureKernelRunning = 0x0

O Secure Kernel (VTL1) não está em execução no SystemOS, confirmando que a HVCI não pode estar ativa. Esta é uma troca deliberada por desempenho: nenhum custo de VTL1 sobre a atividade do kernel no loop do jogo. O limite de segurança é a própria partição do hipervisor, não a proteção de memória dentro da partição. O modelo de integridade de código (Seção 17) é, portanto, apenas no momento do carregamento, sem proteção TOCTOU.

---

## 19. Namespace de IPC do Hipervisor sevpipe

Um namespace de dispositivo de named pipes personalizado do Windows (`\\.\sevpipe\`) que serve como espinha dorsal primária de IPC para toda a comunicação entre processos e entre partições específica do Xbox. Não é uma construção do hipervisor no nível de protocolo; por baixo, são semânticas padrão de named pipes do Windows, registradas sob um namespace de dispositivo personalizado para ocultá-lo das ferramentas normais de enumeração de pipes.

### 19.1 Inventário Completo de Pipes

    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

Os pipes dinâmicos só existem quando a ERA está ativa, uma sessão XTF está em execução ou o xCloud está transmitindo.

### 19.2 Mapa de Controle de Acesso

    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 Pipeline de Telemetria

    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` é específica do Xbox (`FileDescription: Xbox ETW Plus API`), versão `10.0.26100.7010`. Os exports de suspend/resume são provavelmente stubs em builds comerciais; três exports compartilham o mesmo RVA.

### 19.4 Captura de Tela RTSP do videoserver.exe (provavelmente um remanescente do [Xbox Dev Mode Companion](https://apps.microsoft.com/detail/9nblggh519cp))

Porta: 11442 (hardcoded no binário). Dependências:

    Windows.Xbox.Graphics.Display.Internal.DisplayManager
    Windows.Xbox.System.Internal.GameStreaming.GameStreamingAgent
    Windows.Xbox.Media.Capture.ApplicationClipShell

**Descoberta-chave:** Não parece funcionar corretamente. Nenhum método foi encontrado para acessar o fluxo de vídeo de dentro ou de fora do console.

Caminhos/flags hardcoded:

    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 / Esquema do Windows Update

O Xbox carrega o esquema completo de targeting do Windows Update, incluindo entradas de targeting `XBOXMOBILE` e caminhos de hive de registro `WCOS`, confirmando que o Xbox Series S é executado sobre a fundação Windows Core OS (WCOS) compartilhada com HoloLens e Surface Hub. O SO é um Windows 11 24H2 levemente personalizado, não um SO de plataforma construído especificamente.

---

## 20. Topologia de Partições do Hipervisor

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

    LocalAddress  = {REDACTED_GUID}  SystemOS partition GUID
    ParentAddress = {REDACTED_GUID}  null parent

O SystemOS pensa que é a **partição raiz** (falso; o Host OS é a raiz). A partição de jogo ERA é filha do SystemOS. O GUID da partição ERA não é exposto ao SystemOS através de nenhum caminho de registro acessível e pode ser randomizado.

### Endpoints Wildcard entre Partições do HvSocket

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

Quatro GUIDs de serviço resolvidos via computação de SID de serviço SHA1:

| GUID | Serviço | Finalidade |
|------|---------|---------|
| `REDACTED_GUID` | DiagTrack | Pipe de telemetria 1 |
| `REDACTED_GUID` | DiagTrack | Pipe de telemetria 2 |
| `REDACTED_GUID` | RpcSs | RPC entre partições |
| `REDACTED_GUID` | EventLog | Encaminhamento de eventos entre partições |

DiagTrack, RpcSs e EventLog são cidadãos de primeira classe entre partições. A telemetria do jogo, chamadas RPC e eventos são canalizados da ERA para o SystemOS através de canais de socket de hipervisor dedicados, invisíveis para qualquer coisa em execução dentro da ERA.

---

## 21. Configuração de Gráficos

`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

A versão do WDDM é fixada em vez de negociada; o pipeline de exibição é controlado pelo firmware e pelo hipervisor, sem envolvimento do WDDM no gerenciamento de monitores. O MPO tier 3 (`AdapterMPO_3`) é como o framebuffer do jogo na ERA e a interface do SystemOS são compostos sem um blit por software entre partições: cada superfície ocupa um plano separado de overlay por hardware.

---

## 22. WdApp.exe Gerenciador de Pacotes e Ferramenta de Ciclo de Vida de Aplicativos

`J:\tools\WdApp.exe` é um gerenciador de pacotes completo e gerenciador de ciclo de vida de aplicativos para a plataforma de aplicativos do Xbox. Superfície de comandos completa:| Comando | Finalidade |
|---------|------------|
| `install` | Transmitir um build empacotado de servidor web, compartilhamento de rede ou caminho local |
| `register` / `unregister` | Registrar/cancelar registro de pacotes de aplicativos de arquivos soltos |
| `registerdrive` | Registrar todos os aplicativos de uma unidade inteira de uma só vez |
| `registernetworkshare` | Instalar a partir de um compartilhamento de rede UNC com credenciais opcionais |
| `registerscratch` | Registrar a partir da unidade scratch de desenvolvimento |
| `registertitlescratch` | Registrar a partir da unidade scratch de título ERA |
| `launch` | Iniciar por AUMID, caminho do exe ou URI |
| `terminate` / `suspend` | Parar ou suspender um aplicativo em execução |
| `uninstall` | Desinstalar um aplicativo ou partes dele |
| `list` | Listar todos os aplicativos registrados |
| `listdlc` | Listar DLCs instalados |
| `move` / `copy` | Mover ou copiar um pacote |
| `movedrive` / `copydrive` | Mover ou copiar todos os pacotes de uma unidade |
| `applyconfig` | Iniciar o sistema operacional de jogo ERA com configurações especificadas ou um `game.config`/`.xvd` |
| `queryconfig` | Exibir o número de versão de 4 partes do sistema operacional de jogo em execução |
| `queryversioninfo` | Consultar a versão do sistema operacional de jogo para um pacote fornecido |
| `collectxip` | Coletar rastreamento XIP |
| `lastgamedetails` | Recuperar detalhes sobre o último jogo executado |
| `installkey` | Instalar uma chave no console |
| `installplan` | Instalar um plano no console |
| `overlayfolder` | Gerenciar pastas de sobreposição de pacotes |

### Descobertas notáveis

**`applyconfig [game.config | ERA.xvd]`** controle direto da inicialização da partição ERA pela linha de comando. Aceita uma imagem de disco XVD `.xvd` ou um arquivo de configurações `game.config`. Executado sem argumentos, inicia o sistema operacional de jogo usado mais recentemente. Em um sistema sem contexto de jogo anterior, isso retorna `0x87E50002` (facilidade ERA, nenhuma XVD encontrada).

**`/drive=Retail`** o comando `install` aceita `Retail`, `Development` e `Ext1-Ext7` como especificadores de unidade de destino, permitindo a instalação de pacotes diretamente na partição de armazenamento de varejo a partir do shell de desenvolvimento.

**`/WaitToExit`** em `launch` faz com que o WdApp possua o processo iniciado como pai e capture os códigos de saída. Os aplicativos do sistema rejeitam isso com `0x8D160121` (facilidade Xbox PLM, pai de ciclo de vida incorreto). Iniciar sem `/WaitToExit` é bem-sucedido, pois o ShellCoreService mantém a propriedade do ciclo de vida.

**Codificação AUMID de `launch`** os AUMIDs de aplicativos do sistema exigem codificação base64 correspondente ao padrão usado nos scripts QuickActions do `.xboxunattend`:```
WdApp.exe launch <base64(FamilyName!AppId)>

23. API REST do Device Portal

O servidor web do Device Portal (WebManagement.exe, PID 2344) serve seu frontend a partir de M:\windows\WebManagement\www\default\. O esquema completo da API REST está documentado em js\RestDocumentation.json (40KB).

Autenticação: HTTP Basic auth sobre HTTPS na porta 11443. As credenciais são o nome de usuário e o PIN do Device Portal definidos durante a ativação do modo dev.

Namespaces da API

Flags de restrição

Vários endpoints carregam flags de restrição que os desabilitam em consoles de modo dev de varejo:

Dumps de processo ao vivo em modo usuário (/api/debug/dump/usermode/live?pid=<pid>) são nonRestrictable e funcionam no modo dev de varejo.

Árvore de origem do Device Portal


24. Lista de Processos em Execução

Obtida via GET /api/resourcemanager/processes. Processos notáveis selecionados:

Três instâncias de xnetsharedservice.exe (PIDs 2032, 2764, 2844) rodam simultaneamente sob SYSTEM, sugerindo instâncias separadas de ponte de rede para diferentes canais entre partições.

eracontrol.exe com working set de 991KB sem nenhum jogo em execução confirma que ele é puramente orientado a eventos: mantém quase nenhum estado quando ocioso, despertando apenas em eventos de ciclo de vida da ERA.


25. Pipeline do Windows Update (Deploy:)

Impacto: O volume Deploy:\ é restrito localmente ao acesso do userspace, mas essa restrição é contornada pelo caminho de compartilhamento de rede através da junção S:\Deployment\SoftwareDistribution\. Os rastreamentos ETL de atualização, o caminho do banco de dados WU e a URL do endpoint SLS (incluindo o identificador de plataforma e os pacotes de idioma instalados) são totalmente legíveis.

S:\Deployment\SoftwareDistribution\ é uma junção para o volume de dispositivo kernel oculto Deploy:\.

Análise de Rastreamento ETL

Duas sessões de atualização foram capturadas:

Sessão 1 — 9 de março de 2026, 18:25:23

  • O serviço WU iniciou a frio; DataStore.edb não existia (criado do zero nesta sessão)
  • Estado de rede: desconectado na inicialização
  • Endpoint SLS tentado: https://slscr.update.microsoft.com/SLS/{REDACTED_GUID}/x64/10.0.26100.7010/0
  • Falhou imediatamente com 0x8024402C (sem internet). Nenhuma verificação de atualização foi concluída.

Sessão 2 — 10 de março de 2026, 03:59:18

  • O serviço WU iniciou e carregou o DataStore.edb existente
  • Estado de rede: desconectado na inicialização
  • A mesma solicitação SLS falhou com 0x8024402C
  • A rede ficou online às 03:59:24, 6 segundos depois que o serviço já havia falhado e abandonado a sessão
  • O serviço ficou ocioso por 10 minutos e então encerrou corretamente às 04:09:19 com código de saída 0x240001
  • Nenhuma verificação de atualização foi concluída em nenhuma das sessões

Observação: Em ambas as sessões, a rede estava indisponível quando o serviço WU inicializou, fazendo com que ele abandonasse a verificação de atualização. Na sessão 2, a rede ficou online 6 segundos depois que o serviço já havia saído da fase de descoberta, sugerindo que o pipeline de atualização não tem nova tentativa de reconexão após a falha da verificação inicial de rede.

Estrutura da URL do Endpoint SLS

root@kitploit:~
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 é o identificador de plataforma Xbox embutido em toda verificação de atualização. CH diminuiu de 928 para 19 entre as sessões, consistente com um contador de estado do catálogo que é redefinido quando o banco de dados é recriado.

GUID de Configuração do Serviço

[REDACTED] identificador de configuração do serviço Windows Update do Xbox, presente no subdiretório SLS\ e embutido em toda URL de solicitação SLS.

Árvore de Origem do Cliente WU

Caminhos de build internos do Azure DevOps vazados via instrumentação de depuração:

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\ é o caminho de workspace padrão de agente auto-hospedado do Azure DevOps. O cliente Windows Update do Xbox compartilha a origem com o Windows Update de desktop: é o mesmo codebase compilado para o alvo de plataforma Xbox.

Timer Persistente

O GUID de timer REDACTED_GUID foi definido na sessão 1 e sobreviveu à reinicialização até a sessão 2. Ele é armazenado fora do DataStore.edb (provavelmente no registro) e agenda a próxima verificação de atualização independentemente do ciclo de vida do banco de dados.


26. Análise do Driver de Pilha de E/S Entre Partições

xbtplinkc.sys — Cliente de Transporte de Link XVIO

A análise de imports revela toda a superfície da API de ring buffer XVIO e o mecanismo de tradução de 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 é a primitiva de memória compartilhada entre partições. A ERA entrega ao SystemOS um Endereço Físico de Convidado; o SystemOS chama essa função para obter um mapeamento utilizável. Esse é o mecanismo por trás da captura do GameDVR, da composição de framebuffer e do áudio entre partições.

xbtplinkc também importa XpalIsCapabilityEnabledByVm de xpalk.dll — o sufixo ByVm consulta o estado da capacidade no nível do hipervisor, não no nível do SO, confirmando que ele verifica se o próprio hipervisor habilitou a capacidade antes de prosseguir.

xrfs.sys — Xbox Runtime Filesystem

Driver completo de filesystem NT. A análise de imports confirma que ele implementa semântica real de filesystem: Cache Manager (Cc*), I/O MDL, locks de arquivo (FsRtl*), construção de descritores de segurança, tabelas genéricas de árvore AVL para indexação de diretórios.

Imports distintivos principais:

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

xrfs.sys não importa XVIO diretamente. Em vez disso, xbtplinkc.sys importa XvioTranslateXrfsGuestGpa; XRFS é a camada de filesystem, XVIO fornece a tradução de GPA por baixo dela.

Arquitetura do Filesystem Entre Partições

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

Imports principais específicos do Xbox:

XCRDAPI.dll — controle direto de montagem de 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 (delay-loaded):

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

ext-ms-win-ntuser-rim-l1-1-0.dll (delay-loaded):

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 (delay-loaded):

root@kitploit:~
UMgrOpenProcessHandleForAccess

RPCRT4.dll:

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

28. eraproxyapp.exe

eraproxyapp.exe é o compositor do lado do SystemOS e a ponte de IPC entre a partição ERA e o shell. 339KB, substancialmente maior que eracontrol.exe (249KB).

Composição de framebuffer:

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

eraproxyapp cria um dispositivo D3D11 e um dispositivo DirectComposition para compor o framebuffer da ERA no shell do SystemOS. A prioridade de thread multimídia AVRT garante entrega de quadros com baixa latência.

IPC entre partições via ALPC:

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

As seções de porta ALPC fornecem memória compartilhada com zero cópia. O framebuffer do jogo ERA não é copiado; ele é compartilhado via views de seção ALPC mapeadas simultaneamente em ambos os espaços de endereçamento.

Namespace privado (canal IPC seguro): CreatePrivateNamespaceW / OpenPrivateNamespaceW CreateBoundaryDescriptorW / AddSIDToBoundaryDescriptor / DeleteBoundaryDescriptor ClosePrivateNamespace bcrypt: BCryptGenRandom / BCryptHashData / BCryptCreateHash / BCryptFinishHash

eraproxyapp estabelece um namespace privado de objetos com um descritor de limite baseado em SID, um namespace de objetos nomeados visível apenas para ERA e SystemOS. BCrypt fornece material de chave aleatório para o limite.

Identidade do título e áudio: 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

Named pipes:

root@kitploit:~
CreateNamedPipeW / ConnectNamedPipe / DisconnectNamedPipe

29. Análise Adicional de DLLs

XblAuthConsoleExt.dll — Identidade de Hardware e Autenticação (46 exports)

Identidade do console:

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

Identidade do título:

root@kitploit:~
XblaGetXboxLiveTitleId
XblaGetTitleAttestation / XblaGetTitleConsoleGeneration

Criptografia:

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

XblaGetTpmPcrAttestation confirma que o console realiza atestação completa da cadeia de boot. A Microsoft pode verificar criptograficamente o estado exato da sequência de boot quando um console autentica no Xbox Live.

xamapi.dll — Shim de Compatibilidade do Xbox Application Manager (24 exports)

Substitui APIs Win32 padrão para aplicativos ERA que rodam no contexto do SystemOS:

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

É assim que o SystemOS apresenta um ambiente de PC Windows convincente para componentes que esperam APIs padrão de exibição e entrada do Win32.

xboxsynthetickm.dll — Injeção de Entrada Sintética (M:, 12 exports)

Localizado no volume de overlay de hardware M:\ (tratado como camada de hardware, não camada de aplicativo):

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

É assim que o xCloud converte pacotes de rede em eventos de entrada locais. O console não consegue distinguir entrada sintética de entrada física no nível de hardware.

xboxcloudstreaming.dll — Mecanismo de Streaming do xCloud (2 exports)

root@kitploit:~
GetCloudStreamManager
ShutdownCloudStreamManager

XboxLiveTitleId.dll — Detecção de Jogo em Tempo de Execução (12 exports)

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

XBBlackbox.dll — Flight Recorder

Export único: BlackboxServiceMain

XBCastRecv.dll — Receptor Miracast (22 exports)

root@kitploit:~
GetWiFiDirectDeviceCategoryForCurrentPlatform
IsMiracastReceiverStartAllowedWithoutApp
GetEdidForCurrentDisplayDevice

Xbox.Shell.Api.dll — Integração com o Shell (44 exports)

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

Codinome da Pilha de Controles "Pendragon"

XAccessoriesGip.dll:

root@kitploit:~
PendragonGIP_SendGIPMessage
PendragonGIP_SetMessageCallback
PendragonGIP_Start / Stop

30. Resumo Completo da Arquitetura do Sistema

Arquitetura Geral

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

Inicializações de Driver (suposições baseadas no que tenho até agora)

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

Sequência de Inicialização da ERA (suposições)

  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

Fluxo de chamadas (suposições)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

Mapa Completo da Pilha


31. Registro de Contratos WinRT

O WinMD HDRGameCalibration surpreendentemente contém aparentemente o REGISTRO COMPLETO de contratos WinRT do Xbox, com mais de 100 contratos definindo toda a superfície de API WinRT proprietária disponível na plataforma.

Contratos Notáveis

Implicações

Kinect como um contrato mantido. Windows.Kinect.KinectContract v1 está presente como um contrato de primeira classe não obsoleto, consistente com a pilha ativa (C:\Windows\System32\ht) e KinectSensorEnabled=true no WdConfig. A visão do Kinect é uma infraestrutura ativamente mantida mesmo em hardware sem um Kinect físico. O pipeline completo de orquestração (nuiservice.exe, KinectMediaSource.dll, três trilhas de inferência, roteamento de saída) está documentado na Seção 33.

Anúncios são infraestrutura interna. O fato de AdsContract ser um contrato Internal, e não uma API pública do SDK, significa que a entrega de anúncios está integrada ao SO no mesmo nível de autenticação e armazenamento, não como uma integração de SDK de terceiros.

Automação de testes no varejo. Windows.Xbox.TestAutomationContract acompanha as unidades de varejo, consistente com o fato de Windows.Xbox.TestAutomationContract ser acessível às ferramentas do modo desenvolvedor.


32. UserMgr2

UserMgr2 é a conta de usuário interativa que possui a sessão ativa conectada. NTUSER.DAT está bloqueado (UserMgr2 está ativo). Principais descobertas do perfil:

Estrutura do Perfil

CaminhoConteúdo
ntuser.ini3 quebras de linha
AccountPictures\UserImage.jpg

Nota de Privilégio

As junções do Device Portal são resolvidas usando permissões de UserMgr2 em vez das permissões de DevToolsUser (ver Seção 1.2 e Pergunta Não Resolvida 12). UserMgr2 tem um nível de privilégio mais alto que DevToolsUser; UserMgr2 é o proprietário da sessão interativa, enquanto DevToolsUser é uma conta de acesso restrito para desenvolvedores.


33. Pipeline de Visão Kinect do nuiservice.exe

nuiservice.exe (3.8MB, executando como SYSTEM, sempre ativo) é o processo de orquestração para toda a pilha de percepção Kinect/NUI. Ele hospeda três trilhas de inferência paralelas: corpo, rosto e áudio; cada uma executando como um pipeline de processamento separado, agendado cooperativamente por meio de um grafo de fibras e alimentado por quadros através de um pump IOCP apoiado por um dispositivo de inferência GPU D3D11.

Arquitetura

root@kitploit:~
nuiservice.exe
├── D3D11CreateDevice          <- dispositivo de inferência GPU
├── IOCP frame pump            <- despacho assíncrono de quadros
└── Fiber graph                <- agendamento cooperativo de inferência de ML

Entrada: KinectMediaSource.dll

A ingestão de quadros é tratada por KinectMediaSource.dll:

root@kitploit:~
KinectMediaSource.dll
├── MFCreate2DMediaBuffer          <- aloca quadros de imagem 2D (Media Foundation)
├── alignment.bin     [10.7MB]     <- LUT de transformação de coordenadas de profundidade -> 3D
├── alignment_color.bin  [5.7MB]  <- registro de profundidade/cor
├── DeviceIoControl->\\.\KinectSensorControl   <- fala com PetraXC.sys
└── CoCreateInstance {9178b0a6}    <- CLSID de autorregistro

alignment.bin (10.7MB) e alignment_color.bin (5.7MB) são tabelas de consulta pré-computadas para converter dados brutos do sensor de profundidade em coordenadas 3D do espaço mundial e para registrar pixels de profundidade em pixels de cor, respectivamente.

Rastreamento Corporal

Modelos carregados de X:\ht\versions\{1.0.0|1.0.1|1.0.2}\ via vvtechs.dll (NuiVisionCreateFactory):

  • Entrada: quadros de profundidade de KinectMediaSource.dll
  • Saída: articulações do esqueleto, posição da cabeça, estado da mão (agarrando/soltando)
  • Três diretórios de versão estão presentes simultaneamente; a versão ativa é selecionada em tempo de execução

Rosto

Modelos carregados de C:\Windows\System32\ht\ (ver Seção 3.3 para o inventário completo de modelos):

  • Entrada: quadros de profundidade, infravermelho e cor
  • Saída: identidade (quem), expressão (emoção), olhar (direção de atenção), estado dos lábios (aberto/movido), atributos de aparência (óculos, barba)
  • A saída de identidade alimenta diretamente LogonUserExExW para o login automático baseado em rosto (ver Roteamento de Saída abaixo)

Áudio

Tratado por speechwov.dll:

root@kitploit:~
speechwov.dll
├── SpeechWov_Create / UpdateAcousticModels
├── SpeechWov_ProcessRecognition
└── Output->eventos de palavra de ativação, eventos de reconhecimento de fala

speechwov.dll é um mecanismo de palavra de ativação e reconhecimento de fala. UpdateAcousticModels indica que o modelo acústico pode ser atualizado em tempo de execução (alterações no pacote de idioma ou na calibração do microfone). Esta é a infraestrutura de "Hey Cortana" / comandos de voz no nível do sistema.

Roteamento de Saída

O nuiservice.exe distribui os resultados de inferência por vários canais:

RtlCapabilityCheck é o mecanismo de controle de acesso: um processo deve possuir a capability NT apropriada para receber qualquer dado do NUI. Isso controla separadamente o acesso de títulos de jogos, do shell e de desenvolvedores.

Consumidores (via assinatura WNF)

O contrato WinRT Windows.Kinect.KinectContract v1 (ver Seção 31) é a superfície voltada para o varejo para o acesso de títulos de jogos a este pipeline.

root@kitploit:~
Camera Sensor Hardware
└── ciumd_wddm.dll  <- provavelmente driver de câmera em modo de usuário WDDM
    └── PetraXC.sys (KinectSensorControl)  <- WDF 1.11, desabilitado até o dispositivo chegar
        └── \\.\KinectSensorControl

nuiservice.exe  [sempre em execução, SYSTEM]
└── KinectMediaSource.dll->DeviceIoControl->\\.\KinectSensorControl
    ├── Trilha 1: vvtechs.dll  (corpo)
    ├── Trilha 2: FaceDetector/FaceRecognition + modelos RF  (rosto)
    └── Trilha 3: speechwov.dll  (áudio)
        └──->WNF / LogonUserExExW / named pipe / RPC / State Repository

Pesquisa conduzida em um Xbox Series S de varejo em modo desenvolvedor. Todo o acesso foi feito por meio da infraestrutura de modo desenvolvedor fornecida pela Microsoft.

Baixar ferramenta
FerramentaFinalidade
Windows ExplorerCompartilhamento de rede do Xbox (Instruções em https://XBOX:11443/#File%20explorer > Navegar)
SSH (DevToolsUser + VS PIN)Acesso de shell ao SystemOS
mklink /JCriação de junction NTFS para expor unidades por meio do compartilhamento de rede
Device Portal (https://XBOX:11443)API REST, navegador de arquivos, lista de processos, dumps ao vivo
dumpbin /IMPORTS, dumpbin /EXPORTSAnálise estática de binários PE no compartilhamento de rede
PythonScript para automatizar a API REST
PhasorRuntime de script para uso no Console (copiado via compartilhamento de rede, executado via SSH) baixar aqui
reg queryEnumeração do registro a partir do shell SSH
WdApp.exeGerenciador de pacotes e controle do ciclo de vida da ERA (enumeração de superfície de comandos)
WdConfig.exeEnumeração da API de configurações do console
Análise de rastreamento ETLPipeline do Windows Update via junction S:\Deployment\SoftwareDistribution\
Dumps de processo ao vivoGET /api/debug/dump/usermode/live?pid=<pid>
GhidraAnálise de interfaces COM / drivers
IDA ProGrafos de chamada de DLLs complexas e interfaces COM
XboxToolsMinha própria coleção de utilitários para várias coisas
NamespaceURI baseEndpoints principais
App Deployment/api/appx/packagemanager/install, uninstall, list packages, content groups
Device Manager/api/devicemanager/full hierarchical device tree
Dump Collection/api/debug/dump/live process dumps, bugcheck dumps, crash control
ETW/api/etw/real-time ETW over WebSocket, provider enumeration
File Explorer/api/filesystem/browse, upload, download, delete, rename
Networking/api/networking/ipconfig
OS Information/api/os/machine name, OS info
Performance/api/resourcemanager/live process list with CPU/memory, system perf stats
Power/api/power/battery, power schemes, sleep study reports
Remote Control/api/control/restart, shutdown
Task Manager/api/taskmanager/start/stop apps, kill processes
Bluetooth/api/bt/enumerate, pair, connect audio devices
WiFi/api/wifi/enumerate interfaces/networks, connect, disconnect
WER/api/wer/enumerate and download Windows Error Reporting reports
WPR/api/wpr/start/stop/download WPR performance traces, custom profiles
FlagEndpoints afetados
NoKernelDumpsLive kernel dump, bugcheck dump download
NoUserModeDumpsLive process dump (by PID)
NoBugcheckDumpsBugcheck dump list/download/control
NoWPRBootTracingBoot-time WPR trace
NoPowerSchemeAccessPower scheme read/write
ArquivoTamanhoFinalidade
RestDocumentation.json40KBComplete machine-readable REST API schema
workspace-definitions.js26KBPortal workspace panel layout (secondary API index)
common-xbox.js21KBXbox-specific portal additions over base Device Portal
common.js56KBBase Device Portal framework
toolhost.js7.8KBTool hosting layer
rest.js19KBREST call construction library
d3.js570KBD3 data visualization
konva.js676KBCanvas rendering
PIDImagemUsuárioObservações
156(oculto)SYSTEM66MB working set, no image name visible
1456xbdiagservice.exeSYSTEMXbox diagnostics service
1808EtwUploader.exeSYSTEMETW telemetry uploader
1832StorageManagement.exeDefaultAccountXbox.StorageManagement UWP, IsRunning: false (suspended)
1904ApplicationClipService.exeSYSTEMGameDVR clip management, 37MB working set
2032xnetsharedservice.exeSYSTEMCross-partition networking bridge
2040NetworkTransferManagerService.exeSYSTEMXbox content download manager
2344WebManagement.exeSYSTEMDevice Portal web server
2416XUpdMgr.exeSYSTEMXbox Update Manager
2436PRProvisioningService.exeNETWORK SERVICEPlayReady provisioning service
2460XNetConfig.exeSYSTEMNetwork configuration
2468toolsautoexec.exeSYSTEM.xboxunattend script autoexec runner
2572sihost.exeDefaultAccountShell infrastructure host, 60MB working set
2836XboxDevService.exeSYSTEMXbox developer service host, 37MB
3160xrun.exeDefaultAccountShell-side game launch coordinator
3256MicrosoftXboxSecurityClip.exeSYSTEMRuntime DRM verification host
3600XboxUI.exeDefaultAccountDashboard shell UI, 60MB working set
3844xrfssvc.exeSYSTEMXRFS cross-partition filesystem service, 352KB (idle)
3864xrmntcl.exeSYSTEMXbox Runtime Mount client
3888xtfrtservice.exeSYSTEMXTF runtime service
4320Guide.exeDefaultAccountXbox Guide (Xbox.Guide_2602.0.2602.11003), IsRunning: true
4548eracontrol.exeSYSTEMERA partition lifecycle manager, 991KB working set
4660WWAHost.exeDefaultAccountDev Home (Microsoft.Xbox.DevHome_1.0.2601.4001), IsRunning: true
6524CastSrv.exeDefaultAccountMiracast cast service
CamadaComponentes
ConteúdoXCRDAPI.dll (montagem/desmontagem/streaming de XVD)
IdentidadeXblAuthConsoleExt.dll, XboxLiveTitleId.dll, pspsra.sys
DRMMicrosoftXboxSecurityClip.exe, XCRDAPI.dll
ERA Controleracontrol.exe (NtOpenPartition, XCRDAPI, XblaInitialize)
ERA Proxyeraproxyapp.exe (ALPC, D3D11, DComp, namespace privado)
Entrada (local)xviokbd.sys, xviomou.sys, XAccessoriesGip.dll (Pendragon)
Entrada (remota)xboxcloudstreaming.dll, xboxsynthetickm.dll
Foco de Entradaxviomonc.sys (impersonação)
NPFS?VMNP.SYS Driver NPFS (Sistema de Arquivos de Pipe Nomeado? Sistema de Filtro?) também usado para impersonação do ERA
Host OSxvmctrl.sys, XVIO.SYS, FLTMGR.sys (não está no sistema de arquivos)
FS entre partiçõesxrfs.sys, xbtplinkc.sys, xrmntcl.exe, xrfssvc.exe
Exibiçãoeraproxyapp.exe, xamapi.dll (substituições Win32), MPO nível 3
GPUumd12ddi_arden.dll, newbe_xs.dll, xbsc_xs.dll, xg_xs.dll
ÁudioXVMAudioServer.dll, XAudio2_8/9.dll, configuração de áudio espacial
Redexvnc.sys/xvncbus.sys (NIC virtual), NetXVmService
DiagnósticoXBBlackbox.dll, xbdiagservice.exe, EtwUploader.exe, EtwPlus.dll (pipeline Etx)
AtualizaçãoXUpdMgr.exe, cliente WU (wuauengcore.dll), volume Deploy:\
ShellXbox.Shell.Api.dll, XboxUI.exe, Guide.exe, sihost.exe
Streamingxboxcloudstreaming.dll, XBCastRecv.dll (Miracast)
Ferramentas de DevWebManagement.exe (Portal do Dispositivo), pilha XTF (132 arquivos), WdApp.exe, unattendedsetuphelper.exe
Compatibilidadexamapi.dll (shim Win32), dxbc2dxil_xs.dll (DX11->DX12)
Visão / Kinectnuiservice.exe (3.8MB, SYSTEM, orquestrador sempre ativo), KinectMediaSource.dll (ingestão de quadros, alignment.bin 10.7MB, alignment_color.bin 5.7MB), vvtechs.dll (NuiVisionCreateFactory, rastreamento corporal), speechwov.dll (palavra de ativação/rastreamento de fala), modelos Random Forest de rosto (FaceDetector.bin, FaceRecognition.bin, ExpressionRandomForest.model, +8 outros), 3 versões ativas (X:\ht\versions\)
AnúnciosAdsLauncher (app de sistema), Windows.Xbox.System.Internal.AdsContract (WinRT)
Legado (desabilitado)Zurich (sintonizador de TV, vinculado ao XVIO), PetraXC / KinectSensorControl (WDF 1.11, desabilitado até o dispositivo Kinect chegar, alimenta KinectMediaSource.dll via \\.\KinectSensorControl)
ContratoVersãoNotas
Windows.Kinect.KinectContractv1O Kinect provavelmente é suportado para compatibilidade retroativa de títulos
Windows.Xbox.TestAutomationContractA superfície de automação de testes acompanha o hardware de varejo
Windows.Xbox.System.Internal.AdsContractO sistema de anúncios é um contrato WinRT interno
Windows.Xbox.System.Internal.CopyOnLan.CopyOnLanContractCópia de jogos em LAN, transferência de títulos pela rede local?
Windows.System.Internal.XboxLive.Auth.AuthContractv2Superfície de autenticação interna do Xbox Live (separada das APIs públicas XBL)
Foto única de 1080x1080 da conta Microsoft, separada do sistema de gamerpic (ver Seção 3.2)
AppData\Local\Packages\Apenas configurações de aplicativos de desenvolvimento com sideload presentes, os aplicativos de sistema do Xbox não usam caminhos de armazenamento LocalPackages UWP padrão
CanalAPIFinalidade
Transmissão em todo o sistemaRtlPublishWnfStateDataPublica o estado de corpo/rosto/áudio para todos os assinantes WNF
Login facialLogonUserExExWAciona o login automático de usuário baseado em rosto
Pipe nomeado por appServidor de pipe nomeado + GetNamedPipeClientProcessIdSaída controlada por processo; verifica a identidade do chamador antes de entregar os dados
RPC por chamadorServidor RPC + RpcServerInqCallAttributesWAcesso autenticado por chamador aos resultados de inferência
Identidade persistenteState Repository (SRDictionaryToPropertySet)Persiste a identidade reconhecida entre sessões
Portão de capabilityRtlCapabilityCheckTodo acesso à saída de inferência é controlado por verificação de capability NT
ConsumidorNotas
Xbox ShellAdaptação de interface ciente de expressões
Guide.exeAcionador de login automático
XboxUI.exeInterface ciente de atenção/olhar
Títulos de jogosVia contrato WinRT NuiVision (Windows.Kinect.KinectContract v1, varejo)
xCloudo cliente de streaming recebe o estado do NUI