Crack in France
par pifoman

 
 

Ce cours est un reflet fidèle du cours intégré au crack de ma création de CloneDVD 2.5.4.3 fr

 

INFOS SUR LE CRACK

 

Nom du prog

CloneDVD 2.5.4.3

Editeur

http://www.slysoft.com

Téléchargeable

http://www.slysoft.com/download/SetupCloneDVD.exe

Date du progMercredi 24 novembre 2004
Date du crackLundi 20 décembre 2004
Réalisé parPifoman
Url site

http://membres.lycos.fr/pifoman/pif.php

Url redirectionhttp://www.geocities.com/mitonne/pif.htm

 

COMMENTAIRES SUR LE PROGRAMME

 

       CloneDVD 2 copie les films en qualité supérieure. Quoique’il soit un film principal ou d’une DVD complète - CloneDVD compresse même des matériaux de film très longs en qualité brillante et vitesse impressionnante: Une technologie spéciale de transcodage compresse votre choix de titre DVD avec les paramètres audio et les sous-titres sélectionnés sur la taille de destination que vous pouvez ajuster vous-même.

       Le film d’instruction vous guidera étape par étape à travers les paramètres. Avec l’aide d’une prévisualisation vidéo vous pouvez regarder les titres DVD et décider, si vous découpez les chapitres non désirés. Des barres de qualité indiquent comment la compression des données affecte la qualité du film. Egalement ceux qui ne sont pas d’expert en la matière auront toujours l’aperçu.

  

LIMITATIONS

 

    1 - Packer ASProtect 1.23 Rc4 qui empêche le désassemblage.
    2 - 21 jours d'utilisation maximum.
    3 - Ecrans de harcèlement (Nag-screen).
    4 - Version d'évaluation dans le menu A propos.
    5 - Résidu "unregistered" dans le code désassemblé.
    6 - Message sur les copies illégales de DVD dans le menu A propos.

 

LES OUTILS

 

w32dasm 8.9
Pour désassembler le progamme (transformation en langage d'assemblage)
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 impliqué en regardant la barre de statut de w32dasm 8.9.
On utilise ce même offset dans WinHex pour effectuer physiquement la modification.

ProcDump32
Pour éditer et modifier les sections d'un exécutable.

PEid 0.92
Pour détecter le packer qui a été utilisé pour protéger une application.

Stripper v2.11 rc2
Pour retirer les protection Aspack et ASprotect et obtenir un exécutable désassemblable.
Cela permet dans w32dasm d'avoir un listing de désassemblage et de voir les string data référence.

 

ASSEMBLEUR

 

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 l'adresse écrite sous forme hexadécimale qui suit le EB

90
 Code hexadécimal qui se traduit en assembleur par "ne rien faire" (= nop = No OPeration). 

 

LE CRACK

 

          Détail des modifications CloneDVD2.exe

OctetAdresse OffsetOriginalCrackéEffet
1

0040E077

D677

0F90Retrait du time-limit de 21 jours

2

0040E078

D678

85

E9

3

0040E262

D862

E8

90

Retrait du nag screen à l'ouverture

4

0040E263

D863

A6

90

5

0040E264

D864

72

90

6

0040E265

D865

FF

90

7

0040E266

D866

FF

90

8

0045763B

56C3B

7A

00

On efface les informations d'évaluation dans A propos

9

0040C485

BA85

74

EB

On enlève le "unregistered" restant

10

00463F61

63561

50

9C

On remplace un message sur les copies de DVD illicites par "Enregistré à".

 

ANALYSE  DU  PROGRAMME

 

        CloneDVD2.exe

 

        Aujourd'hui on s'attaque à un logiciel très connu dans le monde de copie de DVD.

        Comme d'habitude lorsque l'on commence le craquage d'un programme on commence par le désassembler et ensuite le débugger pour y repérer les failles qui nous serviront à élaborer par la suite le crack. Le désassembleur / débuggueur que j'ai l'habitude d'utiliser et dont on va se servir c'est w32dasm. Cette introduction faite nous pouvons commencer.

         On ouvre donc le logiciel CloneDVD2.exe dans le désassembleur w32dasm par la commande ommande Disassembler -> Open File to disassemble -> CloneDVD2.exe. On s'attend comme d'habitude à trouver un listing de désassemblage avec un suite de lignes de code en assembleur. Seulement avec ce programme rien n'apparaît ni dans le listing de désassemblage, ni dans les string data référence qui nous servent d'ordinaire à repérer où se trouve la protection (on accède aux string data référence par le bouton nommé Strn Ref dans la barre de bouton de w32dasm).

          

          1 ière analyse

         Premier réflexe face à ce type de situation (qui arrive systématiquement chez les logiciels distribués par slysoft) c'est de se dire que l'on est présence d'un packer. Un packer c'est quoi et ça sert à quoi vous me direz ? Eh bien c'est un programme qui recode un exécutable en compressant et cryptant certaines parties de cet exécutable (la section de code notamment).Cela a pour conséquence de réduire en taille l'exécutable ainsi généré mais surtout de le protéger contre tout désassemblage et tout déboguage que nous cracker nous menons systématiquement pour retirer les protections incluses dans le logiciel. Ce type de protection est aussi bien adapté aux versions de type shareware puisque un packer gère en général la durée maximum d'utilisation du logiciel (time-limit).

         En regardant les quelques lignes d'informations qui précèdent le listing de désassemblage vierge que l'on a obtenu dans w32dasm on peut détecter la présence du packer en particulier si on regarde les lignes marquées object01, object02 ... Vous voyez en effet que tous les objets (9 au total) ont tous leur flags (en français caractéristique) à C00000040. Cette suite de bytes nous empêche de désassembler CloneDVD2.exe et d'avoir les string data références.

         Pour pouvoir désassembler et obtenir les strings data référence il suffit que chacun des objets (on parle encore de sections) ait comme caractéristique E00000020 c'est à dire que chacune des sections soit readable writable et exécutable. Comment fait-on ce changement ? On utilise un éditeur de sections comme ProcDump32 (la version finale c'est la version 1.6.2). On ouvre une copie de CloneDVD2.exe dans ProcDump32 en cliquant sur le bouton PEeditor de ProcDump32 puis sur le bouton Sections.Sur chacune des sections dans la colonne Name faites un clic droit -> Edit section -> section characteristics : E00000020. Validez par OK puis OK. Les sections sont maintenant modifiées.

         Ouvrons l'exécutable copie de CloneDVD2.exe ainsi modifié dans w32dasm. Le logiciel maintenant se désassemble mais nos string data référence ne sont toujours pas plus bavardes. De plus si vous débugguez copie de CloneDVD2.exe en faisant CTRL L suivi de F9 dans w32dasm vous avez le droit à un message d'erreur du packer qui nous dit "File corrupted ! Please run a virus check,then reinstall the application". Bref on va choisir un meilleure solution que celle qu'on a choisi. On va chercher la signature du packer utilisé pui on va unpacker le programme pour ensuite pouvoir le désassembler avec de vrais string data références.

 

           2 ième analyse

              a/ Trouver le packer utilisé

          Pour cela il nous faut un logiciel très bien fait qui s'appelle PEiD (version 0.92). Vous le lancez et cliquez les ...Vous allez chercher CloneDVD2.exe. Eh là vous voyez apparaître le nom du packer utilisé suivi du nom de son créateur "ASProtect 1.23 RC4 - 1.3.08.24 -> Alexey Solodovnikov".
 

              b/ Présentation du packer Asprotect 1.23 RC4

          Asprotect est une version améliorée d'un packer existant (du même auteur) s'appelant Aspack. Il est écrit en delphi et s'adapte à n'importe quel type d'exécutable. Il protége le logiciel d'origine sur plusieurs niveaux :

                -> Il compresse et encrypte le programme original.
                -> Il détecte et empêche tout débogage avec softice (il n'y en a pas dans cette version du packer).
                -> Il renomme en en effaçant leur nom les sections du programme d'origine (c'est le cas pour CloneDVD2.exe)
                -> Il détruit et redirige la table des imports des fonctions API (IAT) vers lui-même (problème en cas de dump).
                -> Il inscrit la limite de temps dans le registre au niveau de la clé HKEY_CURRENT_USER\Software\AProtect\.


                Quelques précisions supplémentaires

                -> IAT signifie Import Address Table : c'est une table qui contient les adresses des références aux fonctions utilisées par le programme. Ces fonctions sont encodées dans des fichiers dll par exemple la fonction MessageBoxA de la dll user32.dll.
                -> Un dump d'exécutable (en français vidage d'exécutable) est la fait de copier sur le disque dur un programme qui est en cours d'exécution dans la mémoire centrale. On fait un dump d'exe avec ProcDump en cliquant droit dans la liste des programmes affichés par procdump qui tournent en mémoire sur le programme qui nous intéresse et en choisissant l'option Dump Full. Le dump permet d'avoir l'exécutable décompressé. Le packer après avoir décompressé tout le programme en mémoire laisse la main au programme. A savoir : tout programme tournant en mémoire centrale est décompressé.

                -> Pour une présentation plus poussée du packer je vous invite à aller à cette adresse :
                     http://elooo.fff.free.fr/consult/Unpacking_aspr1.23_elooo/

 

              c/ Unpacking

          L'unpacking c'est l'art de décompresser un programme qui a été au préalable packé par un soft. Dans notre cas on va chercher à unpacker CloneDVD2.exe qui a été packé avec Asprotect 1.23 RC4. Deux approches sont possibles pour réaliser cet exercice :

                -> le manual unpacking avec le debugger ollydbg : on fait l'unpacking à la main.
                -> l'unpacking avec un unpacker : on laisse l'unpacking à un logiciel.

          En cherchant sur le net vous trouverez un unpacker pour Asprotect 1.23 RC4. C'est Stripper v2.11 rc2 crée par syd. Il est téléchargeable sur son site à l'adresse http://syd.nightmail.ru

          Si vous voulez vous initier et développer vos connaissances en unpacking je vous conseille le site de la FFF (team française très connue dans le monde du cracking) : http://unpacking.free.fr

          

              d/ Unpacker CloneDVD avec Stripper

          Rien de compliqué. Tout est automatique. Veillez à mettre Engine.sys dans le même répertoire que Stripper avant de commencer. Ensuite vous cliquez sur le bouton Open de Stripper et choisissez CloneDVD2.exe et vous cliquez sur Unpack. Vous voyez apparaître l'IAT dont je parlais tout à l'heure dans une nouvelle fenêtre. Faites Save. Le processus de décompression et de réallocation des adresses de l ' IAT s'est bien passé. Le logiciel malgré une Unrecognized function at address: 00fb3861 affiche done ....Stripper a généré dans le même répertoire que CloneDVD2.exe le fichier _CloneDVD2.exe. _CloneDVD2.exe c'est la version unpackée de CloneDVD2.exe. Au passage on note que l'exécutable est passé de 1.80 Mo à 4.35 Mo. Cliquez sur Exit pour terminer l'unpacking.

 

              e/ Craquage de la version unpackée de CloneDVD2

          On va travailler maintenant uniquement sur la version unpackée de CloneDVD. On l'ouvre dans le désassembleur w32dasm par la commande ommande Disassembler -> Open File to disassemble -> _CloneDVD2.exe. Là on voit que le programme se désassemble avec de vrai string data référence. Certains flag C0000040 caractériques du packer ont disparu en particulier la section .text qui a maintenant comme caractéristique E00000020. La section .text est la section la plus importante des programmes type PE (PE = portable executable) : elle contient le point d'entrée du programme (en anglais l'entry point).

                  e-1/ Retrait du time-limit

          Deuxième étape : l'étude des string data références (accès par le bouton nommé Strn Ref dans la barre de bouton de w32dasm). On fait Copy All dans la fenêtre qui s'affiche et on colle le tout dans notepad.exe. On fait une recherche dans notepad d'une chaîne qui nous parle d'évaluation. On trouve "Unregistered evaluation version!" et "Your evaluation period of %1 has ". Revenons à w32dasm et faisons CTRL S pour aller au début du code du programme et ensuite dans la fenêtre des string data reference de w32dasm cliquons sur "Your evaluation period of %1 has ". Il n'y a qu'une seule occurence.

 

 
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0040DDC6(C), :0040DDD6(C)
 
:0040E07083BD30FFFFFF02 cmp dword ptr [ebp+FFFFFF30], 00000002
:0040E0770F85D5000000 jne 0040E152
...
 
* Possible StringData Ref from Data Obj ->"Exit"
 
:0040E0A16830FA6E00 push 006EFA30
...
 
* Possible StringData Ref from Data Obj ->"Your evaluation period of %1 has "
->"expired!"
 
:0040E0B96860F86E00 push 006EF860
...
 
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040E077(C)
 
:0040E152399D30FFFFFF cmp dword ptr [ebp+FFFFFF30], ebx
:0040E1580F843B020000 je 0040E399
:0040E15E53 push ebx
:0040E15F8D45D0 lea eax, dword ptr [ebp-30]
 
* Possible StringData Ref from Data Obj ->"Continue"
 
:0040E1626854F86E00 push 006EF854
:0040E16750 push eax

 

           Je crois que c'est clair. J'explique quand même. En 0040E077 vous avez un saut qui vous permet de passer par dessus le Exit et le "Your evaluation period of %1 has expired!" et d'arriver sur "continue". Eh bien pour qu'on puisse utiliser le logiciel au dela de 21 jours il n'y a qu'à forcer le saut en 0040E077.

           On récupère l'offset correspondant à l'adresse 0040E077.C'est écrit en bas dans la barre de statut de w32dasm quand vous sélectionnez dans w32dasm la ligne d'adresse 0040E077.En effet en bas vous voyez marqué @offset 0000D677h : l'offset c'est D677. Vous ouvrez une copie de _CloneDVD2.exe dans winhex puis faites ALT G -> D677 et vous remplacer le code hexadécimal en rouge par sa nouvelle valeur
 

            :0040E077 0F85D5000000            jne 0040E152
            remplacé par
            :0040E077 90                                 nop
            :0040E078 E9D5000000                jmp 0040E152
 

            Vous enregistrez et avancez la pendule de windows d'un an et vous lancez le programme modifié. Le programme est évaluable ad vitam aeternam.

 

                   e-2/ Retrait du nag-screen

             On prend  la version originale du programme unpacké. On la désassemble dans w32dasm et on va la débugger en utilisant ce que l'on a fait. Le nag-screen en question qui s'affiche nous dit que "CloneDVD 2 n'est pas enregistré, vous avez utilisé 12 jours des 21 jours d'évaluation de cloneDVD2". On charge _CloneDVD2.exe en mémoire par CTRL L dans w32dasm puis on pose un bp (breakpoint ou point d'arrêt) en sélectionnant la ligne d'adresse 0040E077 suivi de F2. On met un bp sur 0040E077 car le programme au démarrage va passer sur cette adresse pour voir s'il doit continuer ou s'arrêter (relisez le paragraphe e-1) ie il va se poser la question s'il doit continuer l'évaluation ou l'arrêter ? Ensuite on fait F9. w32dasm break (s'arrête) sur 0040E077.Comme il nous reste 12 jours pour évaluer CloneDVD si vous faites F8 (exécution pas à pas sans entrer dans les calls mais en les exécutant quand même) sur 0040E077 il saute vers 0040E152 et arrive sur continue (logique !) (relisez le paragraphe e-1 si vous n'avez pas compris). Si vous faites F8 plusieurs fois vous passez sur

              * Possible StringData Ref from Data Obj ->"%1 is not registered, you have "
                                                                             ->"%2 of %3 days left to evaluate "
                                                                             ->"%4."

             Vous arrivez en continuant les F8 sur

             :0040E262 E8A672FFFF              call 0040550D

             Là le nag se lance si vous faites 1 fois F8. Vous terminez la session de debugging par CTRL T et vous en relancez un nouvelle session de debugging de _CloneDVD2.exe avec CTRL L et vous mettez avec F2 un bp sur la ligne d'adresse 0040E262.Vous lancez le programme dans le debugger avec F9.w32dasm break sur 0040E262.Vous faites F7 pour descendre dans le call et voir ce qu'il y a dedans.

 

 
* Referenced by a CALL at Addresses:
|:0040DE62 , :0040DFD0 , :0040E262 , :0044E905 , :004503E3
 
:0040550D55 push ebp
:0040550E8BEC mov ebp, esp
...
:004055286A00 push 00000000
:0040552AE870FFFFFF call 0040549F
:0040552F83C424 add esp, 00000024
:004055325D pop ebp
:00405533C3 ret

 

             A la vue du code on ne peut pas mettre un ret en 0040550D pour terminer l'exécution du call amorcé en 0040E262 et empêcher l'appel au nag. En effet si vous allez voir aux adresses 0040DE62 , :0040DFD0 , :0040E262 , :0044E905 , :004503E3 vous avez à chaque fois le chargement d'un message affiché par l'application par exemple à l'adresse 0040DE62  vous avez un peu plus haut "To use %1, you need to exchange your serial code with an online key.".Si on met un ret en 0040550D 4 messages de l'application d'origine auront disparus. Ce n'est pas ce qu'on veut nous on veut juste annuler le nag d'ouverture.

             Conclusion : comme je n'ai pas les moyens de tester plus en détail le logiciel (je n'ai pas de graveur de DVD ni de DVD) je suggère de nopper le call en 0040E262 ie

             :0040E262 E8A672FFFF              call 0040550D
             
devient
             :0040E262 9090909090                nopnopnopnopnop

              L'offset correspondant à l'adresse 0040E262 et donné par w32dasm est D862.On charge dans winhex la copie de _CloneDVD2.exe et on fait ALT G -> D862. On écrit 9090909090. On teste et le nag a disparu.

 

                   e-3/ Retrait du "Version d'évaluation non enregistrée" dans le menu A propos

              Dans les string data reference on voit la chaîne "Unregistered evaluation version!". Si on clique dessus on arrive à un seul endroit dans le code :

 

:0045763A757A jne 004576B6
...
:004576B1E902010000 jmp 004577B8
 
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0045763A(C)
 
:004576B653 push ebx
:004576B78D45EC lea eax, dword ptr [ebp-14]
 
* Possible StringData Ref from Data Obj ->"Unregistered evaluation version!"
 
:004576BA682C546F00 push 006F542C
...
 
* Possible StringData Ref from Data Obj ->"You have %1 of %2 days left to "
->"evaluate %3." 
:004576F96800546F00 push 006F5400
...
 
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004576B1(U)
 
:004577B88B86C8000000 mov eax, dword ptr [esi+000000C8]

 

              On voit en 0045763A un saut conditionnel vers "Unregistered evaluation version!" suivi d'un passage sur "You have %1 of %2 days left to evaluate %3" et en 004576B1 un saut par dessus ces 2 messages.C'est ce qu'on veut non ? On annule le saut en 0045763A comme ça en 004576B1 on évite les 2 messages. On remplace dans copie de _CloneDVD2.exe ouvert dans winhex le code hexédécimal en rouge à l'offset 56C3A (faites dans winhex ALT G ->56C3A)

              :0045763A 757A                    jne 004576B6
              par
              :0045763A 7500                     jne 0045763C

              On enregistre et on lance copie de _CloneDVD2.exe on.plus de version d'évaluation ni de décompte des jours restants pour l'évaluation dans le menu A propos.

 

                   e-4/ Retrait du "unregistred"

              Si on continue la fouille dans les string data references on voit la chaîne "unregistred"

 

:0040C47EE86C52FFFF call 004016EF
:0040C48385C0 test eax, eax
:0040C4857426 je 0040C4AD
 
* Possible StringData Ref from Data Obj ->"unregistered"
 
:0040C4876858F76E00 push 006EF758
 
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0040C485(C), :0040C49E(C)
...
 
* Possible StringData Ref from Data Obj ->"all"
 
:0040C4ADBF54F76E00 mov edi, 006EF754

 

              Terminons dans w32dasm la session courante de debugging avec CTRL T et réouvrons en une nouvelle avec la commande CTRL L ( _CloneDVD2.exe au prélable désassemblé dans w32dasm). Si un pose un bp sur la ligne d'adresse 0040C485 suivi d'un F9 pour démarrer _CloneDVD2.exe on voit que cette ligne n'est pas utlisée au lancement de _CloneDVD2.exe. En effet malgré le bp posé w32dasm ne s'arrête pas dessus au moment où le programme s'exécute. Par mesure de sécurité on va quand même chercher à éviter le unregistered en forçant le saut de 0040C485 vers 0040C4AD Pour cela dans on va dans winhex et on ouvre copie de _CloneDVD2.exe et on se positionne par ALT G-> BA85 à l'offset BA85 et on remplace le code en rouge suivant :

              :0040C485 7426                    je 0040C4AD
              par
              :0040C485 EB26                   jmp 0040C4AD

              On enregistre ensuite la modification par CTRL S dans winhex.

 

                   e-5/ Bonus : retrait du message "Veuillez ne pas utiliser ce logiciel pour effectuer des copie illégales ..."

              Quand on va dans la le menu A propos on a un message nous disant "Veuillez ne pas utiliser ce logiciel pour effectuer des copies illégales de DVD protégés par les droits d'auteurs". Comme ces derniers temps c'est une phrase qui revient un peu trop souvent à mon goût dans les médias avec la croisade menée par les maisons du film contre les téléchargements pirates on va s'occuper de la supprimer.

              Pourquoi suppprimer cette phrase? Parceque si on fait les modifications énoncées dans le paragraphe e-3 sur la chaîne "Unregistered evaluation version!" cette phrase sur les copie illégales de DVD reste toujours dans le logiciel dans le menu A propos. Dans le code désassemblé de _CloneDVD2.exe si vous faites une recherche vous trouvez cette phrase sous la traduction "Please do not use this software to make illegal copies of copyrighted DVDs.".Voici l'adresse (en bleu) où le message est appelé par le programme :

 
* Possible StringData Ref from Data Obj ->"Please do not use this software "
                                                                        ->"to make illegal copies of copyrighted "
                                                                        ->"DVDs." 
 
 
:00463F6068509D6F00 push 006F9D50
:00463F6550 push eax
:00463F66E83A4B0000 call 00468AA5

 

              Le message à supprimer se trouve à l'adresse 006F9D50. Comment est ce que je sais ça ? Eh bien dans w32dasm si je fais CTRL T (au cas où une session de debbuging est en cours) et si je relance une nouvelle session de debugging par CTRL L de  _CloneDVD2.exe (au prélable désassemblé dans w32dasm) et que je met un bp sur la ligne d'adresse 00463F60 (selectionnez la ligne puis F2 dessus) suivi d'un F9 (pour lancer le debugging) j'observe que w32dasm break (vous entendez un bing). Il est arrêté sur la ligne d'adresse 00463F60 que le programme  _CloneDVD2.exe a cherché à exécuter.

              On va alors dans la grande fenêtre du debugger (celle qui s'était ouverte quand on avait fait CTRL L). On tape en dessous de User Addr 1 l'adresse 006F9D50 et on voit le contenu de cette adresse au centre de la grande fenêtre du debugger en cliquant sur le bouton UA1 (juste à droite de User Addr 1). Voici une partie de ce que l'on y voit :

               [006F9D50] - 61656c50   Plea
               [006F9D54] - 64206573   se d
               [006F9D58] - 6f6e206f     o no
               [006F9D5C] - 73752074   t us
               [006F9D60] - 68742065   e th
               [006F9D64] - 73207369   is s

               C'est bien le message à supprimer.Pour faire diparaître le message il n' y donc juste besoin de mettre une fausse adresse à la place de 006F9D50. Par exemple on peut faire le changement suivant. On va mettre "enregistré à" la place de "Veuillez ne pas utiliser ce logiciel pour effectuer des copies illégales de DVD protégés par les droits d'auteurs". Le "enregistré à" ça correspond au "registered to". Il suffit donc de remplacer l'adresse 006F9D50  pas l'adresse  006F9D9C.

 
* Possible StringData Ref from Data Obj ->"Registered to:"
 
:00463EFC689C9D6F00 push 006F9D9C
:00463F0150 push eax
:00463F02E89E4B0000 call 00468AA5

 

               On fait donc dans winhex par la commande ALT G -> 63560 le changement suivant (on a d'abord ouvert dans winhex copie de _CloneDVD2.exe et on ne change que le code hexadécimal en rouge)

               :00463F60 68509D6F00              push 006F9D50
               
remplacé par
               :00463F60 689C9D6F00             push 006F9D9C
 

               On enregistre et on relance copie de _CloneDVD2.exe. On est bien enregistré dans le menu A propos ...

               Encore un dernier point si vous voulez mettre votre nom par exemple "Enregistré à Pifoman". Vous retourner dans winhex et faites une recherche dans copie de _CloneDVD2.exe sur l'expression "registered to" par CTRL F (ne cochez pas l'option jeu de caractères unicode). Vous arrivez à l'offset 2F779C.Vous écrivez "Enregistré à " à la place de "Registered to:" suivi de votre nom lettre par lettre dans la 3 ième colonne et vous terminez par le code 00 dans la 2 ième colonne de winhex. (Le 00 est interprété comme une fin de chaîne par les programmes).

 

REMARQUES FINALES

 

      On a patché notre programme à 5 endroits en s'appuyant sur les string data references. Notre exécutable décompressé fait 4.35 Mo. Il est trop gros pour être distribué comme ça on va le compresser avec un autre packer d'exécutable très connu UPX (Universal Packer for eXecutables). On va sur http://www.exetools.com/compressors.htm et on prend la dernière version du packer la version 0.20 au 18/12/2004 pour windows (118 Ko). On met Copie de _CloneDVD2.exe et upx.exe sur le bureau et on crée sur le bureau un fichier nommé compresser.bat contenant la ligne de commande suivante :

        upx -9 --force -oCloneDVD2.exe "copie de _CloneDVD2.exe"

        On double clique sur compresser.bat et on attend un peu et on obtient CloneDVD2.exe en sortie qui est compressé (il ne fait que 1.91 Mo). On a utilisé l'option force car UPX a détecté des traces de l'ancien packer Asprotect.

 

CONCLUSION

 

         Dans ce cours vous avez appris à craquer un logiciel protégé par un packer.Ce cours a été également l'occasion de découvrir de nouveaux logiciels comme PEiD, ProcDump et Stripper et d'utiliser un packer : UPX pour compresser et distribuer plus facilement notre exécutable final sur internet.

         La réelle difficulté pour craquer CloneDVD2 est de trouver l'unpacker qui décompresse l'exécutable CLONEDVD2.exe qui est packé avec le logiciel Asprotect 1.23 RC4. L'unpacking ici nous a été simplifiée grâce à Stripper qui a fait le travail pour nous. Le craquage de CloneDVD quant à lui ne présente pas beaucoup de difficultés. Avec un peu d'expérience en moins de 10 minutes vous avez retiré toutes les protections. On comprend mieux pourquoi ils ont choisi de packer leur programme chez slysoft ...

 

Bonne nuit à tous.
Et à bientôt pour de nouveaux cours.
Pifoman

 



pifoman




Nombre de visites depuis le 31/12/2004