Un lecteur hacké pour lire plus facilement des Blu-ray

Pour lire les Blu-ray, en plus des clés dont je parlais hier, un problème se pose : les certificats liés au lecteur physique. Mais il existe des solutions.

Je schématise et vulgarise un peu (si vous décelez de grosses erreurs, corrigez), mais la lecture d’un Blu-ray, en plus d’une clé de décodage, va nécessiter une information précise : le Volume ID. Son obtention passe par le lecteur de Blu-ray (le matériel). Le logiciel de lecture envoie un certificat, le lecteur vérifie s’il est valable et si c’est le cas, il envoie le Volume ID du disque au programme. Bien évidemment, il y a un hic : la validité du certificat. Pour éviter les piratages, l’AACS contient en effet une protection simple, qui permet de bannir un certificat. C’est un truc que j’évoquais il y a quelques années.

D’un point de vue pratique, chaque disque contient une liste de certificats bannis qui va être stockée dans le lecteur physique, dans sa ROM. Donc si vous avez (exemple totalement fictif) un certificat banni avec les disques en MKBv62 (et plus), le simple fait d’essayer de lire un film de cette génération va bloquer le lecteur. Sans un nouveau certificat, vous ne pourrez plus lire de films. Plus exactement, vous ne pourrez plus lire de films que vous n’avez pas encore lu : VLC garde une copie en cache des clés. Mais donc si vous avez une collection de Blu-ray, essayer de lire un film récent peut empêcher toute lecture future.

Il existe en fait trois solutions. La première, c’est de trouver un nouveau certificat. On en voit parfois sur Internet, et ça peut se récupérer dans les disques récents. Parce que ça peut sembler idiot, mais si une génération de disques (disons MKBv64) ajoute un certificat dans la liste révoquée, il y a de fortes chances qu’il permette de lire les films en v63 et avant. Ça nécessite tout de même des connaissances et ça ne règle pas le problème : il va être banni directement avec un film récent. En tout cas, ça vaut le coup de faire un tour de temps en temps sur des sites dédiés.

La seconde méthode, radicale, consiste à aller directement modifier la ROM du lecteur. Il y a un exemple sur ce site. En gros, il faut du matériel (un Bus Pirate), un lecteur avec une ROM accessible (pas forcément le cas) et les compétences pour aller écrire dedans. Dans l’exemple lié, l’effacement de la liste permet de repartir à zéro (donc avec un certificat un peu ancien) mais l’insertion d’un disque récent rebloque le lecteur. Dans les commentaires, certains suggèrent de remplacer la liste par une version artificiellement plus vieille, mais rien n’indique que le lecteur ne puisse pas le détecter. Cette solution, de toute façon, demande énormément de travail pour un résultat incertain. Mais c’est amusant, pour l’amour du hack.

La dernière consiste à utiliser un lecteur modifié. C’est la solution la plus pérenne : un firmware modifié permet de renvoyer le Volume ID sans la présence d’un certificat. Genre dans tous les cas. Mais, car il y a un mais, il faut le bon lecteur et le firmware en question. Pour le lecteur, il faut un LG GGC-H20L ou H20N (lecteur Blu-ray, lecteur HD DVD, graveur DVD), un LG GGW-H20L ou H20N (graveur Blu-ray, lecteur HD DVD, graveur DVD) ou un Plextor PX-B920SA (clone du précédent). Pour le firmware, c’est compliqué… parce que c’est vieux. Le sujet original chez Doom9 date de 2008 (il y a 10 ans) et trouver les fichiers n’est pas si simple. En clair, j’ai le firmware pour un GGW-H20L (LG) et ce lecteur ne se trouve pas sous les 50 € d’occasion, ce qui reste quand même assez cher. Le flash peut se faire en USB sur un PC – il faut Windows – et je ne me souviens plus trop de la méthode, ça fait un moment que j’ai le lecteur en question. Mais rien de bien compliqué si vous avez déjà flashé un BIOS ou un lecteur optique.

Le GGW-H20L

La bibliothèque AACS

En plus de ça, il faut une version un peu modifiée de la bibliothèque dé décodage AACS (libaacs). En regardant le changelog de la version 0.7.0, on voit que le support des lecteurs patchés a été supprimé. Et il suffit donc de modifier ce qui avait été changé à l’époque. Bon, je ne compte pas vous détailler les modifs (sauf si quelqu’un en a vraiment besoin) mais ce n’est pas grand chose : il faut juste modifier une ligne pour que la bibliothèque n’essaye pas d’envoyer le certificat avec un lecteur modifié, vu que ça ne sert à rien.

Avec un lecteur patché, il devient donc possible de lire tous les films jusqu’en MKBv62 sans se soucier du certificat du lecteur. Si quelqu’un veut tenter l’expérience, j’ai les fichiers nécessaires et je peux aider.