

                                                                                                                    
                        
                        --------------------------------------------
                        ----------Magic Raphoun's Tutorial----------
                        --------------------------------------------
                        --------------W3Filer 2.0.1-----------------
                        --------------------------------------------
                        --------------------------------------------
                        
                        







Part 1 : Introduction
Part 2 : Traduction de la protection
Part 3 : Patchage
Part 4 : Probleme
Part 5 : Resolution du probleme
Part 6 : Cration d'un fichier crack.exe
Part 3 : Conclusion
Part 4 : Remerciements




Part 1 : Introduction
^^^^^^^^^^^^^^^^^^^^^
Dans ce tutorial, nous allons donc voir comment cracker W3filer. Vous n'aurez pas besoin de connaissances leves, et j'essaierai d'expliquer au mieux les choses pouvant poser probleme...:) Ce programme est utilis pour transferer des fichier sur internet (c'est ce qui est marqu dans l'aide..:). Il est tlchargeable en version shareware sur http://members.aol.com/smehr.
Bien, examinons cette version shareware : il n'y a pas de fonctions limites et le seul "probleme" est la prsence d'un bandeau publicitaire et d'un bouton "Register", dans l'aide.
Pas trs mchant, mais avoir une version enregistre, c'est quand meme mieux, non ? :o)

Pour cracker ce logiciel, je propose la solution du patch plutot que de trouver un serial...
Nous allons donc avoir besoin de Wdasm8.93, pour dsassembler le soft et de Hiew601 ou suprieur pour le modifier. Vous pouvez vous procurer ces outils chez HarvestR, sur http://harvestr.soltice.net En tout, il y en a pour 1Mo environ...c pas le bout du monde...

Bref, passons maintenant au cracking ;)



Part 2 : Traduction de la protection
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Comme vous le savez peut etre si ce n'est pas le 1er tutorial que vous lisez, pour cracker un logiciel, le principal choix que nous avons est de le dsassembler, c'est a dire, d'afficher son code source en Assembleur (ASM). A partir de la, on peut changer le code en ASM. Ceci est obligatoire car on ne peut videmment connaitre le code du soft en C ou en n'importe quel autre langage de programmation (a part si vous crackez un soft dont le code source est en distribution....:)
Nous allons donc dsassembler W3filer avec W32dasm8.93 : lancer ce dernier, faites ouvrir, et selectionnez w3filer32.exe (seul programme executable du soft). Patientez...a y est, vous voila en prsence du code ASM. C'est pas beau ?
Maintenant, laissez tomber Wdasm 2min, et lancez W3filer; on voit donc le bandeau publicitaire, en dessous de la barre d'outil. Faites Help, register : il y a 3 zones de texte, dont une deja remplie. Bien, entrez votre nom, et un serial bidon : *Invalid Registration ID* Normal, si j'ose dire :)

On revient a Wdasm, et on fait String Data Reference, a cot de l'incone Imprimer. Ici, il y a tous les messages d'erreurs, tout le texte du soft. On recherche "Invalid regitration ID", et on double clicke dessus.

On arrive alors a l'offset 00407352. Bien, on va donc essayer de trouver le saut qui nous ammene la, ou bien le saut qui nous aurait amener a *Thank u, good serial, blah blah..*
On remonte donc de quelques lignes, et a l'offset 00407346, on a un saut conditionnel : 
jge 0040735F. On fait "Jump To", et on arrive donc en 00407346. On peut remarquer (c des choses kon remarque vite) quelques lignes plus bas, le texte : "You have successfully registred". Humm :)
Donc, une routine vrifie si votre code est correct, et un saut conditionnel vous fait sauter en "You have successfully registred" s'il est bon. S'il est faux, le programme continue et vous arrivez en "Invalid regitration ID".
Si vous etes un peu malin, vous me dites : "hey, pas compliqu : on change le saut conditionnel en saut inconditionnel. Comme ca, meme si la comparaison indique que le serial est faux, on va en "You have successfully registred"..." Et bien, si c'est ca que vous vous dites, sachez que c'est juste ! :)

Maintenant, comment faire pour changer ca ? 
C'est la que Hiew va intervenir :)






Part 3 : Patchage
^^^^^^^^^^^^^^^^^
Avant tout, crez un nouveau dossier dans W3filer, et copiez W3filer32.exe dedans. Vous etes donc dans votre nouveau dossier et vous renomez W3filer32.exe en Whxx.exe, et copiez ce dernier dans votre rep W3filer. Je rcapitule, dans votre rep W3filer, vous avez W3filer32.exe et Whxx.exe, et dans votre nouveau dossier, vous avez Whxx.exe
On fait ca pour viter les erreurs : si vous vous tromper en modifiant W3filer32.exe, vous pourrez plus revenir en arriere, alors il vous faudra rinstaller le soft... Alors que si vous vous trompez en modifiant Whxx.exe, il vous suffit de le remplacer par le meme fichier, qui est situ dans vot new repertoire... Oki ? De plus, vous ne pourrez modifier W3filer32.exe, car vous etes deja en train de l'utiliser avec Wdasm...

Maintenant, on lance Hiew.exe, on ouvre Whxx.exe, on fait F4 et on slectionne "Decode pour avoir le code ASM. Bon, il faut aller a l'offset 00407346 pour modifier le saut jge en jmp. Faites F5 (GOTO), et entrez 00407346, entre : "Jump out File". Et vi, on peut pas faire comme ca... Mais j'ai l'astuce pour changer ca : vous retournez sous Wdasm, vous placer le curseur (ligne verte) sur 00407346, et vous regardez en bas, sur la barre d'tat : vous verrez @Offset 00006946h in File:w3filer32.exe. Vous retournez sous Hiew, F5, et vous entrez cette fois 6946 (on vire les 0). Cette fois ca marche :)
On arrive donc la ou on voulait. Now, on va changer le jge en jmp : placez votre curseur sur le 7D, et faites F3 (Edit). 7D, ca veut dire jge, le 17, c'est pour indiquer OU on va jumper. On va donc mettre EB, ce qui signifie JMP a la place de 7D.
Vous faites F9 pour enregistrer les modifications, et vous lancez Whxx.exe, vous faites "Register". Vous entrez votre nom, et un serial bidon : "You have successfully registred" :)
La, le bandeau de pub disparait et a plus de "Register", dans Help
Kwel, non :)
Bon, quittez le soft, et relancez le, on sait jamais... Et la, enfer et damnation : vous etes plus enregistr ! :(
Nous voila face a un problme...




Part 4 : Problme
^^^^^^^^^^^^^^^^^
Donc, on rcapitule : on entre un serial, il est faux mais on saute quand mme en "You have successfully registred". Le bandeau publicitaire disparait et la fonction "Register" disparait. Par contre, lorsqu'on relance le soft, on est plus enregistr...






Part 5 : Resolution du probleme
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Rflechissons...
Vous avez trouvez quelque chose d'interessant ? ;)
Peut etre que la routine qui vrifie si le code est bon quand on l'entre est aussi appele lorsque le soft se lance, pour vrifier si le code dans la base de registre est vrai...
En gnral, la routine vfiant les srial est place juste avant le saut conditionnel (logique). Callons donc le call 0040D4CF, a l'offset 0040733C. Et qu'est ce qu'on voit :
* Referenced by a CALL at Addresses:
|:0040733C   , :OO40BOE5

Ce qui signifie que cette routine est aussi appele a l'offset 0040B0E5.
C'est parti, on y va :
:004OBODB 680CD54100              push 0041D50C
:0040BOEO 68BCD44100              push O041D4BC
:0040BOE5 E8E5230000              cal1 0040D4CF
:004OBOEA 83C408                  add esp, 00000008
:0040BOED 8BFO                    mov esi, eax
:OO40BOEF 85F6                    test esi, esi
:0040BOFl 7Dll                    jge 0040BlO4
:OO40BOF3 6AOO                    push 00000000
:OO40BOF5 6AOO                    push 00000000
:OO40BOF7 6800040000              push OOOOO400
:0040BOFC 53                      push ebx

Ca ne vous rappelle rien ? :)
C'est exactement pareil que prcedemment.

Il nous faut donc recommencer notre opration et patcher le jge 0040B104 en jmp 0040B104.
Cette fois, modifiez ca sans moi...

On relance W3filer une fois ceci modifi, on entre un nom, un srial, OK. On est registred, on quitte, on relance... Et on est toujours Registred ! ;o)
C'est pas beau ? :)
Voila, vous avez crack W3filer !





Part 6 : Cration d'un fichier crack.exe
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Bon, c'est bien gentil d'avoir crack W3filer, mais si vous comptez distribuer votre crack, la cration d'un fichier excutable de quelques Ko est plus pratique que d'envoyer carrement le Whxx.exe de plus d'1Mo ! Il faut donc faire un fichier qui, lorsqu'il est lanc, ouvre W3filer et modifie le code pour le cracker...
Je vous propose un code source en Turbo Pascal que vous pourrez modifier pour le rendre plus beau, ou meme plus performant :

--------------Ca commence apres ca--------- 

Uses Crt;

 Const A: Array[1..2] of Record {<-------- 2 octets a patcher}
                          A : Longint;
                          B : Byte;
                         End =
((A:$6946;B:$EB), {<--------------- A l'offset 6946, on change par un JMP (JMP)}
(A:$A6F1;B:$EB)); {<--------------- A l'offset 6946, on change par un EB (JMP)}


Var Ch:Char;
    I:Byte;
    F:File;
    FN:file of byte;
    Size:longint;


Begin
 Writeln('Crack for W3Filer');
 writeln('');
 writeln('---------------------');
 writeln('');
 writeln('by Magic Raphoun');
 writeln('');
 Assign(F,'W3filer32.EXE'); {<-------------- Nom du fichier a patcher}
 {$I-} Reset(F,1); {$I+}
 If IOResult <> 0 then
    begin
    writeln('File not found!');
    halt(1);
    end;
 For I:=1 to 2 do {<---------------------- 2 octets a patcher}
 Begin
  Seek(F,A[I].A);
  Ch:=Char(A[I].B);
  Blockwrite(F,Ch,1);
 End;
 writeln('');
 Writeln('File successfully patched!   Have a Fun !!! :o)')
End.

-------------------------Ca finit Ici------------------------


Voila, donc vous entrez les octets a modifier, et a quels offsets. Il y a 2 octets a patcher (les 2 jmp). 


Une fois que vous avez coll ce qui est entre les - dans un fichier appel w3filer.pas, ou crack.pas, vous l'ouvrez avec Turbo Pascal 7 (ou autre version), trouvable partout sur internet, et assez petit (2Mo environ). 
Vous le compilez (Alt+F9), vous quittez, votre crack est compiler, et prs a etre distribu... :)
Alors, Heureux ? :)






Part 3 : Conclusion
^^^^^^^^^^^^^^^^^^^
Avec ce tutorial, vous avez donc appris a :
_Dsassembler un fichier pour voir son code assembleur
_Trouver le jump conditionel qui mene a *Bad Boy*
_Modifier le code ASM
_Faire un patch.exe

Ce type de protection est des plus rpandue, alors excercer vous avec d'autres logiels du meme genre pour apprendre a bien les cracker. J'ai choisi W3filer pour ce tutorial parce qu'en plus, il y a une petite difficult : le double appel de la routine vrifiant le serial.
Voila, sur ce, je vous dis @+ pour un nouveau tutorial et j'espere que celui ci vous aura aid, ou mme fait progresser ! :o)

Si vous voulez me contacter, joignez #Darkstar, ou #cracking4newbies, sur Efnet.




Part 4 : Remerciements
^^^^^^^^^^^^^^^^^^^^^^
Je remercie tout d'abord HarvestR, pour son site et l'hebergement de mes tutorials.
Merci aussi a tous les membres de Darkstar.
Enfin, je vous remercie, vous pour l'interet que vous portez au cracking et paske vous lisez mon tut bourr de ftes d'ortgrafs... :)







