MemenTo

Cours de Crack
(5eme Partie)


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

Comme je me vois mal vous apprendre a programmez en quelque leco, je vais vous donnez 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... Ce qui est en rouge, c'est ce qu'il faut changer... Quand il y a marqué pas touche, c'est pas touche !! ;)




-----------------------------------------------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 y'a 5 changement, ben ya 5 ligne !
(A:$EE36;B:$90),   // Vous remarquez que la valeur que l'on modifie, on s'en
(A:$EE37;B:$90),   // tamponne le fion !! on met direct le NOP !
(A:$EE38;B:$90)    // ATTENTION, sur la derniere 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'appercoit qu'il n'y a que 8 endroit a modifié en fonction du patch qu'on veut faire...
C'est pas sorcier et a 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 cracker dans le 1er cours...
Deja, on peut préparé les infos dont on a besoin pour faire le patch :

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

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


Program crackpatch;  
Uses Crt;


Const A: Array[1..6] of Record  


A : Longint;
B : Byte;  
End = 
(       


(A:$5EB;B:$90),
(A:$5EC;B:$90),
(A:$5ED;B:$90),
(A:$5EE;B:$90),
(A:$5EF;B:$90),
(A:$5F0;B:$90)

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

Textcolor(3);
Writeln ('');
 Writeln('cRACk fOR     : StartClean v1.2');
  Writeln('cRACk tYPE    : Enter Any registration name and code!');
  Writeln('cRACKED bY    : Smeita');

   Writeln('');
   Writeln('gREETiNG      : A tous ceux qui lisent mon tutorial');

 Writeln ('');

 end;   
 Begin  
  Presentation; 

 Assign(F,'STARTCLN.EXE ');
 
{$I-} Reset(F,1); {$I+}  
 If IOResult <> 0 then     
   begin      

writeln('fILE nOT fOUND!');

      halt(0);
    end;  


For I:=1 to 6 do 


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


 Writeln('CrACk Successful');

End.    
----------------------------------------Fin---------------------------------------------------


VALA ! C'est pas bien dur !!

Ben maintenant, il va falloir creer le fichier ".exe" grace au compilateur...
La aussi, c'est tres simple : lancer l'explorer puis faites glisser le fichier source du crack sur le programme TPC.EXE... Un fichier .EXE est automatiquement generer a partir du code source !



Alors la, si le compilateur vous dit qu'il y a une erreur, ca peut venir de plusieur endroit :
D'abord, verifiez que vous n'avez pas mis de virgule a la derniere ligne des offset.
Ensuite, assurer vous d'avoir bien compté le nombre de changement et de l'avoir indiquer au debut du crack et a la fin du crack...Enfin, regardez si vous n'avez pas mis une apostrophe dans les "Writeln"...
Normalement, ce sont ces erreurs qui reviennent le plus souvent...
Si vous avez un autre probleme, essayer de revoir ligne a ligne votre code source...

Ensuite, il vous faudra patcher ce crack avec TPPATCH.EXE, fournit en meme temps que TPC...
Procedez de la meme maniere que pour generer le crack.exe :



Normalement, ya un truc en allemand qui vous dit "Fertig"...ben ca veut dire que ca a marché :)

Pourquoi est-ce qu'on a patcher le crack ?
Parceque le Pentium 2 bug avec le Turbo Pascal...Et le remede, ben c'est TPPATCH... ;)

Voila, c'est fini, vous pouvez maintenant distribuer votre crack sur Internet...
Enfin, assurez au moins qu'il fonctionne bien en le testant sur une version "saine" du programme a cracker.

Pour vous entrainez, essayer de faire le patch du 3eme cours. Vous pouvez aussi essayer de faire les patches correspondant a l'annulation des JE et des JNE (cf cours 4)...

En attendant de voir d'autre methodes de cracking dans le second numero de notre e-zine, entrainez vous a appliquer ce que nous avons deja expliquer...

Et n'oubliez pas que pour apprendre, rien ne vaut la pratique !