Name/ Lucifer Company/ 48 Serial Number/ f6ec-1a5eaa Name/ Lucifer48 Company/ Serial Number/ 9ffa-dd833e Name/ LUCIFER48 Company/ Serial Number/ 67f9-e55bcf Programme : WinHacker 95 v2.0 PlateForme : Windows 95 & NT4.0 Date : 28 juillet 1998, 14h57 Protection : registration via serial number Fichier : wh95.exe Outils : Soft-ice v3.2 Ou ça? : PcTEAM CD N°26 Temps passé: Quelques minutes Cours : 15 Matos : Bloc-notes en 800*600 Ce petit programme est assez simple à cracker, à noter qu'il utilise des DLL à la con comme MSVCRT et MFC42... (ça va nous simplifier le travail) On remplit les cases: Name/ Lucifer48 Company/ Serial/ 3615 J'utilise ici comme d'habitude BPX HMEMCPY On trace jusqu'à la l'affichage de la boîte "Invalid Serial Number! ... Make sure you..." XXXX:00419381 53 PUSH EBX XXXX:00419382 53 PUSH EBX XXXX:00419383 FF75F0 PUSH DWORD PTR [EBP-10] ;en pointant vers l'adresse: "Invalid Serial" XXXX:00419386 E819D90000 CALL 00426CA4 ;affiche la boîte XXXX:0041938B 8D4DF0 LEA ECX,[EBP-10] Avant ces quelques lignes, il y a quelques LEA/MOV/CALL c'est surement le méchanisme pour la "Trial Period". Evidemment en traçant vous avez remarqué que nous sommes passés par une instruction TEST AL,AL c'est sans aucun doute, l'instruction clef. Allons-y faire un tour. XXXX:004192CE E817D60000 CALL 004268EA ;on est dans MFC42!.text XXXX:004192D3 FFB604020000 PUSH DWORD PTR [ESI+00000204] ;adresse où se trouve notre serial XXXX:004192D9 8B3D50624400 MOV EDI,[00446250] XXXX:004192DF C645FC03 MOV BYTE PTR [EBP-04],03 XXXX:004192E3 FF75EC PUSH DWORD PTR [EBP-14] ;adresse où se trouve le bon serial XXXX:004192E6 FFD7 CALL EDI ;on est dans MSVCRT!.text XXXX:004192E8 F7D8 NEG EAX XXXX:004192EA 1BC0 SBB EAX,EAX XXXX:004192EC 59 POP ECX ;'D ECX' pour voir le bon serial XXXX:004192ED 40 INC EAX XXXX:004192EE 59 POP ECX ;'D ECX' pour voir notre serial entré XXXX:004192EF 84C0 TEST AL,AL XXXX:004192F1 7448 JZ 0041933B ;si on saute: mauvais serial XXXX:004192F3 FF75EC PUSH DWORD PTR [EBP-14] Notre but c'est que le saut ne s'effectue pas. Les deux call triffouillent dans les DLL et donc cela fera deux CALL en moins à tracer. Mais que peut bien faire ce CALL EDI avant le test décisif??? Une comparaison??? Il y a deux push DWORD (donc deux adresses...), on regarde à ces adresses et on voit notre mauvais serial et le bon serial. Mission accomplie! Simplissime non?