Nom : Font Finder Version : 5.3 Disponibilité : Http://web.triton.net/fasttrax/sunshine Protection : Nag/Trial periode/limitations Tools : Softice 4.0 Font finder est un petit proggy qui permet de visualiser rapidement toutes les fontes que vous avez installez dans votre système . La protection du soft réside dans un nag qui s'affiche à chaque lancement du soft et une période d'essai de 30 jours . On va essayer de trouver le bon serial correspondant à notre nom . Step 1 Dans le soft, il y a une option qui permet de taper un serial et notre nom afin de débrider le soft . On va à cette option et on entre notre nom et serial bidon.ON NE VALIDE PAS ! Avant, on fait surgir Softice en appuyant sur CTRL D . Sous softice on tape : BPX Hmemcpy et on relance le tout avec la touche F5. Maintenant on peut valider en cliquant sur 'OK' . Softice se déclenche et se bloque au début de l'API Hmemcpy . Nous , on s'en fout de cette API : ce qui nous interresse c'est le code principal du proggy . Il faut donc remonter avant le Hmemcpy . Pour cela on utilise la touche F12. Avant d'appuyer sur F12, on efface notre breakpoint hmemcpy : sous softice, tapez BC * . Maintenant on peut appuyer 12 FOIS sur F12. Vous devriez arriver à ceci : 015F:004B717B MOV EAX,[EBP-04] --------------- on attérit ici avec Softice ... 015F:004B717E CALL 00403DFC 015F:004B7183 CMP EAX,05 --------------------- Le nom > 5 craractères ? 015F:004B7186 JL 004B71A3 ------------------ oui ! on ne saute pas... 015F:004B7188 LEA EDX,[EBP-04] 015F:004B718B MOV EAX,[EBX+000002C4] 015F:004B7191 CALL 00432DDC 015F:004B7196 MOV EAX,[EBP-04] 015F:004B7199 CALL 00403DFC 015F:004B719E CMP EAX,19--------------------- Le nom < 19 (hexa) caractères ? 015F:004B71A1 JLE 004B71CD------------------- oui ! on saute ... 015F:004B71A3 MOV EAX,004B7308 015F:004B71A8 CALL 00457688 015F:004B71AD MOV EAX,[EBX+000002C4] 015F:004B71B3 XOR EDX,EDX 015F:004B71B5 CALL 00432E0C 015F:004B71BA MOV EAX,[EBX+000002C4] 015F:004B71C0 MOV EDX,[EAX] 015F:004B71C2 CALL [EDX+000000B4] 015F:004B71C8 JMP 004B72A7 015F:004B71CD MOV EAX,[004D3FC4]------------- on continue le traitement du serial 015F:004B71D2 INC DWORD PTR [EAX] 015F:004B71D4 LEA EDX,[EBP-04] 015F:004B71D7 MOV EAX,[EBX+000002C8] 015F:004B71DD CALL 00432DDC 015F:004B71E2 MOV EAX,[EBP-04] 015F:004B71E5 PUSH EAX 015F:004B71E6 LEA EDX,[EBP-10] 015F:004B71E9 MOV EAX,[EBX+000002C4] 015F:004B71EF CALL 00432DDC 015F:004B71F4 MOV EDX,[EBP-10] 015F:004B71F7 MOV EAX,EBX 015F:004B71F9 CALL 004B7088 015F:004B71FE LEA EDX,[EBP-0C] 015F:004B7201 CALL 0040855C 015F:004B7206 MOV ECX,[EBP-0C] 015F:004B7209 LEA EAX,[EBP-08] 015F:004B720C MOV EDX,004B7344 015F:004B7211 CALL 00403E48 015F:004B7216 MOV EDX,[EBP-08]-------------- Et on fout le serial final dans EDX... 015F:004B7219 POP EAX 015F:004B721A CALL 00403F0C ----------------- ici on compare les deux serials 015F:004B721F SETZ AL ---------------------- on met AL à 0 si le serial entré n'est pas bon 015F:004B7222 MOV [EBX+000002E4],AL--------- on met AL dans EBX+002E4] 015F:004B7228 CMP BYTE PTR [EBX+000002E4],01 et on compare EBX+2E4 avec 1... 015F:004B722F JNZ 004B7294 ----------------- si EBX+2E4=1 on ne saute pas (c bon !) .... En appuyant 12 FOIS de suite sur F12, on se retrouve en 4B717B . A cette addresse le prog met le contenu de EBP-04 dans EAX . Ce EBP-04 correspond en fait au serial bidon qu'on a entré : quand vous avez exécuté le MOV EAX,[EBP-04] , faites sous Softice E EAX. Le serial bidon devrait s'afficher dans l'éditeur Hexa ... Ensuite le prog va faire plusieurs tests sur le serial que l'on a rentré . Il va entre autre tester si le serial a plus de 5 caractères et si il est inférieur à 25 caractères . On continue la trace avec la touche F10 et on arrive en 4B7216 . Le proggy met le contenu de EBP-08 dans EDX. Ensuite,en 4B7219,le proggy récupère le registre EAX(POP).Quand vous serez à l'addresse 4B721A,faites E EDX pour avoir le bon serial et E EAX pour avoir le serial bidon ... Le call 403F0C situé à l'addresse 4B721A va se charger de comparer le bon serial avec le serial bidon . Si les deux serials ne sont pas identiques, le SETZ AL à l'addresse 4B721F va mettre AL à 0 et inversement , si les deux serials sont identiques on met AL à 1. Et finalement on met AL dans EBX+2E4 et on compare (en 4B7228) le contenu de EBX+2E4 avec 1. Si EBX+2E4=1,alors le saut conditionnel qui suit (JNZ 4B7294) n'est pas effectué : le serial est bon ! Pour moi , j'obtiens : Name : TaMaMBoLo Serial : 599f-10717 TaMaMBoLo