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 !!
;)
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.