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 lecon,
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 !! ;)
(Pour le code source sans commentaire: cliquez ici,
pour le compilateur Turbo Pascal Compiler: cliquez ici)
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
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.

