Ouverture et écriture dans un executable

chycago Messages postés 5 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 23 décembre 2003 - 23 déc. 2003 à 18:38
misterzinzin Messages postés 112 Date d'inscription vendredi 27 octobre 2000 Statut Membre Dernière intervention 26 janvier 2011 - 25 juil. 2005 à 16:07
bonjour
je suis en train de faire une sorte de patcheur qui me permet de changer quelques octets d'un programme le problème c'est que l'ouverture du fichier merde, voila le code:

#include <stdafx.h>
#include <stdio.h>
#include <fstream.h>
#include <conio.h>
#include
int main (
int argc,
char * argv[]
)
{

try
{
cout<< "présentation et explications....\n";

ofstream ofs("c:\\~\\programme.exe",ios::in|ios::binary);
if(!ofs) //voir la note 1
{
cout<<"Erreur lors de l'ouverture du fichier\n";
cout<<"Veuillez vérifier le chemin\n";
cout<<"Appuyez sur une touche pour quitter.\n";
int wait=getch();
return 0;
}
cout<<"Fichier trouve...\n";
//action sur le fichier + bloc catch(...)
}

note 1 : g aussi essayé avec:
if(ofs.fail())

mon problème est que meme si le fichier a patché n'est pas trouvé, le programme en crée un tout seul, sans passer par la structure de test (if (!ofs))....

pourriez vous m'indiquer d'ou vient l'erreur, pourquoi est ce qu'un fichier est crée tout seul, pourquoi la structure de test ne s'enclenche t'elle pas?
merci

5 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 déc. 2003 à 19:06
REMPLACE OCTET DE FICHIER
http://www.cppfrance.com/code.aspx?ID=18924
BruNews, ciao...
0
chycago Messages postés 5 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 23 décembre 2003
23 déc. 2003 à 19:46
merci de ta réponse,
j'avais un peu cherché avant de poser ma question et j'avais trouvé ta source, très intéressant mais je n'ai pas le temps de beaucoup m'y attardé et je voudrais juste savoir avant de partir si mon code peu marché et si oui, ou est l'erreur.
merci quand meme de ta réponse
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 déc. 2003 à 19:55
Ben tu devrais t'y attarder un peu plus et laisser tomber ces stream et autres consoleries.
BruNews, ciao...
0
misterzinzin Messages postés 112 Date d'inscription vendredi 27 octobre 2000 Statut Membre Dernière intervention 26 janvier 2011 2
25 juil. 2005 à 15:52
remplace

ofstream ofs("c:\\~\\programme.exe",ios::in|ios::binary);



par



ofstream ofs("c:\\~\\programme.exe",ios::in|ios::binary|ios::nocreate);





moi j'arrive pas a ecrire dans le fichier... tu pourais indiquer comment tu fait ???



en fait moi je fait un seekp(...) pour un write(texte,sizeof(texte))

mais soit ca efface tout et ca remplace le début pas des 0 (au sens hexa... ou binaire comme on veut!)

ce qui fait que tout mon fichier est bousillé...



un indice ?

moi, le seul, l'unique, ZinZin
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
misterzinzin Messages postés 112 Date d'inscription vendredi 27 octobre 2000 Statut Membre Dernière intervention 26 janvier 2011 2
25 juil. 2005 à 16:07
pour brunews...

moi j'aime bien les stream... :-) mais bon chacun son trip ;-)

moi, le seul, l'unique, ZinZin
0
Rejoignez-nous