[PS4] Booter Ubuntu en 3.50 via le BD Live ? Calmons-nous.

Si vous nous suivez depuis quelques temps déjà, vous avez déjà dû en voir souvent. Vous savez, des lueurs d’espoirs basées sur quasiment rien, créant une excitation soudaine pour quelque chose d’au final assez décevant ou qui ne reflète absolument pas nos attentes (cf. le Black Fin). Mais nous, et par nous je veux dire ceux qui attendent les hacks à l’arrivée, petits impatients que nous sommes, nous nous raccrochons à la moindre lueur d’espoir que nous pouvons trouver..

Du moins c’est ce qu’il s’est passé dans cette affaire. Pour la petite histoire, un membre du forum allemand du site psxtool.de nommé 00001234 aurait fièrement annoncé avoir découvert une faille permettant de faire booter Ubuntu sur une Playstation 4 en 3.50 ! La nouvelle n’est-elle pas énorme ? Prenons une grande inspiration, et analysons un peu tout ça.

LinuxPS4Petit


Tout d’abord, je tiens à vous signaler que l’analyse de Wololo, sur son site wololo.net reste encore plus pertinente que tout ce que j’aurais pu écrire. C’est pourquoi, cette news reste globalement une traduction à ma sauce de son article. Si vous souhaitez consulter l’original, c’est par ici !

L’origine de tout ceci

Le 28 mai dernier, le forumeur 00001234 posta donc sur un topic créé pour l’occasion, et y annonça qu’il avait découvert une faille dans le processus de lecture de BD Live de la Playstation 4. Si vous ne savez pas ce qu’est le BD Live, il s’agit tout simplement d’un petit ajout à votre lecteur de Blu-Ray (ici votre PS4), qui vous permet de télécharger du contenu additionnel depuis Internet, associé à votre film que vous venez d’insérer.

00001234 a donc eu, via l’usage de Charlie Proxy (un soft qui surveille les communications entre un appareil de votre réseau local, et internet) d’intercepter le fichier de demande de téléchargement de la PlayStation. En clair, il a inséré un film Blu-Ray de chez Universal Pirctures, et il a attendu de voir ce que ces derniers allaient répondre à la console. Cette réponse se compose d’un fichier XML ordonnant à la PlayStation 4 de télécharger un fichier de contenu additionnel depuis leur serveur.

Là où ça devient intéressant, c’est que cette personne affirme, en modifiant le XML de réponse du serveur d’Universal, avoir pu dire à sa console de télécharger l’ISO d’Ubuntu, et encore mieux : de la lui faire exécuter l’OS ! 

Voici la traduction française de la traduction anglaise (par Wololo) du post original allemand de 00001234 :

Ce dont vous allez avoir besoin :

  1. Un ordinateur sous Windows ou Linux
  2. Les logiciels Charles Web Debugging Proxy ou Burpsuite
  3. Un film supportant le BD Live (dans mes tests, ils étaient de chez Universal Pictures), mais d’autres fonctionneront sûrement. Vous pouvez essayer.
  4. De préférence une PlayStation 4 connectée à internet en ethernet.

Avec Charles Proxy :

Insérez et exécutez le film Blu-Ray, attendez un peu et après une minutes vous devriez voir un fichier bootloader sur Charles.

Il devrait ressembler à ceci : 

<? Xml version = “1.0” encoding = “utf-8”?>
<Update version = “3” target title = “89”>
<Status code>
<Status code id = “100” type = “information”> Successful </ status code>
</ Status codes>
<Resources>
< resourceFile uri= “http://cdn.www.universalhidefclub.com/u/ContentServer/Universal/xxxxxxx/Package/xxxx-xxxx-xxxx-xxxx-xxxx/boot.bin” fileSizeInBytes= “1234” localStorage= “common/boot.bin” >
</ Resource file>
< resourceFile uri= “http://cdn.www.universalhidefclub.com/u/ContentServer/Universal/xxxxxxx/Package/xxxx-xxxx-xxxx-xxxx-xxxx/boot.xml” fileSizeInBytes= “1234” localStorage= “common/boot.xml” >
</ Resource file>
< resourceFile uri= “http://cdn.www.universalhidefclub.com/u/ContentServer/Universal/xxxxxxx/Package/xxxx-xxxx-xxxx-xxxx-xxxx/v3.zip” fileSizeInBytes= “1234” localStorage= “v3.zip” >
</ Resource file>
</ Resources>
<Bumf>
< bumfFile uri= “http://cdn.www.universalhidefclub.com/u/ContentServer/Universal/xxxxxxx/Package/xxxx-xxxx-xxxx-xxxx-xxxx/bumf.BMF” fileSizeInBytes= “1234” localStorage= “bumf.BMF” >
</ BumfFile>
</ Bumf>
<BUSF>
< busfFile uri= “http://cdn.www.universalhidefclub.com/u/ContentServer/Universal/xxxxxxx/Package/xxxx-xxxx-xxxx-xxxx-xxxx/bumf.bsf” fileSizeInBytes= “1234” localStorage= “bumf.bsf” >
</ BusfFile>
</ BUSF>
</ Update>

Sauvegardez-le sous forme de fichier texte. 

Changez la première ligne : 

<resourcefile uri=”http://cdn.www.universalhidefclub.com/u/ContentServer/Universal/xxxxxxx/Package/xxxx-xxxx-xxxx-xxxx-xxxx/boot.bin” fileSizeInBytes = “1234” localStorage = “common / boot.bin”>

avec, par exemple : 

<resourcefile uri = ” releases.ubuntu.com/14.04/ubuntu-14.04.4-desktop-amd64.iso ” fileSizeInBytes = “1234” localStorage = “common / boot.bin”>

Sauvegardez le fichier, et renvoyez votre XML modifié via Charles Proxy

Attendez que le téléchargement soit terminé. Avant tout ça, vous devrez ajouter un peu de code dans les lignes suivantes pour pouvoir booter ou exécuter. Au final, presque tout devrait pouvoir être exécutable sur la PS4, puisque qu’on parle ici de stockage interne. 

J’imagine que le prochain firmware de la PS4 supprimera le support du BD Live. 🙂

Bon test !

Dans les faits

Je ne sais même pas si j’ai besoin de rajouter quoi que se soit en fait. Alors non, malheureusement je n’ai pas de film Blu-Ray sous la main. Mais je compte m’en procurer un prochainement pour tester un peu tout ça, par conscience amateuro-professionelle. Car même si je doute que ce tutoriel au dessus m’amène à grand chose, tout ceci peut déboucher sur quelque chose d’éventuellement intéressant dans le futur. Je dis bien éventuellement.

Mais pour énoncer une évidence, il ne suffira pas à la PlayStation 4 d’avoir un ISO d’Ubuntu sur son disque dur, et de lui demander via une ligne de code de l’exécuter pour qu’elle obéisse bien sagement. Rien que de lui faire exécuter une commande via cette méthode serait absolument miraculeux ! Pas impossible, juste très improbable et compliqué

De plus, si la possibilité de booter un Linux sur PS4 de Fail0verflow il y a quelque temps avait avait fait tant de bruit, c’est précisément parce que tout se qu’amenait cette réussite avec elle était absolument fantastique. Pour leur permettre ceci, il leur a fallu qu’ils arrivent à une élévation des privilèges utilisateur, puis qu’ils patchent une distrib Linux pour la rendre compatible ! C’était un travail énorme, une PlayStation 4 ne permettra jamais à un utilisateur de pouvoir booter un autre OS sans ces conditions ! Car non, la fonction BD Live n’a que peu de chance d’avoir des accès root

Des manchots sur votre PS4 ! ^^

Boot d’une distrib Linux via la méthode de Fail0verflow

Le pire dans tout ceci, c’est que 00001234 a ouvertement annoncé avoir réussi ce qu’il prétendait dans son tutoriel. Beaucoup pensent qu’il s’agit d’un fake, évidemment. Je pense qu’il s’agit d’un bidouilleur comme vous et moi, persuadé pendant un instant d’avoir trouvé le Saint-Graal et qui n’a pas voulu faire face à la déception de constater que son travail n’était pas si complet que ça…

Mais relativisons. Cette découverte ne mérite pas d’être oubliée pour autant : voir comment la PlayStation 4 traite ces fichiers de contenu additionnel pourrait, sait-on jamais, amener à quelque chose d’un peu plus important. Pourquoi pas ? Mais Sony n’est pas si stupide que ça. Une porte vers l’extérieur comme celle-ci, ils ne l’auraient pas laissé sans surveillance. Ça me semble beaucoup trop gros.


Quoiqu’il en soit, si vous souhaitez tenter l’aventure, rien ne vous en empêche, vous avez le tuto juste au dessus. Qui sait, peut-être que je me trompe totalement et que vous pourriez réussir à faire quelque chose de cool avec tout ceci ! Bon, comme le disait l’auteur, vous devrez rajouter « un peu » de code. Tu m’étonnes. Mais si vous êtes débrouillard, y aura peut-être de quoi bien vous amuser ! 😛