Forums GAMERGEN

[INFO] Le processus de boot d'une 360

Règles du forum
Pour les tutoriels liés au jailbreak de votre console. Merci de consulter l'univers undeground Xbox 360.

Cette section reste soumise aux règles du forum, aucun contenu warez, illégal et dangereux n'est toléré.

[INFO] Le processus de boot d'une 360

Messagepar TNTcity » 06 Sep 2012, 01:43

Alors voilà je trouve rarement des topics sur les détails techniques de la Xbox360 sur des forums FR ou même simplement en français. J'ai donc décidé de réunir certaines infos, pour les curieux ou ceux qui chercheraient à comprendre ce qu'il ce passe quand ils modifient la nand ou autre. Ce premier topic a donc pour but d'expliciter le processus de boot d'une 360, les infos qui sont chargées etc.

    1BL

Il calcule une clé RotSumSha1 qu'il utilise pour vérifier la signature RSA du CB, si cette étape est passée correctement, il Charge et décrypte le CB (_A dans certains cas, voir "CB") puis le lance.
Note : le 1BL est contenue dans le CPU et c'est une ROM il est donc quasi impossible de la modifier, c'est pourquoi lancer du code non signé est compliqué c'est cette partie qui est à la base du processus de sécurité de la Xbox360.

    CB

*Uniquement Slims et Fat en kernel 14699 et sup (nécessitant le RGH2.0)*
CB_A : charge et décrypte le CB dans la RAM, il calcule une clé RotSumSha1 et la compare au hash du CB_B, si cela correspond, il le lance.

CB_B : lance une machine virtuelle qui :

  • Initialise le PCI Bridge
  • Désactive le GPU PCIE Jtag test port
  • Initialise les ports séries
  • Lance une instruction pour que le SMC efface le "handshake" bit
  • Initialise la mémoire
  • Génère un ROD si l'initialisation de la mémoire échoue

Le CB_B calcule la RotSumSha1 du CD, si elle correspond à son hash, il le charge puis le décrypte dans la RAM.

    CD


Calcule la RotSumSha1 du CE la compare à son hash, si ils correspondent, le kernel de base (compréssé avec un algo LZX) est décompressé.
Il vérifie ensuite les offset de patch, si il en trouve un, il charge et décrypte le CF correspondant à ce patch. Enfin, il charge la clé RotSumSha1 si elle correspond à la signature il charge les CF/CG qui forment une paire, afin de patcher le kernel.

    CF


Charge le CG dans la mémoire à partir des informations contenue dans le header de la NAND (les premiers offsets) et lis le reste des données dpuis les blocs d'offsets du CG indiqués dans le header du CF ( ils peuvent changer car les patchs CF chargés depuis les offsets de patch du kernel de base dépendent de la version/révision de 360 ).
Ensuite, il charge et décrypte le CG dans la mémoire en utilisant la clé générée par le CF décrypté. Pour vérifier, il compare la RotSumSha1 et la compare encore au hash.
Si cela correspond, l'algo LZX delta pour décompresser et appliquer le patch au kernel de base dans la mémoire.
Une fois terminé il réalise un saut conditionnel vers le CD, qui, une fois ses opérations terminées il réalise un saut dans le reset vector de l'hyperviseur.


Note : Les différents types de hash cryptos utilisés lors du boot de la 360 :

-Signatures RSA : Les CB et CF sont signés avec cette algorithme. Il n'y a pas moyen de les casser, (Microsoft possède les clés privées) .

-SHA1 hash : Le CD,CE, CG sont signés avec. Leurs Hash sont contenu dans la signature RSA du processus précédent. Prévu pour empêcher la modification du processus de boot.
Hackorporation.
Avatar de l’utilisateur TNTcity Gamer Bronze
Gamer Bronze
Messages: 1045
Inscription: 29 Jan 2011, 20:52
Prénom: ---
Pays: USA
Sexe: Homme

Re: [INFO] Le processus de boot d'une 360

Messagepar TNTcity » 12 Nov 2012, 12:55

Ajout du SHA1-Hash+RSA sign.
Si ça intéresse quelqu'un ^^
Hackorporation.
Avatar de l’utilisateur TNTcity Gamer Bronze
Gamer Bronze
Messages: 1045
Inscription: 29 Jan 2011, 20:52
Prénom: ---
Pays: USA
Sexe: Homme

Re: [INFO] Le processus de boot d'une 360

Messagepar Edward L. » 12 Nov 2012, 13:03

Va falloir que je m'y prenne à deux fois pour tout comprendre, genre cette partie, par exemple :

TNTcity Wrote:Une fois terminé il réalise un saut conditionnel vers le CD, qui, une fois ses opérations terminées il réalise un saut dans le reset vector de l'hyperviseur.


Il réaliste un saut dans le reset vector de l'hyperviseur, on se croirait dans un film de science fiction :mrgreen:

Mais c'est très édifiant, merci :)
Ex-Kysshin87
Image
Avatar de l’utilisateur Edward L. Ancien Administrateur
Ancien Administrateur
Messages: 32839
Inscription: 24 Jan 2009, 16:12
Localisation: Zuid-Holland
Pays: Pays-Bas
Sexe: Homme


 

Retourner vers Entraide et dépannage