Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PATCHER UN OCTET DE FICHIER BINAIRE


Information sur la source

Description

SAlut

voici comment ecrire de l'hexa ds un fichier binaire.

*Quoi ????
   -Ecrire un Octet dans un exe ou dll.

*Ben ça sert à quoi ???
   -Pour la plupart à rien, pour d'autre, à
    patcher un exe.

*Patcher un exe ???
   -Oui tripatouiller les saut conditionnel.

*J'ai rien compris ???
   -C'est rien, Les intéréssé auron pigé.


 

Source

  • var FB : File Of Byte;
  • b : Byte;
  • begin
  • assignfile(FB , 'exe.exe');
  • Reset(FB);
  • b := $44;
  • seek(FB,$1AFD2);
  • Write(FB,b);
  • closefile(FB);
  • End;
var FB : File Of Byte;
     b : Byte;

begin
assignfile(FB , 'exe.exe');
Reset(FB);

    b := $44;
    seek(FB,$1AFD2);

    Write(FB,b);

    closefile(FB);
End; 

Conclusion

Pour patcher plusieur octet
répeter l'operation plusieur fois.
 

Commentaires et avis

signaler à un administrateur
Commentaire de RaftY le 05/03/2002 17:12:03

Pour clarifier la situation, il arrive que dans certaine application comme les jeux nous ayons un format de sauvegarde, très spécial, et vous voyez des docs vous disant d'aller modifier l'octet à l'offset machine et de mettre la valeur truc. Exemple, dune 2000 ou civilisation. Eh bien, c'est ce que fait ce source:
Vous mettez la valeur hexadécimal 44, à l'offset 1AFD2, en sachant que 44 en décimal c'est 68, ce qui doit être A en ASCII. En bref, on met le caractère A dans le fichier binaire, à la position données 1AFD2, soit l'enregistrement binaire N° 110546. Voilà, c'est tout simple. Et pour ceux qui n'aurez pas compris, je continue encore plus simple:
Votre fichier binaire est un ensemble, de bit comprenant soit la valeur 0 soit la valeur 1, lorsque nous les regroupons en octet (8 bit) nous avons ainsi un tableau de 8 bits, afin de simplifier la visualisation, nous représentons l'ensemble en base 16, ceci nous donne deux chiffres compris entre 0 et F ou 00 représente (00000000) et FF (11111111) c'est plus concis, non! Pour l'adressage nous utilisons aussi ce principe, plutôt que de dire je veux aller à l'octet 352145, nous dirons je vais à l'octet HEXA 55F91.

Bon je sais si je suis clair, mais ça fonctionne comme ça l'informatique. Pour aller plus loin, jeter un oeil sur une introduction à l'assembleur(X86).

signaler à un administrateur
Commentaire de RocketSpawn le 22/12/2002 15:06:24

Cette source est très interressante et en effet les ineterressés seront s'en servir , donc je te remercie.
www.iciteam.cjb.net

signaler à un administrateur
Commentaire de hvb le 02/02/2003 15:22:27

simple et efficace,
ca va me permettre d'eviter de distribuer des runtimes (vb6,vb.net) avec mes "patcheurs" ou autres trainers...

merci =)

signaler à un administrateur
Commentaire de DelphiCool le 02/02/2003 15:34:50 administrateur CS

Ya moyen de faire des patcheurs tres petit en delphi

regardez ce programme:
http://hiacelee.free.fr

un patch delphi à 31 ko min c'est pas mal non?
biensur c'est le bmp qui gonfle un peu le patch

signaler à un administrateur
Commentaire de PHIL63 le 01/02/2008 20:26:43

Bonjour,
Ce qui m'aurais bien arrangé avant d'écrire l'octet, ça aurait été de pouvoir le lire... et je n'y arrive pas. ;)

signaler à un administrateur
Commentaire de DelphiCool le 01/02/2008 22:12:06 administrateur CS

Au lieu de mettre writre tu met read pour lire

signaler à un administrateur
Commentaire de PHIL63 le 01/02/2008 22:18:01

Merci DELPHICOOL
Mais comment tu fait pour mettre $44 dans b quand tu saisi dans un TEdit ?
Promis je t'embête plus avec des questions idiotes. :))

signaler à un administrateur
Commentaire de PHIL63 le 01/02/2008 22:21:17

C'est bon, je viens de comprendre.... désolé

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,22 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.