
Il faut comprendre une chose sur les belles protections de l'époque: elles ne cachaient pas le jeu, elles cachaient la façon de le lire. La disquette n'avait pas de système de fichiers digne de ce nom. Pas de FAT bien rangée, pas de répertoire où GEMDOS serait venu piocher gentiment. Juste des pistes écrites à la main, et un code qui savait, lui seul, où poser la tête.
La disquette qui mentait

Sur ST, le système t'offrait une disquette bien élevée: quatre-vingts pistes, neuf secteurs de 512 octets, une FAT, un boot sector, et la bénédiction de GEMDOS pour ouvrir un fichier comme sur n'importe quelle machine. Les protections sérieuses crachaient sur tout ça.
Au lieu d'appeler le système, leur code parlait directement au fer. Le contrôleur de disquette, un WD1772, et derrière lui le chip DMA maison d'Atari qui aspirait les octets vers la RAM pendant que le 68000 regardait ailleurs. Tu sélectionnais un registre du 1772 en écrivant le registre de mode en $FF8606, tu lisais ou écrivais à travers $FF8604, tu armais l'adresse de destination en $FF8609 et ses voisines. La tête, c'est le FDC qui la déplaçait, commandes de Type I, Seek, Step. Et quand tu voulais voir la piste telle qu'elle existait vraiment, gaps compris, tu lui demandais un Read Address ou un Read Track. Là, plus de mensonge. Tu voyais la matière brute.
C'est dans cette matière brute qu'on planquait l'impossible. Des pistes formatées hors normes, dix ou onze secteurs au lieu de neuf, des tailles bidons, deux secteurs portant le même numéro. Des secteurs au CRC volontairement faux, que la protection vérifiait en lisant le registre de statut: elle voulait l'erreur, et un copieur honnête ne la reproduisait pas. Et la merveille, les fuzzy bits. Des bits écrits sans transition franche, qui se lisaient différemment à chaque tour de disquette. La protection relisait le même secteur trois fois et exigeait trois réponses différentes. Le copieur du dimanche, lui, recopiait une valeur figée, donc relisait toujours la même. Échec et mat.
Le grand maître du genre, c'était Copylock, signé Rob Northen, qui sévissait aussi de l'autre côté chez Amiga. Une routine chiffrée qui se déprotégeait toute seule en s'exécutant et te sortait un numéro de série lu à même la piste. Élégant et méchant.
Le débogueur et la patience
Contre ça, tu ne luttais pas avec un copieur. Tu luttais avec un débogueur et du café.
Parce que la vérité, c'est que tu ne te battais pas contre la disquette. Tu te battais contre une seule instruction: le moment où le code compare ce qu'il a lu à ce qu'il attend. Tout le reste n'était que décor. Tu traçais le loader pas à pas, tu repérais l'appel qui va lire la piste de protection, tu suivais la valeur qu'il en ramène, et tu remontais jusqu'au branchement qui décide si le jeu vit ou meurt. Trouve ce branchement, et tu as gagné la moitié de la guerre.
Mais retourner un saut, c'était le crack du pauvre. Ça marchait, ça lançait le jeu, et ça n'avait aucune classe. La classe, c'était l'autre moitié.
Le filer, ou voler le jeu à lui-même

L'idée géniale, celle qui transformait un casseur en ingénieur, c'était de ne pas affronter la protection mais de lui emprunter ses outils.
Le jeu savait lire ses propres données. Il avait, planquée quelque part, la routine exacte qui causait au 1772 et ramenait un bloc depuis ses pistes truquées. Alors tu ne la cassais pas, tu la réutilisais. Tu écrivais un petit programme, un filer, qui appelait cette routine pour chaque bloc logique, du premier au dernier, et recrachait tout sur une disquette normale, bien sagement. En une nuit, le jeu se faisait dépouiller par son propre loader. Toutes ses données, ses niveaux, ses graphismes, sa musique, rangés cette fois dans des fichiers que GEMDOS savait relire.
À ce stade, tu n'avais plus une protection à casser. Tu avais un tas de fichiers propres et un jeu qui ne savait pas encore qu'il était libre.
La table, le mensonge élégant

Restait à mentir au jeu, mais à le faire avec doigté.
Le jeu, dans son code, appelait quelque part « donne-moi le bloc numéro tant ». Un JSR, un vecteur, parfois un trap bien à lui. Tu interceptais ce point d'entrée unique et tu le faisais pointer sur ta routine à toi. La tienne consultait une table maison, une correspondance entre le numéro de bloc logique et l'emplacement du fichier sur la disquette propre, puis servait la donnée par une lecture GEMDOS tout ce qu'il y a de classique.
Du point de vue du jeu, rien n'avait bougé. Il demandait son bloc, il le recevait, à la bonne adresse, au bon moment. Il ne voyait pas que tu avais glissé un système de fichiers entier sous ses pieds. Une seule routine remplacée, une table, et toute la machinerie de protection devenait du décor mort qu'on pouvait laisser pourrir sur la disquette d'origine. La surface d'attaque tenait dans quelques octets. C'est ça, un crack propre. Pas un massacre, une substitution invisible.
Pack-Ice et le luxe du loader maison

Et puisque tu tenais désormais le loader, tout devenait permis.
Tu compressais chaque fichier ripé. Tu stockais le packé, plus petit, et ta routine de lecture détournée dépackait en RAM, pile à l'adresse que le jeu attendait, avant de lui rendre la main. Le jeu retrouvait ses données décompressées exactement là où il les cherchait, sans jamais soupçonner qu'elles avaient voyagé compressées. Quatre disquettes qui tombaient à une seule. Des temps de chargement coupés en deux.
Le packer roi, c'était Pack-Ice, d'Axe. Un depacker minuscule, magic « Ice! » en tête de fichier, deux cents octets de 68000 indépendants de la position que tu relogeais où bon te semblait. Tu le posais devant tes données et ça dépaquetait à la vitesse de la lumière. Atomik, Automation et les autres se partageaient le reste. Et tant qu'à tenir le loader, on y casait souvent l'intro, le scroller qui défile et la musique chip qui tourne en boucle pendant que ça charge. La signature. La fierté. Le petit mot du groupe avant le jeu.
Ce qui restait quand la nuit finissait
Au matin, la disquette protégée illisible était devenue une copie propre, plus légère et plus rapide que l'originale vendue en boutique. On n'avait pas vaincu une serrure. On avait remplacé le système de chargement d'un programme par le sien, en mieux, sans qu'il s'en aperçoive.
Ripper, réindexer, détourner, compresser. Quatre verbes, un savoir-faire, et l'impression d'avoir compris une machine plus intimement que ceux qui l'avaient programmée.
Gardez ces quatre verbes en tête. Trente-huit ans plus tard, sur une autre machine, dans un faux fichier système de trente kilo-octets, j'allais les retrouver intacts. Mais ça, c'est le deuxième volet.