begin process at 2012 05 29 12:34:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Modification chaine dans exe


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Modification chaine dans exe

dimanche 28 août 2005 à 07:49:07 | Modification chaine dans exe

nohva

Salut à tous !

Voila mon problème. J'ai une appli qui affiche un ShowMessage : "Salut toi". A partir d'une autre appli j'aimerais modifier ce message pour qu'il devienne genre "Salut moi".

Donc j'ai ouvert mon premier exe dans un editeur hexa pour  récuperer l'offset du message : 0x000016C4

Voici ensuite ma fonction :

//////////////////////////////////////////////////////////////////////
void Modifier()
{
DWORD c, val;
char *Path = Chemin.c_str();
char *Txt = (Form1->Edit1->Text).c_str();
int Taille = StrLen(Txt);


FILE *MonExe;
MonExe = fopen(Path, "r+");
fseek(MonExe,0x000016C4,0);

for (int i=1;i!=Taille;i++)
        {
        c=Txt[i];
        fwrite((const void*)c,sizeof(c),NULL,MonExe);
        }

fclose(MonExe);
}
//////////////////////////////////////////////////////////////////////

J'ai des problèmes au niveau de l'écriture dans l'exe, ca ne fonctionne pas. Vous pouvez me dire ce qui va pas ? (tout commentaire accepté )



dimanche 28 août 2005 à 09:11:31 | Re : Modification chaine dans exe

BruNews

Administrateur CodeS-SourceS
Une question: sizeof(c) fait combien en taille ???
Regarde si no prob avec cette taille dans le fwrite.

for (int i=1;i!=Taille;i++)
C'est dangereux une boucle avec de telles conditions, ça pourrait tourner longtemps, imagine que Taille vaille 0.

ciao...
BruNews, MVP VC++
dimanche 28 août 2005 à 11:04:50 | Re : Modification chaine dans exe

vinc1008881

Fais gaf un exe qui sais faitécrire desus de fonctionne pas toujours (CRC)

dimanche 28 août 2005 à 17:14:24 | Re : Modification chaine dans exe

nohva

En mettant par exemple :

/////////////////////////////////////////////////////////
void Modifier()
{
DWORD c, val;
char *Path = Chemin.c_str();
char *Txt = (Form1->Edit1->Text).c_str();

FILE *MonExe;
MonExe = fopen(Path, "r+");
fseek(MonExe,0x000016C4,0);

for (int i=1;i!=20;i++)
        {
        if (c>sizeof(Txt)) {c=0;}
        else {c=Txt[i];}
        fwrite((const void*)c,sizeof(c),NULL,MonExe);
        }

fclose(MonExe);
}
/////////////////////////////////////////////////////////
Pour ecrire par exemple sur 20 octets, effectivement sizeof(c) vaut "0" 2 fois sur 3... :/

On m'a parlé de valeur ordinale pour c, vous pouvez m'éclaircir la dessus ?

dimanche 28 août 2005 à 17:29:32 | Re : Modification chaine dans exe

BruNews

Administrateur CodeS-SourceS
c est déclaré en DWORD qui est 'unsigned int' donc sizeof(c) vaut 4 octets sur système 32 bits.

ciao...
BruNews, MVP VC++
dimanche 28 août 2005 à 20:09:52 | Re : Modification chaine dans exe

nohva

ok je vais utiliser BYTE alors, sinon t'aurais pas un exemple concret ?
dimanche 28 août 2005 à 20:14:26 | Re : Modification chaine dans exe

nohva

J'ai trouvé cette source en delphi qui fonctionne :

////////////////////////
Procedure KWrite(kfil:string;koff:LongInt;kdat:string;klen:LongInt);
var
  f : File of Byte;
  i : LongInt;
  c : Byte;
begin
  AssignFile(f,kfil);
  Reset(f);
  Seek(f,koff);
  for i:=1 to klen do begin
    if i>length(kdat)
     then c:=0
     else c:=ord(kdat[i]);
    Write(f,c);
  end;
  CloseFile(f);
end;
///////////////////////////////////
kfill est le nom de l'exe, koff est l'offset, kdat est le nouveau message et klen est le nombre d'octets a modifier

ca a l'air tout simple en delphi, pourqui ca fonctionne pas en C++ 

dimanche 28 août 2005 à 20:36:44 | Re : Modification chaine dans exe

BruNews

Administrateur CodeS-SourceS
REMPLACE OCTET DE FICHIER (WIN32)
http://www.cppfrance.com/code.aspx?id=18924

ciao...
BruNews, MVP VC++


Cette discussion est classée dans : exe, chaine, txt, modification, monexe


Répondre à ce message

Sujets en rapport avec ce message

lire un fichier txt ligne par ligne [ par lapinrose67 ] Bonsoir,Je developpe un logiciel en C sous Linux, voila mon problème:Je dois lire un fichier texte ligne par ligne et placer chacune d'entre ellesdans modification d'un fichier .exe [ par jackky ] salut je voulais savoir comment faire un fichier .exe en c++(crack) pour changer un saut dans un fichier .exeexemple00401595 7416 je 004015ADCHANGER fichier txt [ par freerider76 ] Bonjour je voudrais savoir comment faire pour changer une chaine de caractere dans un fichier txt, parce là je vois pas; en fait je pars comme ça et i Big prob gcc [ par Alcantornet ] Bonsoir (ou bonjour), J'ai un gros problème avec Dev-cpp, quand je fais le code suivant: #include #include int mai modification auto chaine caratere [ par kristof1429 ] Bonjour,Voila je voudrai convertir une mac address qui apparait de la facon suivante:0016.35AA.153Cen 00-16-35-AA-15-3Cc'est a dire enlever les deux p Separer une chaine en sous chaine [ par firemax ] Bonjour Je me posais une question , j'aimerais diviser une chaine en sous chaine pour pouvoir ensuite les trier par longueur de chaine de caractere osrstream [ par timy94 ] Bonjour, Après avoir sérialiser une classe en surchargeant l'operateur j'ai ecris, ostrstream  chaine; char * MaTrame_txt; CObjet  * MATrame = new CO manipulation complexe de chaine de caractère.... [ par Vinsininounet ] Bonjours a tous,j'ai un probleme avec un de mes dévevellopement :    j'ai une chaine de style :       doc.txt&doc2.txt&toto.doc&       dans un char. deconcatenation de chaine [ par malouve ] Bonjour, j'ai un fichier txt à traiter en C, ayant plusieurs fichiers, j'entre le chemin du fichier au clavier, je voudrais en sortie, avoir un fich Modification au sein d'un fichier txt [ par Selenore ] Bonsoir à tous, c'est mon premier post :)Voila, j'aurais besoin de votre aide, je cherche la fonction qui me permetterais de supprimer une série de ca


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,232 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales