Le Manuel Du CrAcKeuR ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Part 7 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ I-INTRODUCTION ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ AprŠs les fˆtes de no‰l et une crise de foie me revoil…...mais je pr‚viens: le premier qui me parle de chocolat je lui vomis dessus :(^^). ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ II-THE TOOLS OF THE TRADE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ -W32Dasm v8.9 Tiens il y a une nouvelle version qui est sortie, je l'ai sur mon disque mais j'ai pas encore test‚....c'est la 9.3 -Softice v3.2 Indispensable.... ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ III-GO AND FIGHT ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Une, deux, une, deux, une, deux, bon on reprend l'entrainement avec un logiciel pas mal du tout: *Borland Java Builder v2.00 Professionnel version Fran‡aise* C'est un logiciel que j'ai trouv‚ sur un cd de ".net Pro"...magazine ce‡i dit totalement nul si il n'y avait pas son CD... Bon donc on installe le prog....dans l'install il nous dit d'entrer 1789 comme s‚rial...l… on doit surement pouvoir en entrer un autre qui nous installe directement la version illimit‚....m'enfin j'ai pas essay‚... Donc on a install‚ le truc, on le lance.....hmmmm pas mal il m‚rite que je le garde plus de 30 jours =). Donc on augmente la date(on passe de 1998 … 1999 par ex) pis on look... Une horrible boite de dialogue nous indique que "Cette preversion de Java Builder a expir‚e"....mouais on verra ;). On lance donc "/JBuilder/bin/Jbuilder.exe" avec le Symbol Loader fournit avec Softice pour pouvoir tracer depuis le debut et chopper le call qui affiche la boite de dialogue...et donc on tombe sur ce call l…: *********************************************** 0137:0056977C call 004343A0 0137:00569781 mov eax,[ebx] 0137:00569783 call 0043442C <--- Ce call l… *********************************************** Bon on regarde autour et on voit pas de jz et autre jumps conditionnels...donc il faut rentrer dans le call....on double clique sur le call pour mettre un breakpoint et on relance le prog....et cette fois on trace dans le call avec F8 puis F10.... On trace, on trace et on finit par tomber sur ‡a: ******************************************************** jmp 004344AA mov dl,01 call 0042FF3C <--Call qui affiche la boite de dialogue ******************************************************** Il y a de plus pas mal de jz autour...mais si vous essayez de modifier un de ces jumps conditionnels vous vous rendrez compte que le prog ne se lance pas! Donc ce call n'est pas seulement l… pour afficher la boite de dialogue mais bien pour initialiser le programme.... Donc vous effa‡ez votre precedent call(BC *) et vous double-cliquer sur ce nouveau call, histoire de mettre un nouveau breakpnt et d'aller encore plus en profondeur.... Donc vous recommen‡ez tout le bazard, vous rentrez dans le call qu'on vient de breakpointer avec F8 et vous tra‡ez pour trouver le call qui affichera la boite de dialogue...et vous tombez sur ‡a: ************************************* ret mov eax,ebx call 0042415C <-- Here is the call pop ebx ret ************************************* Bon n'effa‡ez pas tout de suite votre precedent breakpoint, mettez en d'abord un nouveau sur ce call et faite Ctrl+D.....et l… quesque vous voyez? Le break- point qu'on vient de mettre arrˆte plusieurs fois le programme...et ‡a ce n'est pas bon du tout....en fait il s'aggit surement d'une boucle qui a pour but d'initialiser le programme :(. Donc on efface le dernier breakpoint qu'on a mit(sur le call 0042415C) et on relance encore une fois le prog.... Bon l… on touche presque au but...le breakpoint que nous avons mit nous permet de mieux preciser l'endroit ou se trouvera l'apparition de la fenˆtre mais en tra‡ant cela ne marche pas....il faut donc rajouter un autre breakpoint...essayons Bpx MessageBox...marche pas....hmmmm...il s'agit sans doute d'une fenˆtre normale....essayons Bpx ShowWindow....BINGO!!! Le programme s'arrˆte...et si on appuit sur Ctrl+D il attend que nous cliquions sur OK....il s'agit donc de toute ‚vidence de la bonne fenˆtre =). Bon une fois que le programme a stopp‚ vous effa‡ez ce breakpoint car windows a tendance a l'appeler dŠs que vous cliquez sur la fenˆtre...(BL pour avoir la liste des breakpoints, et BC pour effacer un breakpoint)... Et vous appuyez sur F12 jusqu'a revenir dans le code du programme de JBuilder.exe....dans les 0137:004XXXXX...et vous tombez sur ‡a ********************************************** push eax push 004EEE5C call ebx <-- this is the fucking call test al,al <-- vous vous retrouvez l….... ********************************************** Voil… donc the fucking call qui nous appelle cette fucking fenˆtre(ha vraiment, le language des jeunes!!!)...bon si on nop le "call ebx"....le programme se lance sans limitation....mais il y a des push au dessus, faudrait les nopper aussi sinon il y a des risques de stack overflow(depassement de pile, allez apprendre l'asm j'vous dit)...et pis ‡a fait pas bien nickel tout ‡a ;). Donc on efface tout les precedents breakpoints(BC *) et on en met un sur ce call ebx...et on rentre dedans avec F8(vous commencez … en avoir l'habitude non??)...et on tombe sur du jolie code comme d'ab: *********************************************************************** mov ecx,[EBP+10] mov edx,[EBP+0C] <-- Sans doute la date mov eax,[EBP+08] call 00C2D594 <-- Hello i'm here to annoy you mov ebx,eax test bl,bl <-- haaaa enfin un beau test ;) jnz 00C2DBAE <-- Si t'es pas gentil tu ira dormir sans soupe mov eax,00C2DBC0 <-- "Cette preversion a expir‚e" call 00C2C37C <-- Je te le montre avec ma belle boite de dialogue *********************************************************************** Notez qqchose de trŠs important, regardez dans le titre de la fenˆtre ou vous pouvez entrez les commandes softice....il est ‚crit: BLDINFO!CODE+0002CB8C En fait nous ne sommes plus dans Jbuilder.exe mais dans Bldinfo.dll, une biblioth‚que utilis‚ par Jbuilder.exe qui se trouve dans le mˆmme repertoire. Revenons … notre code... Donc on repere...le resultat du test de la date est renvoy‚ dans eax... eax est copi‚ dans ebx, qui est lui test‚ pour voir si il est … 0...si il n'est pas … 0 alors il saute et se suicide...euh keske je raconte??? Si il est pas … 0(donc … 1 par ex) il n'affiche pas la boite de dialogue et continue … fonctionner... Les petits "malins" qui ont lus mes premiers tutorials diront..."mais boss, il y a qu'a changer le jnz en jmp...et pis ‡a roule...". Bein non mes ptits gars...car c'est bl qui est test‚....et pourquoi croyez vous qu'ils aient choisit de tester bl....et bein pour tester eax plus tard pour verifier que des ptits crackeurs n'auraient pas voulus se foutre d'eux(non mais des fois!!) Donc il faut modifier qqchose pour que eax soit tout le temps … 1 avant que le mov ebx,eax soit execut‚....bein on quitte softice, et on va desassembler Bldinfo.dll... On regarde dans les chaines de caractŠres et on trouve effectivement "Cette prev"...donc on double clique dessus et on se retrouve au mˆmme endroit que tout … l'heure avec Softice =)....on rentre dans le call qui suit les 3 mov... Et pis l… on fait les modifications necessaires....tout ce qu'on a … faire c'est de mettre eax … 1 et de faire un ret non? Bein on modifit les octect suivants avec Fxedit: ******************************** 55 8B EC 81 C4 B4 FE FF FF 53 56 ******************************** en ************************************************************ B8 01 00 00 00 mov eax,00000001 C3 ret FE FF FF FF > ne veut rien dire mais de toute fa‡on ne 53 56 > sera jamais execut‚ =) ************************************************************ Donc tout ce que fera ce call c'est mettre eax … 1(ret qui le call)... On lance et....‡a marche impec, et ‡a c'est clean les aminches ;) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ IV-CONCLUSION ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Je ne dirais qu'une chose: professionnel...mon cul!!! SaTaNiK http://www.multimania.com/gripsou/