Nom : Happyicon version : 1.10 Disponibilité : Http://perso.wanadoo.fr/Chass/index Protection : Nag Tools : Softice 4.0 : Editeur hexa Happyicon est un petit soft qui permet de dessiner ses icones . Le crack est relativement facile...J'ai utilisé le bpx WM_LbuttonUp (qui detecte si un bouton de la souris est pressé) et une petite backtrace avec F12, le tout orchestré par softice ...Enfantin vous allez voir ... Step 1 Quand vous quittez Happyicon, un nag s'affiche vous rappelant que le soft est un shareware.. Pour poser notre breakpoint sur WM_LbuttonUp , il faut repérer le proggy dans la mémoire . Pour cela on fait surgir Softice en pressant sur CTRL D. Ensuite on tape TASK sous softice . Un écran de ce type devrait apparaître (ce ne sera forcément pas pareil chez vous ,étant donné que nous n'avons pas les memes proggyz qui tournent en mémoire....) : TaskName SS:SP StackTop StackBot StackLow TaskDB hQueue Events Notepad 0000:0000 0063D000 00640000 2D9E 2DEF 0000 Happyico 0000:0000 0075A000 00760000 4046 2BB7 0000 ---c'est là Notepad 0000:0000 0063D000 00640000 4176 3BFF 0000 Mswheel 0000:0000 0054E000 00550000 37CE 3717 0000 Tineplus 0000:0000 0069B000 006A0000 363E 38DF 0000 Point32 0000:0000 0064B000 00650000 3786 38D7 0000 Systray 0000:0000 0063D000 00640000 395E 389F 0000 Taskmon 0000:0000 0063E000 00640000 2A5E 3897 0000 Explorer 0000:0000 00598000 005A0000 2E7E 2E67 0000 Serv-u32 0000:0000 0067C000 00680000 2426 2227 0000 Mstask 0000:0000 0056E000 00570000 2626 2437 0000 Mprexe 0000:0000 0072E000 00730000 1B26 2877 0000 MMTASK 265F:1F80 00B2 201C 201C 2686 260F 0000 On repère notre proggy : Happyico .Maintenant on fait HWND Happyico pour voir tous les événements du prog.Chez moi j'obtiens ça : Window Handle hQueue SZ QOwner Class Name Window Procedure 0FE4(1) 2BB7 32 HAPPYICON #32770 (Dialog) 1767:000050B1 0FE8(2) 2BB7 32 HAPPYICON Button 1767:00001040 0FEC(2) 2BB7 32 HAPPYICON Button 1767:00001040 0FF0(2) 2BB7 32 HAPPYICON Button 1767:00001040 0FF4(2) 2BB7 32 HAPPYICON Static 1767:00005C20 0FF8(2) 2BB7 32 HAPPYICON Static 1767:00005C20 0FFC(2) 2BB7 32 HAPPYICON Static 1767:00005C20 00E0(2) 2BB7 32 HAPPYICON Static 1767:00005C20 00A4(2) 2BB7 32 HAPPYICON Static 1767:00005C20 0E80(1) 2BB7 32 HAPPYICON #32770 (Dialog) 13FF:00001008 0E84(2) 2BB7 32 HAPPYICON Static 1767:00005C20 0E88(2) 2BB7 32 HAPPYICON ComboBox 170F:000000B4 0E90(2) 2BB7 32 HAPPYICON Static 1767:00005C20 0E94(2) 2BB7 32 HAPPYICON ListBox 1747:0000037E 0E98(2) 2BB7 32 HAPPYICON Static 1767:00005C20 Bon,j'ai pas dumpé toute la liste :y'en avait trop !.Nous ce que l'on cherche c'est une 'Class Name' ayant comme nom 'Button' . Bah oui, puisque l'on veut mettre un breakpoint sur l'activité de la souris, c'est bien en pressant un 'button' qu'on l'aura cette activité , non ? Bon, des 'Class Name' avec 'button' il y en a plein . Prenez-en une au hazard . Si softice ne bloque poa,utilisez une autre class. Moi,bêêête et mêeechant, j'ai pris la première class portant le nom 'button' et ça a marché du premier coup .Donc on pose notre breakpoint: BMSG FE8 0202 . FE8 c'est votre 'window handle' et 0202 c'est l'API WM_LbuttonUp (c'est pareil mais ça va plus vite à saisir au clavier 0202.).Et on relance avec F5 .On clique sur le 'OK' du nag. BOOm! Softice se bloque... Step 2 Bon Softice s'est bien bloqué, mais il s'est arreté au début de l'API WM_LbuttonUp . Nous ce qu'on cherche c'est le code principal du proggy . On fait donc une backtrace avec F12 . Et en appuyant 7 fois sur F12,on arrive à ceci : 015F:00407C52 MOV EAX,[ESP+00000AC8] 015F:00407C59 MOV ECX,[0044B144] 015F:00407C5F PUSH 00 015F:00407C61 PUSH 00409EB0 015F:00407C66 PUSH EAX 015F:00407C67 PUSH 000000FA 015F:00407C6C PUSH ECX 015F:00407C6D CALL [USER32!DialogBoxParamA]-----affiche le nag . 015F:00407C73 TEST EAX,EAX----------- on a atterrit ici avec F12 015F:00407C75 JZ 004087C8 015F:00407C7B PUSH 00 Bon , là, c'est vraiment poa dur .... C'est le CALL [USER32!DialogBoxParamA] qui affiche le nag quand on quitte le proggy ... Mettez un breakpoint à l'addresse 407c6d .Quittez le proggy,lancez le et quittez le . Softice s'est bloqué en 407c6c, avant l'affichage du nag . J'ai utilisé une petite astuce très simple pour me débarrasser du nag . La solution première aurait été de 'noper' le CALL [USER32!DialogBoxParamA] .Mais si vous faites ça, le proogy ne se fermera pas : presser CTRL+ALT+SPPR et vous le verez encore en mémoire ...J'ai utilisé une API très cool & standart pour fermer un proggy en ASM : ExitProcess .J'ai remplacé le DialogBoxparamA par un Exitprocess ... Une fois que vous êtes à l'addresse 407c6d avec softice, vous faites A 407c6d pour être dans l'éditeur ASM du débugger . Ensuite, on entre : Call Exitprocess .Boom! le nag est ben y s'affiche plus et le prog se ferme bien ... Le soft ne possède pas d'autres protections . Si vous voulez virer 'Version d'évaluation' dans 'About', prenez votre éditeur hexa et rendez-vous à la fin du fichier ... Pour ce crack, recherchez la chaine hexa : FF 15 28 F2 40 00 85 C0-0F 84 4D 0B et remplacez par : E8 58 58 B8 BF 00 85 C0-0F 84 4D 0B TaMaMBoLo/CC/SML/SNT