888 ,e, e88'888 888,8, ,"Y88b e88'888 888 ee " 888 8e e88 888 d888 '8 888 " "8" 888 d888 '8 888 P 888 888 88b d888 888 Y888 , 888 ,ee 888 Y888 , 888 b 888 888 888 Y888 888 "88,e8' 888 "88 888 "88,e8' 888 8b 888 888 888 "88 888 , 88P "8",P" ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Programme : StartClean v1.2 Protection: Numero de Serie Ecrit par : LuCiFuGe RoFoCaLe [STYX] Type de Crack: Numero + Patch Date : 1997 Niveau: Debutant ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ La premiere chose a faire c'est trouver la routine de test. Pour ce genre de protection, il existe deux methodes tres pratiquees: a) poser un BPX sur hmemcpy b) poser un BMSG WM_GETTEXT sur la boite de dialogue Essayons la premiere...nous rentrons notre nom et notre code exemple: Lucifuge 97979797 CTRL+D, Nous posons notre breakpoint (BPX hmemcpy), CTRL+D nous validons notre boite d'enregistrement et on se retrouve dans Softice C'est normal, le nom vient d'etre copie en memoire. Un coup de F5 et on se retrouve encore sous SoftIce, la c'est le code qui vient d'etre copie. Cherchons les : s 0 l ffffffff 'Lucifuge' et posons un Breakpoint dessus (exemple: BPM 406130) relancons le tout avec F5 On tombe en plein milieu de la routine de test. Regardons un peu... Si vous regardez il y a des CMP partout donc notre code ne doit pas etre loin..Regarder un peu ESI il contient une adresse proche de la notre, ce qui est souvent de bon augure :) et Oui ESI contient un truc qui ressemble etrangement a un code, nous allons l'observer jusqu'a la sortie (BPM ESI soit pour moi BPM 406030) j'appuie sur F5 comme un fou, et au bout de la neuvieme fois la boite "Code Faux" sort. Je recommence l'operation jusqu'a la huitieme fois, et je continue par F10 la boite sort de nouveau, mais la quand j'appuie sur "okay" je reviens a softice. Il me reste plus qu'a regarder la valeur dans 406030. cela me donne -> 1746-16506-2223-433 et c'est OKAY :) Bon je suis d'accord cela peut etre un coup de chance d'etre tombe sur la bonne adresse du premier coup donc je vous donne une autre methode plus chiante ;) Donc on recommence, je pose le BPX hmemcpy, je fais deux fois F5 puis je trace comme un fou par F10 jusqu'a la boite de dialogue. Et voila: 402799: CALL 401150 <-- On va analyser cette petite routine... ADD ESP,04 TEST EAX,EAX JZ 4027C1 <-- Mauvais Code !! .... 4027C1: PUSH 0 PUSH 0 PUSH 4063AC <-- Contient la chaine de caracteres "Incorrect Code!" PUSH ESI CALL 409334 <-- Affiche la boite de message "Incorrect Code!" MOV EAX,1 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 401150: SUB ESP,20C MOV AL,[406264] .... CALL ESI 4011C7: PUSH 406030 <-- Contient le Code Correct !!! PUSH 406130 <-- Putain mon nom 4011D1: CALL 401280 LEA EAX,[ESP+18] ADD ESP,08 PUSH EAX PUSH 406030 CALL 409220 4011E9: TEST EAX,EAX<-- :) JNZ 401271 Comme vous pouvez le voir, il suffit de mettre JZ 401271 pour que n'importe quel code (sauf les bons) fonctionnent :) donc on modifiera dans l'exe les bytes suivants: 85 C0 0F 85 80 00 00 par 85 C0 0F 84 80 00 00 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Voila c'est enfin fini !!! LuCiFuGe RoFoCaLe [STYX] 1997