vendredi 3 septembre 2010

PlayStation 3 - le Hack

Bon je vais pas donner de détails croustillants ici; mis à part donner quelques liens vers des explications bien plus poussées que celles que je pourrais donner moi-même. Juste un petit compte rendu de mon test du "hack PS3" à l'aide d'un micro-controlleur (il ne s'agit ni plus ni moins du produit du reverse engineering d'un dongle USB exploitant un heap overflow dans la gestion des devices USB de la PS3)

J'ai effectué le test de cet outil jeudi dernier; je n'ai pas eu l'occasion de re-tester depuis, donc certains détails ont probablement changé. J'ai utilisé une carte AVR-USB-162; vous pouvez en trouver chez Farnell par exemple (même s'il ne s'agit pas des prix les plus bas). Hasard ou pas, beaucoup de sites vendant des cartes d'eval avec des micro-controlleurs sont en cours de réapprovisionnement pour ces cartes là :-)

Certaines infos du README de PSGroove n'étaient à priori pas correctes, du moins pour mon type de carte. Dans mon cas de figure, avec un AT90USB162, je devais fixer la fréquence à 8000000 au lieu des 16000000 indiqués (cf. les specs)

Pour le reste, ça fonctionne plutôt bien, même s'il faut à priori respecter un certain nombre d'étapes:
- la console doit être hors tension (aucune diode allumée) pour commencer;
- rien ne doit être branché dessus en USB, pas même le microcontrolleur;
- mettre sous tension la console (la diode rouge de veille doit s'allumer)
- brancher la carte micro-controlleur sur un port USB
- démarrer la console, et appuyer sur le bouton "eject" dans la seconde qui suit (Même si les developpeurs de psgroove parlent de 200ms: "The exploit takes place while the PS3 is looking for the Jig (triggered by pressing eject within 200ms of pressing power).")
- ????
- PROFIT !

Voici un menu qui devrait apparaître après manipulation:















Ce menu permet l'installation de packages présents sur clé usb, comme par exemple le fameux "Backup Manager", qui lui, permet ensuite le lancement de dumps de jeux présents sur un disque dur USB (en fat32 pour le moment !). Alors bien sûr, si on se demande comment cela est possible ça peut se résumer en pas grand chose: ça active juste des fonctions désactivées dans le firmware grand public de la console: les features de debug. C'est grossièrement résumé, mais en gros c'est ça.
Je n'ai pas encore fait de vidéo pour montrer le fonctionnement du bouzin. De toutes façons, la LED de ma carte ne s'allume-éteint pas comme prévu à la base lorsque ça fonctionne.
Un truc à creuser maintenant: la réactivation du OtherOS sur la console, permettant l'installation d'un Linux.

Edit: Je mettrai probablement à disposition prochainement le fichier .hex utilisé (même si j'imagine que si des gens ont de quoi flasher un micro-controlleur, ils auront probablement de quoi compiler des sources)

2 commentaires:

Anonyme a dit…

question a priori bete , mais comment tu fais pour fixer la frequence a 8000000 ?
merci

MeiK a dit…

C'est dans le Makefile, la variable F_CPU, par défaut elle est comme à 16mhz:

F_CPU = 16000000

Suffit juste de remplacer par

F_CPU = 8000000

meik