Obligement - L'Amiga au maximum

Mardi 19 mars 2024 - 10:26  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in english


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z,
ALL


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


Dossier : Les protections sur Amiga et Atari ST
(Article écrit par Denis Lechevalier et extrait de Alone In The Past - avril 2007)


1. Introduction

Vous savez tout comme moi que nos chères disquettes adorées ST/Amiga ont été dotées par les programmeurs, voire les dupliqueurs, de formats empêchant la copie de ces dernières. Nous allons voir en détail de quelle manière elles se présentent.

Premier détail technique, il faut savoir que l'Amiga dispose d'un contrôleur de disquette complètement programmable. On peut, en effet, lui faire lire les formats AmigaDOS classiques en 880 ko par disquette, mais aussi les formats Atari ST, PC 720 ko, Macintosh GCR (Group Code Recorded : enregistrement des données groupées). Pour ce dernier il n'existe qu'un ou deux jeux qui exploitent ce format très spécial.

On va aller progressivement dans la force des protections avec exemple à l'appui.

2. Les protections "off-disk" ou par manuel/codes

Les protections "off-disk" ou manuel/codes sont en général appliquées sur les jeux d'aventure, car ceux-ci sont installables la plupart du temps sur disque dur, et sont bien souvent en format AmigaDOS standard 880 ko.

Cela concerne des jeux comme Explora 1, Secret Of Monkey Island 1 et 2, Indiana Jones And The Fate Of Atlantis, la série des Elvira d'Horrorsoft. Tous ceux-là sont installables et n'ont aucune protection disque.

Cependant, il faut noter que certains jeux cumulent les protections. Si on prend les jeux Silmarils, ceux-ci dans leurs versions européennes disposent d'une protection off-disk qui s'active une voire deux fois en cours de jeu (ce qui fait que les pirates en ont loupé au déplombage plus d'une) mais aussi d'une protection disque nommée "protection par piste longue" appelée "longtrack". Celle-ci sera détaillée plus bas dans la partie dédiée aux protections disques.

Les protections par codes concernent des jeux comme ceux de Coktel Vision, qui étaient fournis avec des grilles codées. Comme pour la protection par manuel, au bout de plusieurs essais ratés, le jeu plante ou bien certains registres processeurs sont vidés, ou encore le programme pointe vers un endroit qui n'engendre aucun traitement (espace mémoire vide de toute donnée), et donc le programme reste inerte.

3. Les protections logicielles

3.1 Le système copylocks

Vous connaissez tous des jeux sur Atari ST ou bien Amiga qui n'ont pas l'air comme ça, le jeu s'amorce gentiment, le lecteur de disquette ne fait pas un bruit de dingue, l'ordinateur marque une pause, puis continue de charger le jeu. Elle a été créé en 1987 sur Atari ST, et apposée dans le jeu R-Type d'Activision.

Rob Northen
Rob Northen, créateur du copylock

C'est la plus connue des protections disponibles sur le marché à l'époque. Elle est elle-même subdivisée en plusieurs versions que je vais vous détailler. Elle a été créée par un Anglais nommé Rob Northen. La protection porte l'acronyme de RNC Copylock © Rob Northen Computing 19XX que l'on retrouve dans la majorité des jeux qu'elle protège.

C'est le cerveau qui a créé cette protection et qui l'a mise en service sur 500 jeux Amiga et ST. La protection n'est pas copiable avec un Amiga ou un Atari ST standard et fait appel à un mot de synchronisation non standard. Par exemple, sur Amiga, le mot utilisé pour lire une piste DOS standard est $4489. Sur une piste copylock, il est de $8912 XXXX XXXX. Cette valeur a changé suivant les versions. Quand la piste copylock est testée, elle renvoie une clé numéro de série codée sur 32 bits, qui est après injectée dans les registres du 68000 pour être incluse dans le programme, pour soit activer une fonction, détruire des portions de programme en mémoire, voire décrypter une partie de programme dans un jeu, ou bien même décrypter un secteur d'amorçage (bootblock).

A l'époque, il utilisait une machine de duplication nommée "Trace" tournant sous Unix qui pouvait écrire les formats de protection copylock tel qu'il les avait écrit via un script.

3.1.1 Le système copylock dit "interne"

La première version se présente comme ceci :

La piste 0 est anormale. Toutes les pistes de 1 à 79 sont dites AmigaDOS standard ou bien Atari ST DOS standard. Un des secteurs est d'une taille plus faible que les autres, et non recopiable. La routine de test vérifie que le temps d'accès est de X msec. Si le chiffre est X + 5 msec, alors c'est une copie.

Ceci est le type n°1 des copylocks, le plus facile à exterminer.

En interne, le copylock Amiga se présente de la manière suivante :

Le programme est systématiquement basculé en mode superviseur, ce qui veut dire qu'on prend le contrôle intégral du matériel de la machine, et que les instructions dites "illegal" du 68000 sont utilisables. Le copylock est une routine rajoutée dans un programme, bien souvent cryptée, et en son milieu se trouve l'instruction privilégiée "illegal" d'où le besoin que le programme soit mis en mode superviseur.

Son implémentation la plus basique, ultra-facile à virer, a été implémentée sur les jeux suivants : Stormlord, Astaroth et RoboCop pour ne citer que ceux-là.

X-Copy
Capture d'écran de X-Copy qui montre les pistes de Stormlord

Le bootsector/loader (secteur d'amorçage) de ces jeux était en fait crypté et caché par le système copylock.

L'opération est simple, à l'aide d'un original et d'une cartouche telle qu'une Action Replay 3, on laisse le programme décrypter le vrai secteur d'amorçage, qui lui-même est copié en mémoire et copié en $400 dans la mémoire Chip de l'Amiga, là où on est censé le trouver normalement à la place de celui du copylock. On a juste à recopier le secteur d'amorçage sur la copie au bon endroit et le tour est joué. Si la protection échoue, le bloc d'amorce n'est pas décrypté et l'Amiga reste bloqué ou bien fait une réinitialisation après le test de la piste.

Par la suite, le copylock a évolué, car cette première version a été vaincue par le premier venu en 2 minutes chrono.

Rick Dangerous me vient à l'esprit, il date de 1989 et utilise toujours un copylock en piste 0. Cette fois-ci, le numéro de série de la piste copylock sert à décrypter le programme principal. Si on utilise une copie, le programme n'est pas décrypté et boom, plantage de la machine et redémarrage.

C'est cette version de copylock qui sera la plus répandue de toute. Les jeux qui l'ont utilisée sont nombreux, citons par exemple : Powerdrift, Badlands, Licence To Kill, etc.

La troisième version

La troisième version commence à devenir plus méchante. On a toujours notre piste 0 plombée comme à l'accoutumée, mais cette fois-ci on n'a pas une routine copylock d'incorporée au programme, mais au moins trois si ce n'est plus. Un jeu comme Frenetic de Core Design en a trois ou quatre qui font une vérification disque et qui, en plus, décryptent le programme.

Sleepwalker d'Ocean est l'exemple même d'un jeu protégé par copylock mal déplombé, le numéro de série d'une des versions déplombées disponibles à l'époque avaient été mal câblé dans le programme. Résultat, une routine bien planquée faisait disparaître le tonneau dans les égouts du niveau 1, vous bloquant ainsi de manière impossible à contourner.

Des jeux comme Hook d'Ocean ou Darkman sont littéralement criblés par la protection copylock. Les routines copylock sont ici cryptées, exécutent du code en mémoire, remplacent des instructions dans le jeu, et sont en plus protégées par checksum (somme de contrôle) ! Hook n'a d'ailleurs jamais été déplombé proprement jusqu'à il y a peu. on peut trouver facilement plus de 20 sommes de contrôle qui le protègent, en mémoire et sur disque, de toute modification.

Mais le "best of the best", c'est le jeu Parasol Stars d'Ocean. Vous connaissez ce jeu qui est une adaptation directe de la version PC-Engine, il tient sur une seule disquette et pourtant, la protection mise sur ce jeu est un poème à lui tout seul. Imaginez un peu : le jeu est au format DOS, doté d'une piste 0 protégée par copylock, dotés de trois routines copylocks vérifiées un nombre incalculable de fois lors du déroulement du jeu, mais surtout il est truffé de sommes de contrôle ! Il y en a 20 en tout, le jeu est intégralement crypté et les fichiers du jeu sont codés et engoncés dans une surcouche codée en langage objet !

Résultat, pour un jeu qui faisait une fois la programmation terminée 300 ko, on se retrouve avec un jeu qui fait, une fois la protection appliquée, 650 ko. La protection fait donc a elle toute seule 350 ko ! Jamais on a vu telle chose sur un jeu et pourtant il y en a d'autres qui sont aussi très bien pourvus, j'en parlerais plus loin. La version Atari ST c'est même tarif même punition.

3.1.2 Le système copylock dit "externe"

Là ça commence à devenir intéressant, ici la protection est beaucoup plus complexe à contourner. Fini le système de pistes DOS, là on est face à un système de pistes protégées MFM avec des routines copylocks dans le programme qui testent la piste 0. Les pistes 1 à 79, voire 1 à 81, sont protégées par un mot de synchronisation différent ce qui rend les pistes incopiables. De plus, le format MFM débouche ici sur une surcapacité du stockage des données.

Quelques exemples : R-Type Amiga, Rainbow Islands, New Zealand Story sur Atari ST.

X-Copy

Voici le tableau des pistes sous X-Copy. La piste 0 contient le copylock et les pistes 1 à 79 contiennent la protection MFM RNC Standard. Les cinq rouges correspondent à une protection MFM standard.

Pour sortir le programme de sa coque, il faut extraire, en utilisant le loader ou les loaders du jeu, toutes les données du disque, récupérer le numéro de série de la piste copylockée, le "câbler" dans les données récupérées, et créer un chargeur de pistes matériel, connu sous le nom de "trackloader".

Ce système marche de la façon suivante : les pistes font $1600 de données chacune, il faut en charger tant de kilooctets à tel endroit en mémoire. Les pistes RNC externes étendues font $1800 au lieu des $1600 que l'on a sur une disquette au format AmigaDOS. $1600 de données par côté soit $3200 de données pour une piste sur une disquette double face.

3.1.3 Le système RNPDOS

On touche au fin du fin, le top du top. Mais ça ne s'appelle plus copylock, mais Rob Northen Protected DOS. Le système RNPDOS utilise un dépassement de capacité des disquettes, on passe de 880 ko par disque à 970 ko, mais la vraie particularité est le fonctionnement et le décodage des pistes.

Les jeux qui utilisent ce système sont Alien Breed Tower Assault, Superfrog et Body Blows de Team 17, Primal Rage de Warner Interactive, Mortal Kombat 1 et 2 d'Acclaim, mais aussi Jurassic Park d'Ocean. Cette protection n`existe pas sur Atari ST.

Voici le tableau X-Copy de Superfrog. Chaque piste est cryptée et verrouillée par un numéro de série qui marche sur le principe du copylock classique.

X-Copy

Non seulement une copie ne marchera pas, mais en plus les données ne peuvent pas être décodées et elles restent verrouillées.

Superfrog tient dans sa version déplombée sur quatre disquettes au lieu de trois à cause du dépassement de taille. Et les fichiers de ce jeu sont compressés avec un outil fourni par Rob, le compresseur RNC Propack, qui permet un taux de compression phénoménal. Alien Breed Tower Assault tient sur trois disquettes, mais si on récupère tous les fichiers stockés sur les pistes une fois décodées (car le jeu est installable sur disque dur) et qu'on les décompresse avec l'utilitaire Track2File, le jeu fait 19 Mo ! C'est tout bonnement énorme.

Quant à Jurassic Park, aucune des versions pirates n'est déplombées correctement, ni même fonctionnelle. Le jeu est protégée par RNPDOS, est criblé de sommes de contrôle en mémoire (50 au moins) a un dépassement de capacité disque, une routine copylock reliée aux ennemis (exemple : certains dinosaures sont invincibles dans la version déplombée par Paradox, c'est un effet secondaire d'une protection qui a mal été déplombée) ainsi que le système de mot de passe, qui est complètement inopérant sur la version déplombée.

3.2 Le système speedlock

Le système speedlock est excessivement bizarre, car utilisé sur peu de jeux. Les quatre que je connais sont Voodoo Nightmare, Dragon's Breath de Palace Software, ATF 2 de Digital Integration ainsi que Treasure Trap d'Electronic Zoo.

Voodoo Nightmare est en pistes DOS, mais bizarrement, il y a deux pistes protégées contre la copie en plein milieu de la disquette, et pas sur la même piste par face. Regardez la capture d'écran ci-dessus pour vous faire une idée.

X-Copy

Cette protection marche par détection de la densité des données sur les pistes protégées (marchent à la synchronisation lors de la lecture). D'où le nom speedlock, qui veut dire blocage par la vitesse.

Le cryptage tient ici une place de choix.

ATF 2, lui, est protégé par speedlock mais utilise des pistes protégées MFM, et un dépassement de capacité. Une fois le jeu installé sous WHDLoad, l'image décodée de la disquette fait 982 ko soit 102 ko de données supplémentaires.

X-Copy

Comme on le voit, c'est un speedlock exotique avec des pistes MFM et des pistes DOS standard.

Le speedlock de Treasure Trap, lui, ressemble à un copylock dans son fonctionnement. Si le test de la protection échoue, le chargement est bloqué.

3.3 Le système protec

On trouve ce système de protection sur les jeux Gemini Wings et Sorcery+ de Virgin Mastertronic.

Celle de Gemini Wings ci-dessous :

X-Copy

Elle est appliquée sur ces jeux qui sont en fichiers et pas en chargement de pistes. Elle est logée dans le programme principal et teste simplement la valeur hexa retournée par le test de la piste protégée (qui est la piste 0) dans le registre de donnée D0 du 68000.

Là encore, une protection très facile à contourner, plus simple que le copylock de base.

3.4 Le système starter/piste longue

C'est la protection disque utilisée sur les jeux Silmarils, Targhan, la série des Ishar, Transarctica, Storm Master, Le Fetiche Maya, Colorado, etc. Mais également les jeux Loriciel comme Tennis Cup, ADS, Panza Kick Boxing, etc. Par ailleurs, cette protection aurait été conçue chez Loriciel (Titus est aussi un grand consommateur de ce type de protection, les jeux Moktar, Prehistorik, Crazy Cars 3, Super Cauldron utilisent des pistes longues en guise de protection).

Voici la typo sous X-Copy d'un jeu protégé par starter. C'est une protection par piste longue qu'on appelle "longtrack". Elle consiste en une piste dotée d'une foule de secteur d'une taille plus petite que la normale, mais la piste en elle-même fait une taille super longue, $19 E0 au lieu des $1600 sur une piste normale. C'est la piste 79 qui est ici utilisée pour cette protection.

X-Copy

La lecture de la piste renvoie une clé sous la forme d'un nombre hexadécimal qui est mis d'abord dans le registre de donnée D6 et qui est ensuite copié dans D0 une fois celui-ci mis à 0. Si le mauvais nombre est remonté dans le cas d'une copie, le jeu plante.

Et voici la routine de protection telle qu'elle se présente sur les versions Amiga des jeux Silmarils :

Protection

Ici, comme vous le voyez, la ligne assembleur C0A2AE exécute la routine de protection, envoie la tête de lecture sur la piste 79, procède au calcul qui va bien, renvoie le nombre hexadécimal 152B dans le registre D6. Cette clé varie suivant les jeux.

Vous voyez ci-dessous le tableau d'état des registres du 68000 de l'Amiga, La ligne assembleur C0A2D2 demande le vidage du registre D0, et la ligne C0A2D4 demande la copie du WORD (mot) stocké en D6 dans D0. Sur cet exemple la bonne clé est 152B pour Ishar 3 ECS de la compilation Ishar Trilogy. Sur une copie, le registre D6 passe une mauvaise valeur de D6 vers D0. Le programme plante après l'introduction.

Protect

Même si la routine varie un peu suivant les jeux, ce système est récurrent. D'ailleurs, Ishar 3 ECS ne marche pas sur A1200 à cause de la protection. Une fois celle-ci oblitérée, le jeu passe sans souci.

Pour câbler le bon nombre, on efface les lignes C0a2ba à C0a2ce et on mets MOVE.W #152B, D6 et après move.W D6,D0. On modifie et on sauvegarde le programme "start". On relance le jeu et celui-ci n'essaie même pas d'aller en piste 79, il charge directement le menu principal.

3.5 Le système longtrack d'Ubi Soft

X-Copy
Capture d'écran de X-Copy pour Iron Lord

Ubi Soft a utilisé cette protection sur Iron Lord et Final Command, ainsi que Zombi.

C'est une protection par piste longue placée en pistes 80 à 82. Les données sur ces pistes sont agencées de façon particulières, qui font qu'elles ne sont pas copiables.

Là encore, seul un système de copie matérielle peut copier ce type de protection.

3.6 Le système MFM

3.6.1 MFM disque standard

Des jeux comme Twinworld de Blue Byte ou Smash TV d'Ocean utilisent une protection MFM classique (forme d'encodage dont les informations de décodage sont dans le trackloader, toutes les pistes sont encodées en MFM) sans fioritures ni bizarreries.

Un simple changement de mot de synchronisation caractérise le format utilisé pour ces jeux-là.

3.6.2 MFM disque étendue avec dépassement de capacité

C'est pareil que par protection MFM standard, sauf qu'ici on a droit a une méchante surcapacité en plus sur disque.

Turrican 1, 2, 3, BC Kid, Snow Bros, Dragon's Lair 1, 2, 3, Space Ace 1 et 2, Wrath Of The Demon et Awesome de Psygnosis pour ne citer qu'eux font partie de cette catégorie.

Turrican Amiga ne peut pas être copié pour deux raisons. La première c'est que le jeu fait décodé 1,1 Mo tassé sur une seule disquette et utilise en plus cinq routines copylock engoncées dans les fichiers de jeu. Le format créé par Factor 5 permet de mettre presque 350 ko de données de plus sur une disquette classique. Turrican 2 et 3 sont abonnés au même principe ainsi que BC Kid. Tous ces jeux tiennent obligatoirement sur deux disquettes si on les passe sur des disquettes standardisées.

Les jeux ReadySoft sont, quant à eux, une exception. Randy Linden, le programmeur en chef sur ces jeux, a créé un format MFM surpuissant puisque chaque disquette Amiga de ces jeux contient autant de données (notez que ce sont des disquettes double densité) que des disquettes PC haute densité 1,44 Mo. On a en moyenne 1,2 Mo de données sur chaque disquette de Dragon's Lair soit une taille de piste énorme $1950 de données en lieu et place des $1600 alloués normalement à un format de piste DOS. Cela explique pourquoi ce jeu qui prend 6 disquettes en original en fait 3 de plus dans sa version déplombée. Toutes pleines à raz bord en plus. Wrath Of The Demon lui a 1 Mo de données décodées par disquettes.

Pour recopier ces jeux protégés, il faudrait utiliser des lecteurs haute densité et des disquettes HD pour stocker toutes les données sans problèmes. Et utiliser un dispositif de copie matérielle... Sans quoi la copie est impossible.

Awesome de Psygnosis dispose d'une intro qui fait 960 ko, ce qui fait qu'elle tient aussi sur deux disquettes si on la met sur des disquettes classiques.

3.6.3 MFM custom

Avec super dépassement de capacité chez Psygnosis sur Amiga

Ici on tape dans l'irréel. Peu de personnes connaissent la spécificité de cette protection créée par Psygnosis. On l'appelle le format MFM Psygnosis 1.5. Pourquoi ? Hé bien voilà, cette protection n'est absolument pas copiable car elle permet une telle augmentation de la taille des données stockées que ça en est ahurissant. Chaque disquette contient au moins 1,2 Mo de données décodées soit 2,5 Mo de données MFM brutes. Il y a quatre jeux concernés : Nitro, The Killing Game Show, Obitus et Armour Geddon.

Le pire, c'est que le secteur d'amorce de lui-même est crypté, et utilise une routine qui ne permet pas de voir les octets décodés.

Le stockage est 30% plus important qu'une disquette protégée par système MFM classique. A ce jour, Obitus n'a jamais été déplombé correctement, la version déplombée a été bâclée. Quand on cherche à copier Obitus dans X-Copy, on voit des 7 rouges qui sont le signe de piste longues.

Par readtrack sur Atari ST chez Lankhor

Pourquoi Maupiti Island sur Atari ST n'a-t-il jamais été déplombé proprement ? Parce que le jeu contient des routines de sommes de contrôle en mémoire, et aussi un système très particulier pour la lecture des pistes. En effet, quand l'Amiga fait très bien du readtrack, l'Atari ST en temps normal ne sait pas faire ça. Tout du moins, pour faire de la lecture de données. Les gars de chez Lankhor ont réussi à détourner les routines système pour faire faire du readtrack à l'Atari. Les pirates en ont bavé pour remettre les données sur des pistes standard, hélas les copies déplombées disponibles ne sont pas propres, le jeu n'aura jamais été déplombé correctement.

3.6.4 MFM hybrides

Voici la partie exotique de notre dossier, hé hé :D. Je vais faire allusion aux jeux éducatifs de Coktel Vision nommés ADI.

Qui n'a jamais utilisé pour ses enfants cette suite applicative éducative ? Voilà une grosse particularité de l'Amiga, tandis que la disquette de lancement ADI est au format Amiga DOS, le programme principal est doté de routines spéciales permettant le décodage des disquettes application fournies qui, elles, sont au format MFM Atari ST/PC 720 ko.

Ces pistes font une taille de $1400 de données au lieu des $1600 que l'on a normalement.

Ces disquettes sont lisibles sur Atari ST et PC et donc copiables sur ces machines, mais sur Amiga, elles sont considérées comme protégées et donc pas copiables. L'Amiga sait néanmoins les lire et les décoder.

La bonne solution pour faire des copies de sauvegarde, c'est de se servir d'un PC ou ST pour créer des sauvegardes et les charger ensuite sur son Amiga.

Parmi les jeux connus protégés par pistes Atari ST sur Amiga il y a la plupart des jeux de Dinamic (Satan, Astro Marine Corps, Narco police) certains jeux de chez Thalion (Wings Of Death et Prehistoric Tale par exemple), de chez Eclipse (Ninja Remix), de chez Millennium (Plan 9 From Outer Space, James Pond), et aussi Karaté Kid, Fire And Brimstone, Goldrunner, Starglider, etc.

Il y a à ce jour, de sources sûres, 80 jeux référencés. Ils ne sont d'ailleurs toujours pas préservés par SPS, mais devraient bientôt sortir au format IPF.

3.7 Les protections dites "dual format"

Ceci est une invention d'un des meilleurs de chez Thalion, j'ai nommé notre cher Jochen Hippel.

C'est lui qui a créé le système dual format. En fait, ce système a été utilisé sur les jeux Lethal Xcess de Thalion Monster Business d'Eclipse.

Le jeu se lance indifféremment que l'on insère les disquettes sur un Atari ST ou un Amiga. La piste de démarrage est spéciale, elle contient sur une face le secteur d'amorçage Atari, et sur l'autre le secteur d'amorçage Amiga. Suivant la machine sur laquelle on insère la disquette, hop le démarrage correspondant à la machine est chargé et décode par la suite les pistes protégées MFM de 1 à 79.

J'en profite également pour dire que la plupart des protections disques sur Atari ST des jeux Thalion ont été créées sur Amiga, d'après des informations que l'on a eu par les gens de Thalion eux-mêmes... Si ce n'est pas amusant. ;)

3.8 Les protections dites "flakey bits"

Ce type de protection est assez particulière. En fait, sur une disquette, on peut formater ou non les pistes que l'on veut. Certaines sont non formatées, et donc contiennent ce que l'on appelle du "bruit". Ce n'est pas du vide, mais plutôt un état aléatoire permanent des bits 0 ou 1.

Je m'explique, sur un jeu original doté de cette protection, quand le jeu ordonne la lecture d'une piste dotée de "flakey bits", la lecture renvoie soit 0 soit 1 en résultat, tandis qu'une copie de cette disquette renverra de façon permanente 0 ou bien 1.

Ça donne ceci :

01010101010101010 (original)
00000000000000000 (copie cas 1)
11111111111111111 (copie cas 2)

Cette protection ne peut être recopiée même avec un matériel de type cyclone. Elle ne se copie qu'industriellement via une machine traceuse (duplicateur).

Les jeux Super Hang-On et Fatal Heritage utilisent cette protection.

3.9 Les protections custom multiples

L'exemple absolu, c'est le jeu Double Dragon 2 converti par Richard Aplin.

Voici la liste détaillée des systèmes de protection mis en place par Richard Aplin le programmeur :
  • 66 fichiers du jeu cryptés.
  • 66 routines de vérification de la protection cryptée dans chaque fichier.
  • 4 loaders (cryptés/non cryptés) dans le fichier principal.
  • 13 routines d'accès au loader (activées par des erreurs d'adresses !).
  • 3 sommes de contrôle (test et dépôt de données sur la pile).
  • 1 loader dans le jeu qui décrypte quand il est appelé, puis se recrypte lui-même après coup !
  • 1 système de fichiers MFM avec des blocs de données de $1800 bizarre.
  • 1 piste de protection testée plus de fois que Ben Johnson.
  • 1 secteur d'amorçage crypté.
  • 235 erreurs d'adresses.
  • 16 erreurs d'adresses dans la liste Copper.
Comme on peut le voir, la protection est extrêmement lourde, et le déplombage existant de ce jeu ne peut pas tourner sur autre chose qu'un Amiga 500 de base justement à cause d'elle. La protection regroupe une piste de protection longue, plus un format MFM lourd, plus un cryptage à tous les étages, plus un secteur d'amorçage crypté.

4. Les protections matérielles ou dongle

Peu de jeux utilisent ce type de protection, car elles reviennent chères au coût final d'achat du jeu.

Je parle bien sûr de RoboCop 3 et BAT sur Atari ST, BAT 2 sur Amiga/ST, Dames Grand-Maitre de Cobra Soft, Dyna Blaster d'Ubi Soft et Jeanne d'arc sur Atari ST.

RoboCop 3 utilise une clé électronique s'insérant sur le port manette. La routine de détection est parait-il facile à trouver d'après ce qu'en dit Phill Boag-Butcher du groupe Fairlight. Il a été déjoué au moment même de sa sortie, ça a été donc inutile ici d'implémenter ce système.

Clé électronique
Clé électronique de RoboCop 3

BAT sur Atari ST utilise une cartouche que j'appelle "dérivative" c'est-à-dire que le son est rerouté vers la carte en étant censé l'améliorer (dans la pratique, l'amélioration est imperceptible). La carte MV16 est une arnaque absolue, le son grésille toujours autant et empêche une émulation convenable sur un émulateur. D'ailleurs la version Amiga n'en a pas et utilise à la place une protection MFM standard avec dépassement de capacité. La disquette 1 du jeu contient 1,1 Mo de données décodées au lieu de 880 ko en DOS standard.

Clé électronique
Carte MV16

BAT 2 utilise aussi une clé électronique à brancher sur le port modem sur Atari ST et sur port série sur Amiga. Le jeu est protégé sur disque sur Atari ST et en pistes DOS normales sur Amiga. A noter que BAT 2 en français n'avait jamais été déplombé, jusqu'à ce que je modifie la disquette 1 et que je retire la varification de la clé électronique (qui soit dit en passant consiste à "nopper" une simple instruction, et cela marche sur la VF, la version allemande et anglaise).

Clé électronique
Clé électronique de BAT 2

Dyna Blaster sur Atari ST, Amiga et PC se joue à 4 joueurs, les joueurs 3 et 4 sur port classique, et les joueurs 1 et 2 sur la clé électronique branchée sur le port parallèle. Si le jeu ne détecte pas la clé électronique pour le joueur 1 et 2, on ne peut pas jouer.

Clé électronique
Clé électronique de Dyna Blaster

Clé électronique
Clé électronique de Dames Grand Maîtres

Jeanne d'Arc sur Atari ST utilise aussi une clé électronique, qui fait planter le jeu s'il est absent.

Conclusion

Maintenant que ce dossier est terminé, il y a sûrement des questions qui vous traversent l'esprit, telle que : "quelle aurait pu être la protection la plus efficace, voire leur niveau d'efficacité ?"

Je suis d'avis sur une chose, la meilleure protection est celle qui est la plus compatible avec les différents modèles d'une même machine, qui rend la copie très difficile, avec ses talons d'Achille camouflés par de le cryptage. Et de manière plus vicieuse qu'elle entraine des modifications une fois activée dans le code du jeu, qu'elle soit protégée même une fois chargée en mémoire par des routines de sommes de contrôle, ainsi qu'un dépassement systématique de capacité de stockage.

Ce qui me dérange le plus, c'est le fait que les protections de manière générale sont codées de façon "dégueulasse", non respectueuses des règles constructeur. Et je ne parle pas de ces protections activées à grand coup de "division par 0" qui, comme vous le savez, est quelque chose d'interdit pour un ordinateur, sauf que l'Amiga et le ST par exemple une fois passé en mode superviseur, peut se permettre d'utiliser ce type d'instruction privilégiée. Un autre aspect de protection efficace, consiste à programmer son déclenchement en code C. Le code C est une horreur à déplomber pour un pirate, plus que tout le reste. Les protections de Croisière Pour Un Cadavre, Flashback, bref, la plupart des jeux programmés en langage C sont bien plus durs à déplomber qu'un jeu programmé en assembleur, beaucoup plus facile d'accès.

Aujourd'hui les protections que l'on connaît sur PC ne sont que les pâles copies des protections d'hier. Aussi stupides, programmées de manière tout aussi "sales". La protection Securom que l'on a aujourd'hui fonctionne de la même manière que le système copylock de l'Amiga/ST. Safedisc lui est une aussi pâle copie des protections qui vérifient des secteurs défectueux ou erronés situés sur des pistes non formatées. La protection Starforce 3 est un exemple de la protection qui va trop loin. Je la compare volontiers à la protection de Double Dragon 2 sur Amiga. Et je te crypte à tout berzingue, et que je mets une piste protégée contre la copie, et que je t'enterre au plus profond du code, pour finalement rendre le programme instable.

Au fond rien n'a vraiment changé. Le dépassement de capacité n'aura duré que le temps de quelques jeux comme Sanitarium ou Final Fantasy 8. On a lâché les disquettes pour le CD/DVD en gardant les mêmes recettes.

Les protections au final ne font qu'exciter les hackers de tout bord, et agacer prodigieusement les utilisateurs finaux. Mais les éditeurs disent qu'ils ne peuvent pas se permettre de louper les ventes d'un jeu en n'en mettant aucune. Reste que les protections que nous connaissons sur Amiga et ST sont de sacrés morceaux d'ingéniosité pour pouvoir contrer le piratage.

Annexe : petit glossaire

AmigaDOS : Amiga Disk Operating System. C'est la partie du système d'exploitation de l'Amiga qui gère le système de fichiers et la ligne de commande. AmigaOS est le système d'exploitation (SE) de l'Amiga comme le fut le MS-DOS sur PC.

Bootsector : premier secteur d'un disque sur lequel se trouve le bootstrap, petit programme exécutable permettant de lancer le programme principal.

Somme de contrôle (checksum) : somme de tous les bits d'une ligne, d'un message, d'un fichier... dans le but de détecter une erreur. En français : somme de contrôle.

Tracer Duplicateur professionnel : machine aussi appelé "Tracer" permettant de dupliquer fidèlement un logiciel à partir d'un master, y compris la protection. Il y avait essentiellement deux types de duplicateurs qui tournaient sous Unix.
Le 1006 : où l'on pouvait connecter 6 chargeurs.
Le 1020 : où l'on pouvait connecter 20 chargeurs.
Chaque chargeur pouvait contenir 100 disquettes 3,5" ou 5,25".

Propack : système de compression de données utilisé dans la plupart des jeux.

Track loader : routine de chargement de piste. C'est par définition plus rapide pour charger les données qu'un chargement par fichier. Cette routine peut décoder, si on le prévoit comme tel, des pistes MFM protégées. Elle permet un chargement en volume de données en aveugle. Une fois les données mise dans le tampon de décodage MFM, les données décodées sont disponibles. Ensuite, il suffit de les positionner correctement en RAM et de les exécuter.


[Retour en haut] / [Retour aux articles]