Nom : FTP Expert Version : 1.20a Disponibilité : http://www.visic.com ou CD de Mutimédia magazine No 10 Protection : Time limit/Nagscreens/Limitations Objectif : S'enregistrer avec un serial bidon Outil : Windasm 8.93/softice 3.24 Cible : FTPXpert.exe (1070 Ko) Difficulté : crack de niveau B Ftp expert est un soft qui facilite la connexion à un site FTP.Comme la plupart des Sharewares il est plombé par une période d'essai,de quelques limitations et de nagscreens (l'auteur vous fait gentiment attendre quand vous quittez son prog ).Le soft possède une boite d'enregistrement que nous allons cracker en deux minutes ...On lance le soft et on va d'option pour s'enregistrer . On tape notre nom et un serial bidon et un beau nagscreen apparait: 'Mauvais numéro d'enregistrement' On prend notre windasm préféré et on desassemble le code .On cherche une chaine(dans string data reference bien sur ) ressemblant à 'mauvais numéro d'enregistrement'.On trouve quelque chose de similaire :'Mauvais num' .En cliquant plusieurs fois dessus on voit qu'elle est à beaucoup d'endroits dans le code .Et on n'est pas vraiment sur que ce soit ce que nous cherchions ( nous verrons plus loin que c'était quand même bien ça) .On va chercher le contraire , c'est à dire la chaîne qui nous remercie pour notre enregistrement ...On la trouve assez facilement dans le code : ########## Premier Desassemblage ########## :004B2D91 8B55F8 mov edx, dword ptr [ebp-08] :004B2D94 8D4DFC lea ecx, dword ptr [ebp-04] :004B2D97 A18C4B4D00 mov eax, dword ptr [004D4B8C] :004B2D9C 8B00 mov eax, dword ptr [eax] :004B2D9E E8719F0000 call 004BCD14 :004B2DA3 8D55F8 lea edx, dword ptr [ebp-08] :004B2DA6 8B83CC020000 mov eax, dword ptr [ebx+000002CC] :004B2DAC E87FFEF8FF call 00442C30 :004B2DB1 8B55F8 mov edx, dword ptr [ebp-08]------ Le serial bidon en ebp-08 :004B2DB4 8B45FC mov eax, dword ptr [ebp-04]------ Le bon serial en ebp-04 :004B2DB7 E8B811F5FF call 00403F74-------------------- Le call qui teste le serial entré :004B2DBC 0F8580000000 jne 004B2E42--------------------- et un beau saut conditionnel .... :004B2DC2 A18C4B4D00 mov eax, dword ptr [004D4B8C] :004B2DC7 8B00 mov eax, dword ptr [eax] :004B2DC9 C680F006000000 mov byte ptr [eax+000006F0], 00 :004B2DD0 8D55F8 lea edx, dword ptr [ebp-08] :004B2DD3 8B83CC020000 mov eax, dword ptr [ebx+000002CC] :004B2DD9 E852FEF8FF call 00442C30 :004B2DDE 8B45F8 mov eax, dword ptr [ebp-08] :004B2DE1 50 push eax :004B2DE2 8D55F4 lea edx, dword ptr [ebp-0C] :004B2DE5 8B83C8020000 mov eax, dword ptr [ebx+000002C8] :004B2DEB E840FEF8FF call 00442C30 :004B2DF0 8B55F4 mov edx, dword ptr [ebp-0C] :004B2DF3 A18C4B4D00 mov eax, dword ptr [004D4B8C] :004B2DF8 8B00 mov eax, dword ptr [eax] :004B2DFA 59 pop ecx :004B2DFB E830A10000 call 004BCF30 :004B2E00 6A40 push 00000040 * Possible StringData Ref from Code Obj ->'FTP Expert' :004B2E02 B98C2E4B00 mov ecx, 004B2E8C * Possible StringData Ref from Code Obj ->'Merci de votre enregistrement. '----- La chaine qu'on cherche..... ->'Le logiciel est maintenant assign' :004B2E07 BABC2E4B00 mov edx, 004B2EBC :004B2E0C A1A44C4D00 mov eax, dword ptr [004D4CA4] :004B2E11 8B00 mov eax, dword ptr [eax] :004B2E13 E8B8A1F8FF call 0043CFD0 :004B2E18 A18C4B4D00 mov eax, dword ptr [004D4B8C] :004B2E1D 8B00 mov eax, dword ptr [eax] :004B2E1F 8B8098040000 mov eax, dword ptr [eax+00000498] :004B2E25 33D2 xor edx, edx :004B2E27 E8B4F4F9FF call 004522E0 :004B2E2C A18C4B4D00 mov eax, dword ptr [004D4B8C] :004B2E31 8B00 mov eax, dword ptr [eax] :004B2E33 8B809C040000 mov eax, dword ptr [eax+0000049C] :004B2E39 33D2 xor edx, edx :004B2E3B E8A0F4F9FF call 004522E0 :004B2E40 EB18 jmp 004B2E5A Voilà : on a tout ce dont nous avons besoin pour cracker le soft ...On aurait pu trouver notre numéro de serie:regardez les commentaires.On va patcher le prog juste pour le fun... En 4B2DBC nous avons un saut conditionnel qui nous envoie à ce que nous avons trouvé tout à l'heure ('Mauvais num') . Ce saut conditionnel est précédé de trois appels (call) qui se chargent d'encoder notre nom et notre serial .Donc , si on ne fait pas effectuer le saut conditionnel au prog ,on doit être enregistré .Prenez votre éditeur hexa et rendez-vous à l'offset b21bc (comme indiqué par windasm en bas à droite de l'écran).Mettez 6 nops (90 90 90 90 90 90) et relancez ftpexpert .Tapez votre nom et un serial bidon puis validez. Le soft vous remercie de votre enregistrement.Dans 'About' il y a maintenant marqué votre nom. Quittez le soft et relancez le . Pas de pot !Dans 'About' il y a de nouveau marqué 'Usager non enregistré' .Cela veut dire que le soft véréfie autre part le serial qu'on a entré .Pas de panique dit l'homme tranquille ...La démarche est un peu,voir carrément la même que pour le crack de Mirc 5.5.On reprend windasm et on revient à la routine qui teste notre serial quand on l'entré (voir capture précédente quoi !) .Avant le saut conditionnel en 4B2DBC il y a 3 calls . Les deux premiers ne sont pas trop interressant (quoi que ...) .Par contre celui situé à l'addresse 4B2D9E nous interresse (c'est le call 4BCD14) de près .En cliquant deux fois dessus on voit ceci apparaître : ########## Second Desassemblage ########## * Referenced by a CALL at Addresses: |:004B2D9E , :004B5AAF ----------- interressant héhhéhé.... :004BCD14 55 push ebp :004BCD15 8BEC mov ebp, esp :004BCD17 6A00 push 00000000 :004BCD19 6A00 push 00000000 :004BCD1B 6A00 push 00000000 :004BCD1D 6A00 push 00000000 :004BCD1F 6A00 push 00000000 :004BCD21 6A00 push 00000000 :004BCD23 6A00 push 00000000 :004BCD25 53 push ebx :004BCD26 56 push esi :004BCD27 57 push edi :004BCD28 894DF8 mov dword ptr [ebp-08], ecx :004BCD2B 8955FC mov dword ptr [ebp-04], edx :004BCD2E 8B45FC mov eax, dword ptr [ebp-04] :004BCD31 E8E272F4FF call 00404018 :004BCD36 33C0 xor eax, eax :004BCD38 55 push ebp :004BCD39 68E9CE4B00 push 004BCEE9 :004BCD3E 64FF30 push dword ptr fs:[eax] :004BCD41 648920 mov dword ptr fs:[eax], esp :004BCD44 8D55EC lea edx, dword ptr [ebp-14] * Possible StringData Ref from Code Obj ->'FHYESTYULPVBNMCRY567AA8234452134' :004BCD47 B800CF4B00 mov eax, 004BCF00 :004BCD4C E883BCF4FF call 004089D4 :004BCD51 8D55F4 lea edx, dword ptr [ebp-0C] :004BCD54 8B45FC mov eax, dword ptr [ebp-04] :004BCD57 E878BCF4FF call 004089D4 :004BCD5C 33FF xor edi, edi :004BCD5E 8D45F0 lea eax, dword ptr [ebp-10] :004BCD61 E8826EF4FF call 00403BE8 :004BCD66 8B45FC mov eax, dword ptr [ebp-04] :004BCD69 E8F670F4FF call 00403E64 :004BCD6E 8BF0 mov esi, eax :004BCD70 85F6 test esi, esi :004BCD72 7E41 jle 004BCDB5 :004BCD74 BB01000000 mov ebx, 00000001 * Referenced by a (U)nconditional or (C)onditional Jump at Address |:004BCDB3(C) :004BCD79 8D45E4 lea eax, dword ptr [ebp-1C] :004BCD7C 8B55F4 mov edx, dword ptr [ebp-0C] :004BCD7F 8A541AFF mov dl, byte ptr [edx+ebx-01] :004BCD83 E80470F4FF call 00403D8C :004BCD88 8B45E4 mov eax, dword ptr [ebp-1C] :004BCD8B 8B55EC mov edx, dword ptr [ebp-14] :004BCD8E E8B973F4FF call 0040414C :004BCD93 85C0 test eax, eax :004BCD95 7E1A jle 004BCDB1 :004BCD97 8D45E4 lea eax, dword ptr [ebp-1C] :004BCD9A 8B55F4 mov edx, dword ptr [ebp-0C] :004BCD9D 8A541AFF mov dl, byte ptr [edx+ebx-01] :004BCDA1 E8E66FF4FF call 00403D8C :004BCDA6 8B55E4 mov edx, dword ptr [ebp-1C] :004BCDA9 8D45F0 lea eax, dword ptr [ebp-10] :004BCDAC E8BB70F4FF call 00403E6C Windasm nous indique que ce call est référencé à deux endroits dans le code .La première addresse (4b2d9e) est celle d'où l'on vient .On se rend donc à la deuxième (4B5AAF) et on tombe sur ceci : :004B5AAF E860720000 call 004BCD14------ le call qui vérifie le serial :004B5AB4 8B55E8 mov edx, dword ptr [ebp-18] :004B5AB7 58 pop eax :004B5AB8 E8B7E4F4FF call 00403F74 :004B5ABD 753C jne 004B5AFB----- le saut qui nous envoie sur 'Mauvais numéro ...' :004B5ABF 8B45FC mov eax, dword ptr [ebp-04] :004B5AC2 05F4060000 add eax, 000006F4 :004B5AC7 8B55F0 mov edx, dword ptr [ebp-10] :004B5ACA E86DE1F4FF call 00403C3C :004B5ACF 8B45FC mov eax, dword ptr [ebp-04] :004B5AD2 8B8098040000 mov eax, dword ptr [eax+000004] :004B5AD8 33D2 xor edx, edx :004B5ADA E801C8F9FF call 004522E0 :004B5ADF 8B45FC mov eax, dword ptr [ebp-04] :004B5AE2 8B809C040000 mov eax, dword ptr [eax+0000049C] :004B5AE8 33D2 xor edx, edx :004B5AEA E8F1C7F9FF call 004522E0 :004B5AEF 8B45FC mov eax, dword ptr [ebp-04] :004B5AF2 C680F006000000 mov byte ptr [eax+000006F0], 00 :004B5AF9 EB26 jmp 004B5B21 Après notre call 4bcd14 (en 4b5aaf donc ...) , il y a un autre call (si vous remarquez bien c'est le même que pour l'encodage du serial (voir premier desassemblage windasm en début d'article)) suivit d'un saut conditionnel en 4B5ABD .Ce dernier nous envoie sur 'Usager non enregistré' .On va donc le virer ce p*ù$t$ de saut ...On prend notre éditeur hexa et on se rend à l'offset B4EBD comme indiqué par windasm .On fout deux nops (90 90) .On relance le soft et on tape un serial,on valide et on quitte ftp expert .On le relance et ce coup-ci ça marche !Dans 'About' notre nom figure fièrement ...Et quand vous quittez ,il n'y a plus de nagscreen ...De même que les limitations et la période d'essai ont dégagé... Vous voulez votre numéro de serie correspondant à votre nom ?Pas de problème !On re-install FTP Expert et on reprend softice . On va arreter le prog juste avant le call qui test le serial qu'on a entré ,en 4B2DB7 (voir PREMIER desassemblage) .On charge FTP Expert avec symbol loader.On met un breakpoint en 4B2DB7 :BPX 4B2DB7 et on relance avec F5 .On va dans l'option pour s'enregistrer .On tape notre nom et un serial bidon ,qu'on valide avec entrée .Softice a du se bloquer en 4B2DB7 .Tapez E EAX : vous avez votre bon serial .... Pour ce crack ,prendre son éditeur hexa et se rendre aux offsets suivants : B21BC METTRE 90,90,90,90,90,90 B4EBD METTRE 90,90 Ou sinon : Nom : TaMaMBoLo Serial : 3E4485-STLR25-Y2Y4AE-LT2RFU TaMaMBoLo