Ce cours est un reflet fidèle du cours intégré au crack de ma création de winrar 3.40 bêta 6 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 : :00428D4AE8714E0100 | Call 0043DBC0 | :00428D4F803DA02F440000 | cmp byte ptr [00442FA0], 00 | :00428D56741A | je 00428D72 | :00428D588D542434 | lea edx, dword ptr [esp+34] | * Possible Reference to String Resource ID=03014: "Registered to" | 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 : :0043488333C0 :00434885E8DEF9FFFF :0043488AA2A02F4400 | 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. :004446B7E8B6BB0400 | Call 00490272 | :004446BC803D78F7490000 | cmp byte ptr [0049F778], 00 | :004446C37449 | je 0044470E | :004446C5BE74F14900 | mov esi, 0049F174 | :004446CA8DBD34F5FFFF | lea edi, dword ptr [ebp+FFFFF534] | :004446D0B981010000 | mov ecx, 00000181 | :004446D5F3 | repz | :004446D6A5 | 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 :0044CF2B803D78F7490000 | cmp byte ptr [0049F778], 00 | :0044CF327410 | je 0044CF44 | :0044CF34803D74F1490000 | cmp byte ptr [0049F174], 00 | :0044CF3B7507 | jne 0044CF44 | :0044CF3DC60578F7490000 | 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 placede 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 :004409D033C0 :004409D2E895970000 :004409D7A278F74900 :004409DC33C0 | 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à
:0044A1947414 :0044A196B001 | 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
|