La Pippin est une console assez obscure, et elle n’est par exemple pas émulée. En réalité, elle n’est même pas crackée, dans le sens où il est impossible actuellement de créer des homebrew pour une console standard.
J’ai déjà évoqué le sujet, mais petit rappel : les jeux de la console peuvent être copiés assez facilement, et les copies fonctionnent. Mais il est impossible de créer un disque ex nihilo pour le lancer sur une console standard. Il faut soit le dongle ADB qui désactive la protection, soit la ROM 1.3, qui désactive aussi la protection. J’en avais parlé quand j’avais testé un programme pour la version de Katz, ou The Journeyman Project : Pegasus Prime.
Mais depuis quelques temps, un développeur s’attaque à la ROM de la Pippin et il commence à comprendre comment fonctionne la protection.
Dans un long post, il explique comment fonctionne la protection. C’est rempli de détails techniques, avec de l’assembleur, la structure de la ROM des vieux Mac, etc., donc je vais essayer de résumer. Chaque CD officiel comprend un fichier qui se nomme PippinAuthenticationFile
(le nom n’a pas réellement d’importance, c’est une convention). Le fichier contient une liste de hash qui dépend de la taille du volume (donc du contenu du CD). En simplifiant, le hash est le résultat d’un calcul connu sur une quantité de données connue. Pour des raisons pratiques, le hash se calcule sur des portions de 128 ko de données, avec cinq mesures aléatoires sur le contenu du disque et une mesure sur le premier bloc de 128 ko. A chaque vérification, la Pippin doit donc lire 768 ko de données, ce qui n’est pas un problème avec un lecteur de CD-ROM 4x. La vérification passe par la lecture des blocs sur le CD, le calcul du hash et la comparaison avec ce que contient le fichier.
Maintenant, la question intéressante, est-il possible de créer un fichier à partir de zéro ? Pour le moment, non, mais Keith Kaisershot compte bien le faire. Le hash utilise un chiffrement connu (le RSA) et il semble possible de trouver la clé ou une solution pour modifier le fichier. Sans l’algorithme de hash, il n’est pour le moment pas possible de créer le fichier nécessaire pour des homebrew.
A la fin de son article, il indique que le fonctionnement de la protection permet a priori de créer un pseudo-homebrew. Comme la protection ne fonctionne qu’au niveau du système de fichiers et pas au niveau de la structure complète du disque, ajouter une partition à un disque doit en théorie permettre de démarrer tout de même le disque. J’ai essayé avec le disque qu’il recommande (Tuscon, un Mac OS bizarre pour Pippin qu’on peut trouver sur le Net) mais sans succès. La manipulation fonctionne en partie (ajouter une partition au disque n’empêche pas le disque de démarrer) mais la Pippin ne monte pas la seconde partition. Sur un Mac moderne (Mojave) ou ancien (Mac OS 9), la seconde partition apparaît pourtant.
Enfin, la découverte du fonctionnement exacte de la protection montre aussi que certains essais étaient vains. Copier le contenu d’un disque (les données) sur un autre disque ne permet pas de démarrer sur la console. En fait, la moindre modification du système de fichiers empêche la console de démarrer dans la majorité des cas et déplacer le fichier d’authentification, même dans un système de fichiers de la même capacité, ne peut pas fonctionner.