Obligement - L'Amiga au maximum

Jeudi 18 avril 2024 - 17:52  

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

 


En pratique : Déplombage de Rick Dangerous 2
(Article écrit par Rob et extrait de Flashtro.com - avril 2005)


Note : traduction par Denis Lechevalier.

Prérequis
  • Le jeu original ou bien son image IPF.
  • Un Amiga ou l'émulateur WinUAE.
  • La cartouche Action Replay III ou son image ROM.
  • Du papier et un crayon.
  • Deux disquettes vierges.
  • L'Action Replay IV.
  • Le Kickstart 2.0.
Petit cours avant tout chose sur les commandes de l'Action Replay 3 et 4
  • "A" est la commande qui permet d'assembler une instruction par-dessus une autre. Par exemple, "A 700C0" permet d'assembler la ligne 700C0.
  • "BS" est la commande qui permet de mettre un point d'arrêt. Exemple : "BS 72000", l'Action Replay 3 s'activera automatiquement dès que le programme passera sur cette adresse.
  • "F" est la commande qui permet de trouver une chaîne hexadécimale. "F" veut dire "Find" (trouver). Exemple : "F 48 7A".
  • "FA" veut dire "Find Adress" (trouver adresse). Exemple : "FA 187A6" permet de trouver l'adresse 187A6 dans les lignes de code assembleur.
  • "LM" veut dire "Load Main" (charger programme principal). Exemple : "LM prog, 30000 40000", le programme sera chargé sur la plage mémoire 30000 à 40000.
  • "M" permet de voir la mémoire, par exemple pour vérifier si on a de la place libre sur le bloc d'amorce pour y mettre un correctif. Exemple : "M 50492".
  • "ROBD" (spécifique à l'Action Replay 4) permet le décryptage automatique du système de protection RNC.
  • "SM" veut dire "Save Main" (sauver programme principal). Exemple : "SM prog, 30000 40000". Le programme sera sauvé depuis 30000 jusqu'à 40000.
  • "RT" veut dire "Read Track" (lire piste). Cette commande sert à lire des pistes pour pouvoir les modifier par la suite. Exemple : "RT 0 24 30000" permet de lire les pistes demandés à l'adresse 30000.
  • "WT" veut dire "Write Track" (écrire piste). Cette commande sert à écrire après une modification du programme quand on a inséré un correctif par exemple.
  • "X" permet de sortir de l'Action Replay 3.
  • "BOOTCHK 70000" permet de recalculer la somme de contrôle du bloc d'amorce quand on l'a modifié.
Déplombage de Rick Dangerous 2

Commencez par faire une copie de la disquette de jeu originale. Vous remarquerez une erreur sur la piste 0. Donc on a affaire à une protection sur disquette. Laissez-moi vous surprendre : c'est un copylock.

Quand la protection plante, elle met le bazar dans le jeu, alors ça bloque quand vous essayez de lancer un niveau ou pendant la partie.

Commençons par retrouver la clé du copylock. Démarrez la copie du jeu, et entrez dans l'Action Replay quand ça fige. Cherchez ensuite le ou les copylocks en tapant "F 48 7A". L'Action Replay renvoie neuf adresses. Il y a trois copylocks identiques dans ce jeu et un quatrième plutôt bizarre. Il est d'une très petite taille et n'est pas utilisé, ou peut-être qu'il passe des données aux autres routines copylock.

Déplombage de Rick Dangerous 2

Prenez un des copylocks à sauver. Désassemblez par exemple l'adresse 10084, maintenez la touche "Entrée" appuyée et relâchez-là quand du code non encrypté apparaît. De cette façon, vous obtenez l'adresse de début et de fin du copylock.

Insérez une disquette vierge et sauvez le copylock en tapant "SM COPYLOCK,10084 10972". Lancez l'Action Replay IV et activez-la avec le bouton droit de la souris. Chargez dedans le copylock sauvé, démarrant à l'adresse 50000 en tapant "LM COPYLOCK,50000".

Déplombage de Rick Dangerous 2

Activez le décrypteur RNC intégré en tapant "ROBD". Désassemblez l'adresse 50000 et arrêtez quand la "seconde" partie du copylock apparaît :

Déplombage de Rick Dangerous 2

Cette partie nous pose des problèmes, étant donné qu'elle vidange la clé copylock du registre de donnée D0, on ne peut donc pas la lire lorsque le copylock a été lancé. La routine démarre à l'adresse 50818. Insérons alors un "BRA 50818" ici, ainsi le registre D0 ne sera pas vidangé.

Tapez "M 50818" et prenez note du premier mot long de code opération (opcode), car on les utilisera plus tard pour trouver à nouveau le copylock. Assemblez la ligne 50818 et insérez un "BRA 50818". Quand c'est fait, tapez "M 50818" et regardez les codes opération pour notre nouvelle instruction.

Les quatre premiers codes opération ont changé, prenez ça en note. Les codes opération montrées sont déjà encryptées, alors que l'on est en mode ROBD. Les encryptages marchent par XOR, le mode ROBD montre le code decrypte, donc lorsque l'on insère du code normal, il apparaîtra comme étant encrypté.

Démarrez le jeu original et entrez dans l'Action Replay quand le copylock est exécuté. Soit vous écoutez le bruit grinçant du lecteur ou quand le compteur de piste va sur 0 dans WinUAE. Cherchez le "long word" que vous avez pris en note en tapant "F 26 3E 25 F0". L'Action Replay retourne trois adresses. D'où nos trois copylocks. Regardez les codes opération pour la première adresse avec "M 1089C" puis "Entrée". Insérez les nouveaux codes opération, et n'oubliez pas d'appuyer sur "Entrée" quand c'est fait.

Quittez l'Action Replay et attendez quelques secondes pour que le jeu se fige.

Déplombage de Rick Dangerous 2

Entrez dans l'Action Replay et tapez "R" puis "Entrée" pour voir les registres. Voilà, la clé copylock (A3EF1306) est dans le registre de données D0. Armé de la clé, entrez dans l'Action Replay IV à nouveau et chargez le copylock sauvegardé en tapant "LM COPYLOCK,50000".

Activez le décrypteur RNC avec "ROBD". Désassemblez l'adresse 50000 et arrêtez-vous quand ceci apparaît :

Déplombage de Rick Dangerous 2

L'adresse 5042A est celle qui nous intéresse. Ce code apparaît dans la majorité des copylocks et c'est là que nous allons câbler la clé copylock. De cette façon, il y a plus chance que le déplombage soit un déplombage à 100%, étant donné que les "trucs dégueulasses" seront exécutés de cette façon. Ces trucs de sagouin sont souvent exécutés à la fin du copylock.

Quand on a fait cela, la partie sur l'accès disque n'a plus besoin d'être exécutée, alors on peut brancher (BRA) après cette partie. Continuez de désassembler quelques lignes plus loin. Vous remarquerez un BRA à l'adresse 50474, ce BRA apparaît également dans la plupart des copylocks, et il branche vers "la seconde" partie du copylock, comme on l'a dit un peu avant. Nous pouvons soit brancher directement vers 50818, ou vers 50474, ça ne fait aucune différence. Aujourd'hui, choisissons 50818.

Déplombage de Rick Dangerous 2

Nous souhaitons altérer les codes opération en 5042A, mais avant, on doit prendre en note les codes opération existants. Celles-ci peuvent être alors utilisées, pour trouver les codes opération sur la disquette.

Pour voir les codes opération, faire "M 5042A". Assemblez l'adresse 5042A et insérez le code que vous voyez dans l'image ci-dessous. On ne fait cela que pour voir les nouveaux codes opération. Tapez "M 5042A" pour voir les nouveaux codes opération encryptées. On est toujours en mode ROBD, ce qui fait que le code normal apparaît sous forme de code encrypté.

Déplombage de Rick Dangerous 2

J'ai marqué les nouveaux codes opération souligné en rouge dans l'image ci-dessus.

L'étape suivante est de remplacer les anciens codes opération avec les toutes nouvelles. Les copylocks sont situés entre les pistes 18 et 22, lisez-les en mémoire, en démarrant à l'adresse 30000 avec "RT 24 A 30000".

Déplombage de Rick Dangerous 2

Cherchez les codes opération dont vous avez pris note un peu plus tôt, démarrant à l'adresse 30000 en tapant "F A8 B2 C7 85, 30000". L'Action Replay retourne trois adresses. Insérez les nouveaux codes opération aux trois adresses et n'oubliez pas d'appuyer sur "Entrée" après chaque modification.

Déplombage de Rick Dangerous 2

Sauvegardez les pistes en les réécrivant en tapant "WT 24 A 30000".

Déplombage de Rick Dangerous 2

Testez votre nouveau déplombage. Et si on lui mettait un mode de triche à ce jeu ? Cela serait-y pas super drôle si on avait les vies, bombes et tirs illimités ? Si vous pensez que oui, alors continuez de lire. :)

Démarrez le jeu et ne faites rien ! Vous avez six vies au départ. Entrez dans l'Action Replay et lancez le mode de triche ("trainer") en tapant "TS 6".

Déplombage de Rick Dangerous 2

Sortez de l'Action Replay et perdez une vie. Entrez dans l'Action Replay à nouveau et tapez "T 5", pour continuer le mode de triche. Vous aurez l'adresse 178AF. Quittez le mode de triche avec "TX".

Lancer à nouveau le mode de triche avec "TS 6" et tirez une balle. Entrez dans l'Action Replay et tapez "T 5". Continuez de cette façon et faites de même avec les bombes. Vous finirez avec ces adresses :
  • Vies : 178AF/178AE.
  • Balles : 17893/17892.
  • Bombes : 178A1/178A0.
Ces adresses ont l'air un peu bizarre, mais je ne plaisante pas là. Retirez 1 de toutes les trois adresses, et vous obtiendrez les nombres dans la seconde colonne. Voyons voir ce que fait le jeu avec ces adresses.

Commencez avec les vies en tapant "FA 178AE". L'Action Replay retourne six adresses. L'adresse 13C22 a l'air intéressante, étant donné qu'elle soustrait 1 de l'adresse de comptage 178AE. On peut changer l'instruction "SUBI.W #1,178AE" en "SUBI.W #0,178AE". Le jeu soustraira alors 0 du compteur de vies, chaque fois que vous perdrez une vie, d'où les vies illimitées !

Déplombage de Rick Dangerous 2

Jettez un coup d'oeil à l'instruction en tapant "M 13C22". Cela vous montrera les codes opération. Si vous ajoutez un "long word" (4) à l'adresse, vous obtiendrez 13C26. Regardez les codes opération avec "M 13C26". Vous voyez le "01", marqué en rouge ? C'est le "1" dans l'instruction "SUBI.W". Si on crée un petit correctif, qui fait un "MOVE.W #0,13C26", l'instruction sera changée en "SUBI.W #0,178AE".

Suivez les instructions ci-dessous pour les balles et les bombes. Vous terminerez avec ces trois adresses :
  • Vies : 13C26.
  • Balles : 13F14.
  • Bombes : 13B38.
Trouvons un moyen pour insérer un correctif à ces adresses avant que le jeu ne démarre. Démarrez le jeu et entrez dans l'Action Replay quand il commence à charger. Tapez "D" pour désassembler la mémoire actuelle. On dirait que nous sommes dans le secteur 70000 de la mémoire. Essayez de désassembler à l'adresse 70000 et tapez sur "Entrée" un certain nombre de fois.

Déplombage de Rick Dangerous 2

On a un "JMP 10000" à l'adresse 70024. Collez un point d'arrêt à cette adresse et sortez de l'Action Replay avec "BS 70024". Quand le jeu atteint l'adresse, l'Action Replay jaillira à l'écran. Quand cela se produit, essayez de désassembler les adresses qui retirent 1 à l'adresse de comptage.

Déplombage de Rick Dangerous 2

Toutes les adresses semblent être chargées maintenant. Détournons ce saut (JMP) et faisons le sautez à la place à l'adresse 100. On va alors mettre une petite routine de mode de triche à l'adresse 100. Le "JMP 10000" est situé sur la piste 1, lisez-là en mémoire, en démarrant à l'adresse 30000 en tapant "RT 2 2 30000". Ensuite, trouvez le JMP en tapant "FA 10000 30000". L'Action Replay retourne l'adresse 30078. Assemblez cette adresse et insérez un "JMP 100".

Déplombage de Rick Dangerous 2

Sauvegardez la piste sur la disquette en tapant "WT 2 2 30000". Pour l'étape suivante, il faut trouver un endroit sur la disquette pour notre mode de triche et un moyen de le déplacer à l'adresse 100. Commencez par lire le bloc d'amorce en mémoire, en commençant par l'adresse 70000 en tapant "RT 0 1 70000". Observez la mémoire avec "N 70000" et tapez sur "Entrée" un certain nombre de fois.

Déplombage de Rick Dangerous 2

Il y a plein d'octets libres. Assemblez 70100 et codez le mode de triche :

Déplombage de Rick Dangerous 2

Désassemblez le début du code d'amorce ("bootcode") pour déterminer comment déplacer notre mode de triche en mémoire :

Déplombage de Rick Dangerous 2

7005C saute (jmp) dans le code, que le bloc d'amorce charge en mémoire. On va changer ceci en "BRA 700C0" et mettre une petite routine de copie en 700C0, qui mettra notre mode de triche en mémoire. Regardez l'image ci-dessous.

Assemblez 700C0 et codez cette petite routine, qui mettra notre correctif du bloc d'amorce à l'adresse 100 : ce code déplacera le contenu du bloc d'amorce depuis la position ("offset") 0 et 0 en quantité de données en mémoire, en démarrant à l'adresse 100. En d'autres mots, il déplace notre mode de triche à l'adresse 100.

Déplombage de Rick Dangerous 2

Quand c'est fait, corrigez la somme de contrôle du bloc d'amorce en tapant "BOOTCHK 70000". Sauvegardez le bloc d'amorce sur disquette une fois recalculé en tapant "WT 0 1 70000". Lorsque vous lancez le jeu, il charge pendant un moment et un écran bleu apparaît. Appuyez sur le bouton gauche de la souris pour le mode de triche ou celui de droite pour le mode normal.

Déplombage de Rick Dangerous 2

Note : un immense merci a Rob de flashtro pour m'avoir permis de traduire ses tutoriels en français. En espérant que ça permettra à ceux qui sont intéressés de comprendre comment modifier un copylock.

Il n'y a pas d'inquiétude pour le fait de retirer le copylock, puisque Rob Northen a donné à la communauté les "outils copylock" et c'est du vieux, et qu'en plus ça empêche de passer les jeux en émulation et aussi de les préserver au cas où !


[Retour en haut] / [Retour aux articles]