Tutorial de Cracking
              
(5 ième Partie)

Julien Lemaire
tutorial crackingtutorial crack precedenttutorial crack suivant

 


Nous allons maintenant apprendre a faire un patche en langage TurboPascal... Rassurez-vous, aucune connaissance n'est requise pour suivre ce tutorial !! Enfin, si : ca suppose que vous sachiez cracker un prog ...

Comme je me vois mal vous apprendre a programmez en quelques lecons, je vais vous donner un code source où vous ne modifierez que quelques lignes en fonction du patch que vous ferez :)
Commencons par la theorie : Ci-Dessous, le code source du patch en question...

Tout ce qui ce trouve après les // seront des commentaires... (syntaxe à la C/ C++).Pour pouvoir intégrer des commentaires dans vos programmes en pascal les mettre entre { }. Ce qui est en rouge, c'est ce qu'il faut changer c'est à dire adapater suivant votre programme ... Quand il y a marqué pas touche, c'est pas touche !! ;)

Pour le compilateur Turbo Pascal Compiler: cliquez ici


-----------------------------------------------Début---------------------------------------------------------


Program crackpatch;               // Pas touche
Uses Crt;                         // Pas touche


Const A: Array[1..5] of Record  // 5 correspond au nombre de
                                // byte que vouz changez       
                                // Ca pourrait etre 1 ou 60 selon le cas ! 


A : Longint;  // Pas Touche
B : Byte;     // Pas Touche
End =         // Pas Touche
(             // Pas touche


(A:$EE34;B:$90),   // (A:$offset;B:$nouvelle valeur),
(A:$EE35;B:$90),   // comme il y a 5 changements, ben ya 5 lignes !
(A:$EE36;B:$90),   // Vous remarquez que la valeur que l'on modifie, on s'en
(A:$EE37;B:$90),   // tamponne !! on met direct le NOP !
(A:$EE38;B:$90)    // ATTENTION, sur la dernière ligne pas de   
                   // virgule!


);                         //  Pas touche
 Var                        //  Pas touche
   Ch:Char;                 //  Pas touche
     I:Byte;                //  Pas touche
     F:File;                //  Pas touche
     FN:file of byte;       //  Pas touche
     Size:longint;          //  Pas touche
 Procedure Presentation;    //  Pas touche
 Begin                      //  Pas touche
  Gotoxy(2,3);             //  Pas touche


Textcolor(3); // change la couleur de ton texte si tu change le #

// Tout ce qu'il y a juste en dessous, c'est la presentation du
// crack, donc vous modifiez le nom du prog, le type de crack....

// Notez la syntaxe Writeln('montexte'); 
// Vous pouvez pas mettre une appostrophe dans votre texte, sinon ya une
// erreur !!

Writeln (''); // ca fait une ligne blanche...

  Writeln('cRACk fOR     : Prog De Merde v9.5');
   Writeln('cRACk tYPE    : fuck the time limit');
   Writeln('cRACKED bY    : yournamehere');

   Writeln('');
   Writeln('gREETiNG      : mes amis, monchien...');

 Writeln (''); // ca fait une ligne blanche...


 end;                       //  Pas touche
 Begin                      //  Pas touche
  Presentation;             //  Pas touche


 Assign(F,'PROGDE~1.EXE '); //Il faut mettre le nom de l'exe a cracké en
                            //version DOS et en MAJUSCULE
                            //(si il fait 3Km, vous mettez le " ~ " )

 
{$I-} Reset(F,1); {$I+}             //  Pas touche
 If IOResult <> 0 then              //  Pas touche
   begin                            //  Pas touche


      writeln('fILE nOT fOUND!');  //  Si le fichier est pas 
                                   // trouvé, il affiche le msg..


      halt(0);             //  Pas touche
    end;                   //  Pas touche


 For I:=1 to 5 do         // Tu remet le nombre de byte que t'as
                          // changés (dans cet exemple, on a fait 5 changement)

  Begin                      //  Pas touche
   Seek(F,A[I].A);           //  Pas touche
   Ch:=Char(A[I].B);         //  Pas touche
   Blockwrite(F,Ch,1);       //  Pas touche
  End;                       //  Pas touche


 Writeln('CrACk Successful'); //Le msg s'affiche quand le crack est 
                              //réussi !

End.                          //  Pas touche
----------------------------------------Fin---------------------------------------------------


Au final, on s'aperçoit qu'il n'y a que 8 endroits a modifier en fonction du patch que l'on veut faire...
C'est pas sorcier et à mon avis, c'est a la portée de tout ceux qui veulent apprendre....


Bon, maintenant qu'on a vu la théorie, passons a la pratique !
On va créer un patch pour le logiciel que vous avez cracké dans le 1er cours...
Deja, on peut préparer les infos dont on a besoin pour faire le patch :

0F =>> 5EB
84 =>> 5EC
80 =>> 5ED
00 =>> 5EE
00 =>> 5EF
00 =>> 5F0