
Recherche personnelle sur l'architecture de la Xbox Series
| Champ | Valeur |
|---|---|
| Date | 9-12 mars 2026 + 7-? juillet 2026 |
| Matériel | Xbox Series S (Nom de code : Lockhart) |
| Build de l'OS | 26100.7010.amd64fre.xb_flt_2602ge.260212-1010 + 26100.8561.amd64fre.xb_flt_2606ge.260609-2200 |
| Méthode d'accès | Mode développeur + SSH + API REST + jonction de partage de fichiers NTFS |
Ce rapport est une analyse statique et dynamique de l'architecture interne de la Xbox Series S, réalisée entièrement via l'infrastructure officielle du mode développeur de Microsoft. Aucun exploit ni violation de politique n'a été utilisé ; tout l'accès s'est fait dans le cadre du programme de développeur individuel.
Il contient des détails allant des composants de plus haut niveau utilisés pour le gameplay jusqu'aux composants de pilotes système de plus bas niveau. La plupart de ces détails devraient également être identiques pour la Xbox One.
L'IA a été utilisée pour formater de manière cohérente la grande recherche initiale (plus de 200 sorties d'analyse et plus de 50 notes aléatoires) en ce document très rapidement. Toutes les modifications futures sont faites à la main.
Si vous pensez qu'un point de ce document est peu clair, sous-documenté ou faux, n'hésitez pas à m'envoyer un message privé, ou si vous avez des réponses à mes questions (section 12), ce serait également bien. Les GUID et autres motifs courants sont expurgés par un hook pre-commit au cas où je laisserais quelque chose qui identifie mon compte.
Une grande partie de ce sur quoi je travaille repose sur des hypothèses, donc cela pourrait être inexact et changera à mesure que j'obtiendrai plus d'informations et que j'examinerai plus de binaires.
Pour des raisons que vous pouvez imaginer, je ne partagerai en aucun cas des binaires directs, des sorties de désassemblage ou tout élément considéré comme la propriété intellectuelle de Microsoft ou de ses filiales.
ERA = GameOS Partition
SRA = SystemOS Partition
HT = Kinect (possibly "Human Tracking"?)
Arden = Xbox Series X/S GPU Stack
NewBe = Arden shader compiler
Une gestion des pilotes par l'OS hôte existe en dehors du modèle SRA/ERA connu, voir le modèle de confiance (sections 4.2, 17.5). XVIO.SYS et XSraFlt.sys sont chargés directement par l'hyperviseur (via HostOS) avant l'initialisation de Windows et sont absents de tous les volumes accessibles. Ils ne peuvent pas être altérés même avec un accès noyau complet, ce qui constitue la principale frontière de sécurité.
HVCI est volontairement désactivé (section 18). IsSecureKernelRunning = 0x0 confirme que le noyau sécurisé (VTL1) ne s'exécute pas. L'intégrité du code n'est vérifiée qu'au chargement, laissant une fenêtre TOCTOU une fois les binaires mappés. C'est un compromis de performance délibéré ; la frontière de sécurité est la partition de l'hyperviseur, et non la protection mémoire intra-partition.
La jonction NTFS expose l'intégralité du système de fichiers SystemOS sur le réseau (section 1.2). Une simple commande mklink /J depuis le shell SSH mappe C:\ ou n'importe quoi d'autre dans le partage de fichiers du Device Portal, rendant chaque binaire système lisible à distance sans authentification supplémentaire au-delà du code PIN du mode développeur.
L'architecture inter-partitions est presque entièrement cartographiée (sections 4, 14, 26-28). La partition de jeu ERA communique avec SystemOS exclusivement par des canaux médiés par l'hyperviseur : tampons en anneau XVIO pour les E/S, traduction GPA pour la mémoire partagée, HvSocket pour l'IPC, et sections de ports ALPC pour la livraison de framebuffer sans copie, accordée par un « OS hôte » parent.
La jonction Deploy:\ contourne les restrictions d'accès locales (section 25). Le volume Windows Update n'est accessible que via le partage réseau (S:\Deployment\SoftwareDistribution\) en raison d'une incohérence quelque part (peut-être xrfssvc.exe ?).
La plupart des binaires n'ont que des chaînes de description ; je ne le savais pas jusqu'à aujourd'hui, car je n'utilisais Windows que pour la connexion à la console. La plupart du temps, c'est ennuyeux (par exemple XVUH, XVMCTRL), mais parfois c'est très descriptif (par exemple Durango Virtual XVNC Bus Driver, Xbox Remote File System Service).
Tous les tests ont été effectués sur une seule Xbox Series S commerciale en mode développeur. Les résultats reflètent de nombreuses versions, mais je finirai par comparer les versions et rédiger un compte rendu. Les résultats peuvent varier selon les révisions matérielles (Series X, Xbox One) et les versions du firmware. Plusieurs surfaces au niveau du noyau n'étaient pas accessibles : les dumps de noyau en direct sont bloqués par la restriction NoKernelDumps, et la surface IOCTL de xvmctrl.sys n'a pas été entièrement énumérée. Les questions ouvertes sont suivies dans la section 12.
| Outil | Objectif |
|---|---|
| Explorateur Windows | Partager réseau Xbox (Instructions à https://XBOX:11443/#File%20explorer > Parcourir) |
SSH (DevToolsUser + PIN VS) | Accès shell à SystemOS |
mklink /J | Création de jonction NTFS pour exposer les lecteurs sur le partage réseau |
Device Portal (https://XBOX:11443) | API REST, explorateur de fichiers, liste des processus, dumps en direct |
dumpbin /IMPORTS, dumpbin /EXPORTS | Analyse statique des binaires PE sur le partage réseau |
| Python | Script pour automatiser l'API REST |
| Phasor | Runtime de script à utiliser sur la console (copié via le partage réseau, exécuté via SSH) télécharger ici |
reg query | Énumération du registre depuis le shell SSH |
WdApp.exe | Gestionnaire de packages et contrôle du cycle de vie ERA (énumération de la surface de commandes) |
WdConfig.exe | Énumération de l'API des paramètres de la console |
| Analyse des traces ETL | Pipeline Windows Update via la jonction S:\Deployment\SoftwareDistribution\ |
| Dumps de processus en direct | GET /api/debug/dump/usermode/live?pid=<pid> |
| Ghidra | Analyse des interfaces COM / pilotes |
| IDA Pro | Graphes d'appels de DLL complexes et d'interfaces COM |
| XboxTools | Ma collection personnelle d'utilitaires pour diverses tâches |
L'accès a été établi via l'interface SSH du mode développeur, officiellement non documentée, mais pour laquelle il existe une documentation communautaire. La technique de jonction NTFS (section 1.2) a étendu l'accès en lecture de l'espace de travail D:\DevelopmentFiles à l'intégralité du volume système C:\ et à tous les volumes de lettres supplémentaires. Toute l'analyse était en lecture seule ; aucun paramètre système n'a été modifié (WdConfig.exe set n'a pas été utilisé). La Xbox peut exécuter directement des binaires console Windows x86_64 standard (compilés avec /MT) via le shell SSH, ce qui a permis d'exécuter les outils d'analyse localement.