/%%%%%%%%%%%%%%%\ %%Cours de CraCk2%% \%%%%%%%%%%%%%%%/ Re-bonjour et bienvenue dans la 2éme partie de mon tutorial :). Cette fois on s'attaque à un peu plus amusant mais pas très dur quand mêmme... -Softice V3.2 Ce logiciel est un débuggeur, c'est à dire un programme qui permet de suivre le programme alors qu'il s'execute et ainsi de repérer par exemple de repérer l'endroit ou il compare votre serial au bon serial. Il existe d'autres débuggeurs comme Turbo Debuggeur qui est distribué avec les programmes Borlands mais il est loin d'être aussi performant que Softice... -W32Dasm V8.9 Il ne sera pas vraiment nécéssaire mais permet d'avoir une vue d'ensemble du programme.... La dernière fois le logiciel à cracker était poua très connu alors cette fois çi je vous propose un peu plus connu(en fait je pense que tout le monde l'a :) , c'est Acdsee V2.0(je sais c pas la dernière mais c la meilleure :). Bon cette fois y va falloir bosser :). Alors pour commencer vous installez softice, dans softice(Ctrl+D) vous aurez besoin d'enabler plusieurs options qui vous permettront de voir plus de choses: CODE ON DATA R voila 3 trucs que vous devrez tapez pour avoir tout ce dont vous avez besoin sous les yeux. Bon revenons à nos moutons :), lancez acdsee et comme d'ab allez dans help->register et la il vous demande un code et un nom...alors la on fait un ptit ctrl-d et on est sous softice, vous tapez alors TASK pour savoir sous quel nom runne acdsee.....normalemment il devrait runner sous le nom "Acdsee32". Pour savoir les différents sous-objets qui composent cette application vous tapez HWND Acdsee32 et vous obtenez un liste. Dans cette liste il y a 2 edit qui sont en fait les zones ou vous écrivez votre nom et votre sérial. Vous relevez donc un des Window Handle(le nombre le plus à gauche) de type edit et vous tapez un ligne comme celle çi: BMSG 1234 WM_Gettext en remplaçant bien évidemment le numéro 1234 par le window handle du edit... Nous venons la de poser un breakpoint qui arretera le programme et lançera softice quand Acdsee32 enverra le message WM_Gettext à la boite de dialogue(pour récupérer le texte quoi....) Donc nous rentrons un nom et un sérial bidon et on appuye sur OK. Et pof Softice apparait, on appuye sur ctrl-d car de tout façon le programme n'a pour le moment que récupérer le nom...softice break encore et la vous appuyez sur F12 le temps de revenir dans le code du programme acdsee qui devrait se trouver dans les 0137:004XXXXX ou qqchose comme ça... Plus exactent vous devriez avoir le code suivant devant les yeux: ****************************************************** lea eax, [esp+38] ;Met l'adresse du pass dans eax lea ecx, [esp+18] ;Met l'adresse du nom dans ecx push eax push ecx ;Met sur la pile call 00402FC0 ;Verifie le pass add esp,08 test eax,eax jle 0040372A ;Si mechant garçon Fait le jump ****************************************************** Ici si vous essayez de nopper le jump le logiciel vous dira 'merci de vous être enregistré' mais il ne s'enregistrera pas......donc nous allons devoir étudier plus en profondeur le premier call. Pour cela vous mettez un break en double cliquant sur le call dans softice...donc vous recliquez sur Ok et softice break, la vous rentrez à l'interieur du call en appuyant sur F8. Bon dans cette boucle le premier call verifie si le nom fait plus de 5 caractéres, si oui il met eax à un si non il met eax à 0. Et juste après ce call il fait un ret si eax==0. Bon moi j'ai rentré SaTaNiK comme nom donc ça marche :). Ensuite le programme ne fait plus qu'un call et retourne d'ou il vient....donc ce call la verifie le password...mais si vous rentrez dans ce call là vous vous rendrez vite compte que la procédure est assez complexe.... Mais regardez juste après ce call il y a quelques trucs intéressants: **************************************************** call 00421750 ;Voici donc le jump qui ;Verifie le serial add esp, 0000000C cmp eax, 00000001 ;Hoooo comme c'est interessant :) ;Il compare deja eax =) sbb eax, eax pop esi inc eax ret ;Pis il retourne du call ***************************************************** Et oui il compare deja eax pour voir si le serial est bon... et cette comparaison à pour conséquence de modifier le contenue de eax en dessous :). Donc nous avons cette comparaison à modifier: 83 F8 01 cmp eax, 00000001 en 83 F8 00 cmp eax, 00000000 Et voila le tour est joué :). Voila, voila c'est finit pour mon deuxième cours de cracking...