Ce cours est un reflet fidèle du cours intégré au crack de ma création de winrar 3.40 bêta 5 fr
COMMENTAIRES SUR LE PROGRAMME |
WinRAR est un algorithme de compression de haute performance permettant des taux de compression meilleurs que ceux obtenus avec les outils d'archive de votre PC, surtout pour les fichiers exécutables, les bibliothèques d'objets, les fichiers texte de taille importante, … C'est un utilitaire de gestion de fichiers RAR et ZIP, il compresse les fichiers jusqu'à 15% de mieux que les archiveurs basés sur ZIP. Il n'a besoin d'aucun programme pour pouvoir soit compresser soit décompresser un fichier en format ZIP et permet également de réparer des fichiers ZIP endommagés. Vous pouvez aussi ouvrir et décompresser les archives au format ARJ, LZH, CAN ou ACE. |
1- Un écran de harcèlement (Nag-screen) après 40 Jours d'évaluation. 2 - 3 fonctions désactivées : - "Activer la vérification d'authenticité"
Menu Commandes -> Ajouter des fichiers à l'archive -> Général. - "Placer les erreurs dans le journal"
Menu Options -> Configuration. - "Effacer le contenu du disque de destination avant l'archivage"
Menu Commandes -> Ajouter des fichiers à l'archive -> Sauvegarde.
|
Windasm 8.9 Pour désassembler le progamme (transformation en langage d'assemblage) et pour trouver les string data references nécessaires pour élaborer le crack. WinHex 10.2 Pour éditer l'exécutable et modifier certains octets dans le but de la cracker. On cherche l'offset trouvé dans Windasm 8.9 impliqué dans la protection et on utilise ce même offset dans WinHex pour effectuer physiquement la modification. Offset Déplacement depuis le début de la zone de code d'un programme. EB Code hexadécimal correspondant en assembleur à un saut inconditionnel (jmp). On saute tout le temps vers un endroit du code. 90 Code hexadécimal correspondant en assembleur à une instruction à rien (= nop = No OPeration). Détail des modifications rar.exe Octet | Adresse | Offset | Original | Cracké | Effet | 1 | 00434885 | 33E85 | E8 | B8 | On remplace l'instruction call 00434268 par mov eax,000001 qui met 01 dans le registre eax. Cela a pour conséquence de mettre le registre al à 01 et d'enregistrer le programme. | 2 | 00434886 | 33E86 | DE | 01 | 3 | 00434887 | 33E87 | F9 | 00 | 4 | 00434888 | 33E88 | FF | 00 | 5 | 00434889 | 33E89 | FF | 00 |
Détail des modifications winrar.exe Octet | Adresse | Offset | Original | Cracké | Effet | 1 | 0044CF43 | 4C543 | 00 | 01 | On enregistre l'utilisateur et on supprime le timer de 40 jours. | 2 | 0044A195 | 49795 | 14 | 00 | On active toutes les options désactivées dans les menus. |
Rar.exe On cherche la string data reference "registered to" dans windasm une fois que rar.exe a été ouvert dedans. On obtient ceci : :00428D4A E8714E0100 :00428D4F 803DA02F440000 :00428D56 741A :00428D58 8D542434 | Call 0043DBC0 cmp byte ptr [00442FA0], 00 je 00428D72 lea edx, dword ptr [esp+34] | * Possible Reference to String Resource ID=03014: "Registered to %s" | L'adresse 00442FA0 contient 00 qui dit que le programme est "non enregistré".On cherche alors ensuite l'instruction mov byte ptr [00442FA0] pour voir où est mis le code 00 dans l'adresse 00442FA0. On arrive ici : :00434883 33C0 :00434885 E8DEF9FFFF :0043488A A2A02F4400 | xor eax, eax call 00434268 mov byte ptr [00442FA0], al |
Le registre al contient la valeur de l'état enregistré ou non. On remplace le call qui met à jour al à 00 en mov eax,000001. Je remplace 00 par 01. En hexa cela donne B8 01 00 00 00. Le programme est alors enregistré.
Terminé pour rar.exe ! La suite ! Winrar.exe On cherche la string data reference "Registered to" dans windasm une fois que winrar.exe a été ouvert dans windasm. :004446B7 E8B6BB0400 :004446BC 803D78F7490000 :004446C3 7449 :004446C5 BE74F14900 :004446CA 8DBD34F5FFFF :004446D0 B981010000 :004446D5 F3 :004446D6 A5 | Call 00490272 cmp byte ptr [0049F778], 00 je 0044470E mov esi, 0049F174 lea edi, dword ptr [ebp+FFFFF534] mov ecx, 00000181 repz movsd | * Possible Reference to String Resource ID=00960: "Registered to" |
Remarquez l'adresse 0049F778 contient 00 qui dit que le prog non enregistré.On cherche ensuite l'instruction mov byte ptr [0049F778] pour voir où est mis le code 00 dans l'adresse 0049F778. Je trouve 2 endroits intéressants. 1 ier endroit :0044CF2B 803D78F7490000 :0044CF32 7410 :0044CF34 803D74F1490000 :0044CF3B 7507 :0044CF3D C60578F7490000 | cmp byte ptr [0049F778], 00 je 0044CF44 cmp byte ptr [0049F174], 00 jne 0044CF44 mov byte ptr [0049F778], 00 |
00 contient la valeur de l'état enregistré ou non. A l'adresse 0044CF3D je remplace le 00 par 01. Cela donne mov byte ptr [0049F778], 01 à la place de mov byte ptr [0049F778], 00. Ce passage de 00 à 01 (01 pour enregistré) a pour conséquence d'enlever le message invitant à nous enregistrer dans la barre de titre de winrar. Le menu A propos est aussi réécrit maintenant avec Registred to. Par contre les menus sont toujours verrouillés. Le craquage n'est donc pas encore terminé.
2ieme endroit :004409D0 33C0 :004409D2 E895970000 :004409D7 A278F74900 :004409DC 33C0 | xor eax, eax call 0044A16C mov byte ptr [0049F778], al xor eax, eax |
Je descend dans le call (touche F7 de windasm) pour voir ce qui se passe et on arrive là
:0044A194 7414 :0044A196 B001 | je 0044A1AA mov al, 01 |
Je remplace le 74 14 par 74 00 pour annuler le saut. Cela permet au programme de passer à l'instruction suivante et de mettre 01 dans al (grâce à l'instruction mov al,01). Cette manipulation achève notre travail. Le programme est maintenant complètement cracké. Voila c'est fini ! Bonne nuit à tous.
Nombre de visites depuis le 14/10/2004
|