▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ░▒▓█ rapid1337.com █▓▒░ ╓──────────────────────────────────────────╖ ║ Rick Dangerous II [FRENCH] ║ ╟──────────────────────────────────────────╢ ║ aurez besoin de ce qui suit: ║ ╟──────────────────────────────────────────╢ ║·· security/rick-dangerous-ii-french.html ║ ╙──────────────────────────────────────────╜ ============================================================================ Title ..: Rick Dangerous II [FRENCH] Author .: staff Date ...: 2008-01-21 Section : Security ============================================================================ Rick Dangerous II Rick Dangerous II © Core Design Vous aurez besoin de ce qui suit: 1. Le jeu Original ou bien l?IPF 2. Un Amiga ou WINUAE 3. Action Replay III ou l?image ROM 4. DU Papier et UN crayon 5. Deux disquettes vierges  – vous les trouverez dans votre boutique Amiga locale la plus proche 6. L? AR IV – trouvable sur romshare.net 7. Le Kickstart EN version 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 breakpoint (point d?arrêt) ex : BS 72000 l?AR 3 s?activera automatiquement dès que le programme passera sur cette adresse. – F est la commande qui permet de trouver une chaine héxadécimale F veut dire Find (trouver) ex : ``` F 48 7A ``` – FA veut dire Find Adress (trouver adresse) ex : FA 187A6 permet de trouver l?adresse 187A6 dans les lignes de code assembleur – LM veut dire Load Main (charger programme principal) ex : LM prog, 30000 40000 le programme sera chargé sur la plage mémoire 30000 à 40000. – M permet de voir la mémoire, tel que vérifier si on a de la place libre sur le bootblock pour y mettre un patch. ex : ``` M 50492 ``` – ROBD (spécifique à l?AR4) permet le décryptage automatique du système de protection RNC. – SM veut dire Save Main (sauver programme principal) ex : 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 ex : ``` 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 patché par exemple. – X permet de sortir de l?action replay 3 – ``` BOOTCHK 70000 ``` permet de recalculer le checksum du bootblock quand on l?a modifié. ON PASSE AUX CHOSES SERIEUSES : LE DEPLOMBAGE DU JEU – Commencez par faire une copie de la disquette de jeu originale. Vous remarquerez une erreur sur la piste 0. Donc on va s?occuper d?une protection sur disquette. Laissez-moi vous surprendre: C?est un copylock? Quand la protection plante, elle fout 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 : A) Bootez la copie du jeu, et entrez dans l?AR quand ça fige. B) Cherchez le ou les copylocks: ``` F 48 7A ``` L? AR 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. ![image001.jpg](../assets/img/tutorials/rick-dangerous-ii-french/image001.jpg) Prenez un des copylocks à sauver. – Désassemblez par exemple l?adresse 10084, maintenez la touche enter appuyée et relachez là quand du code non-encrypté apparait. 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: SM COPYLOCK,10084 10972. – Lancez l? AR IV et activez la avec le bouton droit de la souris. – Chargez dedans le copylock sauvé, démarrant à l?adresse 50000: LM COPYLOCK,50000 ![image002.jpg](../assets/img/tutorials/rick-dangerous-ii-french/image002.jpg) – Activez le décrypteur RNC – intégré: ROBD – Désassemblez l?adresse 50000 et stoppez quand la « seconde » partie du copylock apparait: ![image003.jpg](../assets/img/tutorials/rick-dangerous-ii-french/image003.jpg) Cette partie nous pose des problèmes, étant donné qu?elle vidange la clé copylock du registre de donnée D0 alors on ne peut pas la lire, lorsque le copylock a été lancé. La routine démarre à l?adresse 50818, alors : – insérons 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 quatres 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 apparaitra comme étant encrypté. – Bootez le jeu original et entrez dans l?AR 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 : ``` F 26 3E 25 F0. ``` L? AR retourne trois adresses. D?ou nos trois copylocks? – Regardez les opcodes pour la première adresse avec : ``` M 1089C ``` + entrée. – Insérez les nouveaux opcodes, et n?oubliez pas d?appuyer sur entrée quand c?est fait. – Quittez l?AR et attendez quelques secondes pour que le jeu se fige. ![image004.jpg](../assets/img/tutorials/rick-dangerous-ii-french/image004.jpg) – Entrez dans l?AR et tapez R et 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?AR IV à nouveau et chargez le copylock sauvegardé: LM COPYLOCK,50000 – Activez le décrypteur RNC: ROBD. – Désassemblez l?adresse 50000 et arrêtez-vous quand ceci apparait: ![image005.jpg](../assets/img/tutorials/rick-dangerous-ii-french/image005.jpg) L?adresse 5042A est celle qui nous intéresse. Ce code apparait dans la majorité des copylocks et c?est là que nous allons cabler 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 ça, il n?y a plus besoin que la partie qui concerne l?accès disk soit 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 appparait é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. ![image006.jpg](../assets/img/tutorials/rick-dangerous-ii-french/image006.jpg) 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 ça que pour voir les nouvelles opcodes. – Tapez M 5042A pour voir les nouvelles opcodes ENCRYPTEES? On est toujours en mode ROBD, ce qui fait que le code normal apparait sous forme de code encrypté. ![image007.jpg](../assets/img/tutorials/rick-dangerous-ii-french/image007.jpg) 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: ``` RT 24 A 30000. ``` ![image008.jpg](../assets/img/tutorials/rick-dangerous-ii-french/image008.jpg) – Cherchez les opcodes dont vous avez pris note un peu plus tôt, démarrant à l?adresse 30000: F A8 B2 C7 85, 30000 L? AR retourne trois adresses. – Insérez les nouveaux opcodes aux trois adresses et n?oubliez pas d?appuyez sur entrée après chaque modification. ![image009.jpg](../assets/img/tutorials/rick-dangerous-ii-french/image009.jpg) – Sauvegardez les pistes en les réécrivant: ``` WT 24 A 30000 ``` ![image010.jpg](../assets/img/tutorials/rick-dangerous-ii-french/image010.jpg) – Testez votre nouveau déplombage. ET SI ON LUI METTAIT UN TRAINER A CE PUTAIN DE JEU ? Ca 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émarrer le jeu et ne faites rien ! Vous avez 6 vies au départ. – Entrez dans l?AR et lancez le mode TRAINER: TS 6 ![image011.jpg](../assets/img/tutorials/rick-dangerous-ii-french/image011.jpg) – Sortez de l?AR et perdez UNE vie. – Entrez dans l?AR à 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?AR et tapez ? T 5 ?. Continuez de cette façon et faites de même avec les bombes. Vous finirez avec ces adresses: Vie: 178AF / 178AE Balles: 17893 / 17892 Bombes: 178A1 / 178A0 Ces adresses ont l?air un peu bizarre, 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: FA 178AE L?AR retourne six adresses. L?adresses 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?ou les vies illimitées ! ![image012.jpg](../assets/img/tutorials/rick-dangerous-ii-french/image012.jpg) Jettez un coup d?oeil à l?instruction avec M 13C22. Celà 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 patch, 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: Vie: 13C26 Balles: 13F14 Bombes: 13B38 Trouvons un moyen, pour patcher ces adresses, avant que le jeu ne démarre. – Bootez le jeu et entrez dans l?AR 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 frappez entrée un certain nombre de fois. ![image013.jpg](../assets/img/tutorials/rick-dangerous-ii-french/image013.jpg) On a un ? JMP 10000 ? à l?adresse 70024. – Collez un breakpoint à cette adresse et sortez de l?AR: BS 70024 – Quand le jeu atteint l?adresse, l?AR jaillira à l?écran. Quand ça se produit, essayez de désassembler les adresses qui retirent # 1 à l?adresse de comptage. ![image014.jpg](../assets/img/tutorials/rick-dangerous-ii-french/image014.jpg) 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: ``` RT 2 2 30000 ``` – Trouvez le JMP: FA 10000 30000 L?AR retourne l?adresse 30078. – Assemblez cette adresse et insérez un ? JMP 100 ? ![image015.jpg](../assets/img/tutorials/rick-dangerous-ii-french/image015.jpg) – Sauvegardez la piste sur la disquette: ``` WT 2 2 30000 ``` – Etape suivante, il faut trouvez un endroit sur la disquette pour notre trainer et un moyen de le déplacer à l?adresse 100. – Commencez par lire le boot block en mémoire, en commencant par l?adresse 70000: ``` RT 0 1 70000 ``` Observez la mémoire avec : N 70000 + frappez entrée un certain nombre de fois. ![image016.jpg](../assets/img/tutorials/rick-dangerous-ii-french/image016.jpg) Il y a plein d?octets libres. Assemblez 70100 et codez le trainer: ![image017.jpg](../assets/img/tutorials/rick-dangerous-ii-french/image017.jpg) Désassemblez le début du boot code pour déterminer comment déplacer notre trainer en mémoire: ![image018.jpg](../assets/img/tutorials/rick-dangerous-ii-french/image018.jpg) 7005C saute (jmp) dans le code, que le boot block charge en mémoire. – On va changer ça 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 patch du boot block à l?adresse 100: Ce code, déplacera le contenu du boot block depuis l?offset 0 et 0 en quantité de donnée en mémoire, en démarrant à l?adresse 100. En d?autres mots, il déplace notre trainer à l?adresse 100. ![image019.jpg](../assets/img/tutorials/rick-dangerous-ii-french/image019.jpg) – Quand c?est fait, corrigez le checksum du boot block: ``` BOOTCHK 70000 ``` – Sauvegardez le boot block sur disquette une fois recalculé: ``` WT 0 1 70000 ``` Lorsque vous lancez le jeu, il charge pendant un moment et un écran bleu apparait. Appuyez sur le bouton gauche de la souris pour le mode trainer ou celui de droite pour le mode normal. ![image020.jpg](../assets/img/tutorials/rick-dangerous-ii-french/image020.jpg) UN IMMENSE MERCI A ROB DE FLASHTRO POUR M?AVOIR PERMIS DE TRADUIRE SES TUTOS EN FRANCAIS. En espérant que ça permettra à ceux qui sont intéressés de comprendre comment patcher un copylock. Pas d?inquiétude pour le fait de retirer le copylock, puisque ROB NORTHEN A DONNE A LA COMMUNAUTE 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ù ! FLASHTRO FRENCH DIVISION. ---------------------------------------------------------------------------- -- rapid1337.com -- The dumping ground for all things tech // knowledge is the weapon --