Obligement - L'Amiga au maximum

Samedi 19 août 2017 - 03:30  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

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

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


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


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


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


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 stoppez 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 d'opcodes, 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 opcodes pour notre nouvelle instruction.

Les quatre premiers opcodes ont changé, prenez ça en note. Les opcodes 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 opcodes pour la première adresse avec "M 1089C" puis "Entrée". Insérez les nouveaux opcodes, 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 "crack 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 opcodes en 5042A, mais avant, on doit prendre en note les opcodes existants. Celles-ci peuvent être alors utilisées, pour trouver les opcodes sur la disquette.

Pour voir les opcodes, 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 nouvelles opcodes. Tapez "M 5042A" pour voir les nouvelles opcodes 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 opcodes souligné en rouge dans l'image ci-dessus.

L'étape suivante est de remplacer les anciennes opcodes 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 opcodes 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 opcodes 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 "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 "trainer". Vous aurez l'adresse 178AF. Quittez le mode "trainer" avec "TX".

Lancer à nouveau le mode "trainer" 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 opcodes. Si vous ajoutez un "long word" (4) à l'adresse, vous obtiendrez 13C26. Regardez les opcodes 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 "trainer" à 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 "trainer" 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 "trainer" :

Déplombage de Rick Dangerous 2

Désassemblez le début du code d'amorce ("bootcode") pour déterminer comment déplacer notre "trainer" 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 "trainer" 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 l'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 "trainer" à 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 "trainer" 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]