Nom : GIF Movie Gear Version : 2.62 Disponibilité : Http://www.visic.com ou CD Mutilmedia Magazine No 10 Protection : Nagscreen/time limit Objectif : s'enregistrer avec un serial bidon Outil : Windasm 8.93 Difficulté : crack de niveau B Cible : Movgear.exe (408 Ko) Gif movie gear est un petit soft permettant de faire ,comme son nom l'indique , des gifs animés . C'est la même boite qui a fait FTP expert (voir crack précédent) . Et il y a de fortes chances pour que la protection soit la même que FTP Expert vu la gueule de l'interface (ça se ressemble non ?).Les protections sont plus qu'habituelles: nag ,période d'essai,restrictions.On va cracker la boite qui permet de nous enregistrer avec un serial. On lance GIF movie et on s'enregistre avec un serial bidon .Oh ! Le beau nagscreen ('Renseignements d'enregistrement invalides' etc..)! On prend windasm et on desassemble le code . On cherche une 'string data reference' contenant 'Renseignements d'enregistrement invalides etc..' .On la trouve sans problème .On clique dessus et windasm nous dit qu'elle est appelée à l'addresse 42BF83 .On s'y rend de suite et on tombe sur : ################ Desassemblage No 1 ################ :0042BF6F 8D4C2478 lea ecx, dword ptr [esp+78]--------- Notre nom en ESP+78 :0042BF73 8D542414 lea edx, dword ptr [esp+14]--------- Le serial en ESP+14 :0042BF77 51 push ecx---------------------------- :0042BF78 52 push edx---------------------------- on sauvegarde ECX et EDX :0042BF79 E882FCFFFF call 0042BC00----------------------- Et on test le serial :0042BF7E 83C408 add esp, 00000008 :0042BF81 85C0 test eax, eax----------------------- regarde si EAX=0 :0042BF83 0F84A6000000 je 0042C02F------------------------- oui,on saute vers 'Les renseignements etc...' :0042BF89 8D442410 lea eax, dword ptr [esp+10] :0042BF8D 8D4C240C lea ecx, dword ptr [esp+0C]-------- sinon on ecrit le nom et le numéro de série dans la base de registre :0042BF91 50 push eax :0042BF92 51 push ecx :0042BF93 6A00 push 00000000 :0042BF95 683F000F00 push 000F003F :0042BF9A 6A00 push 00000000 :0042BF9C 6844C64400 push 0044C644 :0042BFA1 6A00 push 00000000 * Possible StringData Ref from Data Obj ->'Software\gamani\GIFMovieGear\2.0' :0042BFA3 6818644400 push 00446418 :0042BFA8 6801000080 push 80000001 * Reference To: ADVAPI32.RegCreateKeyExA, Ord:011Bh :0042BFAD FF1560854600 Call dword ptr [00468560] :0042BFB3 8D7C2414 lea edi, dword ptr [esp+14] :0042BFB7 83C9FF or ecx, FFFFFFFF :0042BFBA 33C0 xor eax, eax * Reference To: ADVAPI32.RegSetValueExA, Ord:0141h :0042BFBC 8B1D68854600 mov ebx, dword ptr [00468568] :0042BFC2 F2 repnz :0042BFC3 AE scasb :0042BFC4 F7D1 not ecx :0042BFC6 8D542414 lea edx, dword ptr [esp+14] :0042BFCA 51 push ecx :0042BFCB 52 push edx :0042BFCC 6A01 push 00000001 :0042BFCE 50 push eax :0042BFCF 8B44241C mov eax, dword ptr [esp+1C] * Possible StringData Ref from Data Obj ->'RegName' :0042BFD3 6800844400 push 00448400 :0042BFD8 50 push eax :0042BFD9 FFD3 call ebx :0042BFDB 8D7C2478 lea edi, dword ptr [esp+78] :0042BFDF 83C9FF or ecx, FFFFFFFF :0042BFE2 33C0 xor eax, eax :0042BFE4 8B54240C mov edx, dword ptr [esp+0C] :0042BFE8 F2 repnz :0042BFE9 AE scasb :0042BFEA F7D1 not ecx :0042BFEC 51 push ecx :0042BFED 8D4C247C lea ecx, dword ptr [esp+7C] :0042BFF1 51 push ecx :0042BFF2 6A01 push 00000001 :0042BFF4 50 push eax * Possible StringData Ref from Data Obj ->'RegCode' :0042BFF5 6808844400 push 00448408 :0042BFFA 52 push edx :0042BFFB FFD3 call ebx :0042BFFD 8B44240C mov eax, dword ptr [esp+0C] :0042C001 50 push eax * Reference To: ADVAPI32.RegCloseKey, Ord:0117h :0042C002 FF156C854600 Call dword ptr [0046856C] * Possible StringData Ref from Data Obj ->'Software\Loani\MG260' :0042C008 6810844400 push 00448410 :0042C00D 6802000080 push 80000002 * Reference To: ADVAPI32.RegDeleteKeyA, Ord:011Eh :0042C012 FF155C854600 Call dword ptr [0046855C] :0042C018 6A01 push 00000001 :0042C01A 56 push esi * Reference To: USER32.EndDialog, Ord:00B4h :0042C01B FF1554884600 Call dword ptr [00468854] :0042C021 33C0 xor eax, eax :0042C023 5F pop edi :0042C024 5E pop esi :0042C025 5B pop ebx :0042C026 81C4D0000000 add esp, 000000D0 :0042C02C C21000 ret 0010 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0042BF83(C) :0042C02F 6A30 push 00000030------------ Le nagscreen ! * Possible Reference to String Resource ID=40213: 'Renseignements d'enregistrement invalides' :0042C031 68159D0000 push 00009D15 Donc si on vire le saut conditionnel on doit tomber sur la bonne boite de dialogue (regardez en dessous du saut conditionnel,il y a des trucs interressants (regname...)) .On prend l'editeur hexa et on se rend à l'offset 2B383 comme indiqué par windasm et on fout 6 nops (90 90 90 90 90 90) .On relance le soft et on s'enregistre :ça marche .On quitte et on relance le soft :ça marche plus .Comme pour FTP expert et mirc on reprend windasm et on retourne à la saisie du serial . Et on voit que juste avant le saut conditionnel il y a un petit call très sympathique .En cliquant dessus on voit apparaître ceci : ################ Desassemblage No 2 ################ * Referenced by a CALL at Addresses: |:0042BE39 , :0042BF79 :0042BC00 8B442408 mov eax, dword ptr [esp+08] :0042BC04 8B4C2404 mov ecx, dword ptr [esp+04] :0042BC08 50 push eax :0042BC09 51 push ecx :0042BC0A E811000000 call 0042BC20 :0042BC0F 83C408 add esp, 00000008 :0042BC12 C3 ret On s'apperçoit évidemment qu'il est appelé à deux endroits différents dans le code .Nous , on vient de l'addresse 42bf79 .Donc l'addresse 42BE39 nous interresse de près .En y allant on tombe sur ceci : ################ Desassemblage No 3 ################ :0042BE2F 8D4C2478 lea ecx, dword ptr [esp+78]-------- C'est pareil que tout à l'heure (Désassemblage 1)! :0042BE33 8D542414 lea edx, dword ptr [esp+14] :0042BE37 51 push ecx :0042BE38 52 push edx :0042BE39 E8C2FDFFFF call 0042BC00---------------------- notre call ! :0042BE3E 83C408 add esp, 00000008 :0042BE41 85C0 test eax, eax---------------------- Et on reteste :0042BE43 745D je 0042BEA2------------------------ EAX=0 on saute ! :0042BE45 8B9424E0000000 mov edx, dword ptr [esp+000000E0] :0042BE4C BB01000000 mov ebx, 00000001 :0042BE51 85D2 test edx, edx :0042BE53 7421 je 0042BE76 :0042BE55 8D7C2414 lea edi, dword ptr [esp+14] :0042BE59 83C9FF or ecx, FFFFFFFF :0042BE5C 33C0 xor eax, eax Notre fameux call (call 42bc00) est suivi d'un test conditionnel en 42BE43 .On le vire de suite .On prend notre éditeur hexa et on va à l'offset 2B243 (indiqué par windasm en bas à droite) et on y met deux nops : 90 90 . Et ce coup-ci ça marche !Vous pouvez quittez et relancez le soft autant de fois que vous voulez , ce dernier croit que vous êtes enregistré ... Pour ce crack ,prendre son éditeur hexa et se rendre aux offsets suivants : 2B383 METTRE 90 90 90 90 90 90 2B243 METTRE 90 90 TaMaMBoLo