Dongles DRM – Point complet sur leur fonctionnement

dongles True Blue
Le payload du dongle True Blue est disponible
19 septembre 2015
Crysis 3 : première vidéo de gameplay
19 septembre 2015
Dongles DRM

Dans le flou des dongles DRM et de leur obscur commerce, Nabnab, membre de PS3News nous dévoile ses recherches sur la compréhension du fonctionnement des dongles USB True Blue ainsi que du Cobra, pour que nous y voyions enfin un peu plus clair.
En effet, ceci fait suite au WIP dont vous nous parlions récemment. Petit rappel avant toute chose pour une meilleure compréhension des explications qui suivent, le terme « syscall » renvoie à un « appel système » permettant un accès administrateur/root en lecture/écriture/exécution sur le système d’exploitation (ici celui de la PlayStation 3).

Voici un extrait des explications de Nabnab :

Nous avons entendu beaucoup de rumeurs/théories sur le fonctionnement du True Blue et du Cobra, mais je n’ai vu personne donner une réponse claire à ce sujet (je ne dis pas que je vous donnerai la réponse parfaite mais l’explication du « comment cela fonctionne » et « comment cela est possible »).

Les deux dongles utilisent des syscall/payload (après une investigation conséquente, il se trouve que les deux dongles utilisent les travaux de Graf_Chokolo et les fonctionnalités des dongles peuvent être portées dans un CFW, une idée qui déplait à certains développeurs apparemment).

Les dongles Cobra et True Blue utilisent un « lv1_wrapper » (exécution du syscall) qui peut permettre d’utiliser des fonctions système en « mode Kernel ». D’après le dump des dongles Cobra/True Blue, chaque sous-programme (et fonction système) est indiqué dans le dump (sans doute la raison de certains clones comme le JB-King).

À propos des Eboot True Blue, je reviens sur ce que j’ai dit récemment, ce ne sont pas des Eboot debug mais des Eboot provenant des jeux originaux. Cela n’a aucun sens de supposer qu’ils aient accès aux serveurs PSN des développeurs officiels puisque de toute façon, il n’y a pas d’Eboot debug hébergé dessus, cela sert uniquement aux phases de bêta-test pour le développement des jeux.

La Team True Blue utilise des Eboot originaux et génère sa propre signature (on peut aisément faire sa propre signature NPDRM afin de créer un SELF).

Le problème est que ces Eboot originaux re-signés avec le NPDRM de la Team True Blue ne fonctionnent pas en « user mode », vous aurez une erreur si vous essayez de les exécuter « en l’état ». Pour pouvoir les utiliser, il faut passer en « mode kernel » via l’intermédiaire de certains syscall. Cela permet de lancer un programme qui n’est pas reconnu et autorisé par le système.

Par exemple, je veux exécuter quelque chose dans le CoreOS mais je ne suis pas autorisé à le faire parce que je ne peux que l’exécuter en « mode kernel ». Bien, je peux utiliser mon mode utilisateur actuel et le transformer en « mode kernel » en utilisant un syscall.

Un syscall peut vous permettre d’exécuter, de créer, de lire, de charger, etc. La limitation d’un dongle provient du système PS3. Un dongle est seulement là pour empêcher une erreur en utilisant la redirection vers un syscall, pour donner un accès administrateur au système (mode root comme sur Linux) pour que vous puissiez exécuter ce que vous voulez.

Par exemple, l’émulateur PS2 du Cobra est un PS2.self qui ne peut pas être exécuté dans en mode utilisateur, mais en mode kernel/débug. C’est la raison pour laquelle il peut être exécuté sur une PS3 Slim sans subir une erreur système.

En quoi cela peut-il aider ? Cela veut dire que nous n’avons pas besoin de clés pour exécuter une application en mode kernel/debug parce que de toutes façons les syscalls nous donneront un accès complet à l’exécution de processus par le Cell.

Je tiens à donner une explication simple que tout le monde peut comprendre, les Eboot TB sont des Eboot originaux de jeux originaux, nous ne nous sommes pas intéressés à l’entête SCE, etc. Nous voulons seulement l’entête ELF qui représente le programme et qui est lié à l’exécution du jeu (comme un exe, vous patchez le fichier EXE pour pouvoir l’exécuter sans CD). Ici c’est presque la même chose, nous corrigeons l’entête du ELF avec une fausse signature pour qu’il puisse être exécuté dans un mode spécifique sans rien demander.

Ce qui est bizarre, c’est que Graf_Chokolo nous avait orientés vers de nombreuses possibilités et personne n’a essayé de les exploiter, mais seulement de manière à se faire de l’argent. Quoi qu’il en soit, comme je le disais, le dongle est en relation avec le dev_flash/Core_OS de la PS3.

Je travaille aussi dessus et j’essaye de faire de mon mieux pour donner quelque chose de fiable et gratuit… mais mes connaissances sont limitées et je ne peux pas faire cela tout seul.

Pourquoi j’explique tout ça… c’est parce que je veux voir quelques bons devs qui pourront travailler dessus avec moi, actuellement je tiens à remercier Graf_Chokolo pour tous ces trucs, CFWprophet et toute l’impressionnante scène de la PS3 qui nous soutient, je dis aussi merci aux personnes qui m’insultent et me disent que je suis un Fake … Plus vous en dites, plus je n’en ai rien à faire et j’offre de bonnes choses.

En somme, nous pouvons retenir que :

Les dongles permettent à la console de lire certains fichiers déjà présents dans le Dev_Flash mais requièrent un accès administrateur.

Les fichiers ainsi utilisés par les dongles sont modifiés de telle manière qu’il ne s’exécutent qu’avec le dongle associé.

Graf_Chokolo avait déjà donné la solution pour contrer le caractère payant des dongles et du « hack/jailbreak » en général (indirectement via ses nombreux travaux sur l’hyperviseur).

Toutes ces informations vont-elles aboutir à un CFW fait par Nabnab et son acolyte CFWprophet ? Nous verrons bien à l’avenir vers quoi nous mèneront leurs travaux.