begin process at 2012 05 29 13:20:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Mettre un fichier .exe dans un buffer


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

Mettre un fichier .exe dans un buffer

vendredi 25 juillet 2003 à 22:59:19 | Mettre un fichier .exe dans un buffer

guiguikun

Je n'arrive pas a mettre un fichier executable en memoire.
sur les 100Ko du fichier, mon buffer ne compte que les 3 premiers octets (caracteres)

voici mon code :

ifstream fichier(file_path,ios::in|ios::binary);
if (fichier.is_open()) {
unsigned long file_size = get_file_size(file_path);
char *buffer = new char [file_size + 1];
if (!buffer) { exit(0); }
fichier.read(buffer,file_size);
cout<<strlen(buffer)<<" "<<file_size<<endl; // strlen(buffer) affiche 3 et file_size dans les bcp plus :)
delete [] buffer;
}
vendredi 25 juillet 2003 à 23:07:28 | Re : Mettre un fichier .exe dans un buffer

BruNews

Administrateur CodeS-SourceS
strlen compte le nombre d'octets partant de l'adresse indiquee jusqu'au 1er zero rencontre !!!
Et Dieu sait que il y en a des zeros dans un fichier binaire.
strlen est donc reserve pour compte la longueur des chaines de caracteres a terminateur NUL et pas pour autre chose.
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> Je n'arrive pas a mettre un fichier executable en memoire.
> sur les 100Ko du fichier, mon buffer ne compte que les 3 premiers octets (caracteres)
>
> voici mon code :
>
> ifstream fichier(file_path,ios::in|ios::binary);
> if (fichier.is_open()) {
> unsigned long file_size = get_file_size(file_path);
> char *buffer = new char [file_size + 1];
> if (!buffer) { exit(0); }
> fichier.read(buffer,file_size);
> cout<<strlen(buffer)<<" "<<file_size<<endl; // strlen(buffer) affiche 3 et file_size dans les bcp plus :)
> delete [] buffer;
> }
vendredi 25 juillet 2003 à 23:43:38 | Re : Mettre un fichier .exe dans un buffer

guiguikun

Comment puis-je faire un strstr sur mon buffer alors ? puisqu'il s'arrête au char NULL donc le 3eme ?



-------------------------------
Réponse au message :
-------------------------------

> strlen compte le nombre d'octets partant de l'adresse indiquee jusqu'au 1er zero rencontre !!!
> Et Dieu sait que il y en a des zeros dans un fichier binaire.
> strlen est donc reserve pour compte la longueur des chaines de caracteres a terminateur NUL et pas pour autre chose.
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Je n'arrive pas a mettre un fichier executable en memoire.
> > sur les 100Ko du fichier, mon buffer ne compte que les 3 premiers octets (caracteres)
> >
> > voici mon code :
> >
> > ifstream fichier(file_path,ios::in|ios::binary);
> > if (fichier.is_open()) {
> > unsigned long file_size = get_file_size(file_path);
> > char *buffer = new char [file_size + 1];
> > if (!buffer) { exit(0); }
> > fichier.read(buffer,file_size);
> > cout<<strlen(buffer)<<" "<<file_size<<endl; // strlen(buffer) affiche 3 et file_size dans les bcp plus :)
> > delete [] buffer;
> > }
>
vendredi 25 juillet 2003 à 23:49:33 | Re : Mettre un fichier .exe dans un buffer

BruNews

Administrateur CodeS-SourceS
mets un pointeur au debut du buffer et tu le pousses tant que < (buffer+file_size) et tu verif ce que tu veux sur lui comme base adresse.
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> Comment puis-je faire un strstr sur mon buffer alors ? puisqu'il s'arrête au char NULL donc le 3eme ?
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > strlen compte le nombre d'octets partant de l'adresse indiquee jusqu'au 1er zero rencontre !!!
> > Et Dieu sait que il y en a des zeros dans un fichier binaire.
> > strlen est donc reserve pour compte la longueur des chaines de caracteres a terminateur NUL et pas pour autre chose.
> > BruNews, ciao...
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Je n'arrive pas a mettre un fichier executable en memoire.
> > > sur les 100Ko du fichier, mon buffer ne compte que les 3 premiers octets (caracteres)
> > >
> > > voici mon code :
> > >
> > > ifstream fichier(file_path,ios::in|ios::binary);
> > > if (fichier.is_open()) {
> > > unsigned long file_size = get_file_size(file_path);
> > > char *buffer = new char [file_size + 1];
> > > if (!buffer) { exit(0); }
> > > fichier.read(buffer,file_size);
> > > cout<<strlen(buffer)<<" "<<file_size<<endl; // strlen(buffer) affiche 3 et file_size dans les bcp plus :)
> > > delete [] buffer;
> > > }
> >
>
samedi 26 juillet 2003 à 15:35:40 | Re : Mettre un fichier .exe dans un buffer

guiguikun

Je vais essayer ca, mais ca bouffe beaucoup plus de ressources qu'un strstr() :(



-------------------------------
Réponse au message :
-------------------------------

> mets un pointeur au debut du buffer et tu le pousses tant que < (buffer+file_size) et tu verif ce que tu veux sur lui comme base adresse.
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Comment puis-je faire un strstr sur mon buffer alors ? puisqu'il s'arrête au char NULL donc le 3eme ?
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > strlen compte le nombre d'octets partant de l'adresse indiquee jusqu'au 1er zero rencontre !!!
> > > Et Dieu sait que il y en a des zeros dans un fichier binaire.
> > > strlen est donc reserve pour compte la longueur des chaines de caracteres a terminateur NUL et pas pour autre chose.
> > > BruNews, ciao...
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Je n'arrive pas a mettre un fichier executable en memoire.
> > > > sur les 100Ko du fichier, mon buffer ne compte que les 3 premiers octets (caracteres)
> > > >
> > > > voici mon code :
> > > >
> > > > ifstream fichier(file_path,ios::in|ios::binary);
> > > > if (fichier.is_open()) {
> > > > unsigned long file_size = get_file_size(file_path);
> > > > char *buffer = new char [file_size + 1];
> > > > if (!buffer) { exit(0); }
> > > > fichier.read(buffer,file_size);
> > > > cout<<strlen(buffer)<<" "<<file_size<<endl; // strlen(buffer) affiche 3 et file_size dans les bcp plus :)
> > > > delete [] buffer;
> > > > }
> > >
> >
>
samedi 26 juillet 2003 à 15:49:06 | Re : Mettre un fichier .exe dans un buffer

BruNews

Administrateur CodeS-SourceS
aucune ressource en plus, le pointeur sert a rechercher le prochain octet != 0, rien d'autre et donc tu relances ton strstr sur le pointeur.
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> Je vais essayer ca, mais ca bouffe beaucoup plus de ressources qu'un strstr() :(
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > mets un pointeur au debut du buffer et tu le pousses tant que < (buffer+file_size) et tu verif ce que tu veux sur lui comme base adresse.
> > BruNews, ciao...
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Comment puis-je faire un strstr sur mon buffer alors ? puisqu'il s'arrête au char NULL donc le 3eme ?
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > strlen compte le nombre d'octets partant de l'adresse indiquee jusqu'au 1er zero rencontre !!!
> > > > Et Dieu sait que il y en a des zeros dans un fichier binaire.
> > > > strlen est donc reserve pour compte la longueur des chaines de caracteres a terminateur NUL et pas pour autre chose.
> > > > BruNews, ciao...
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Je n'arrive pas a mettre un fichier executable en memoire.
> > > > > sur les 100Ko du fichier, mon buffer ne compte que les 3 premiers octets (caracteres)
> > > > >
> > > > > voici mon code :
> > > > >
> > > > > ifstream fichier(file_path,ios::in|ios::binary);
> > > > > if (fichier.is_open()) {
> > > > > unsigned long file_size = get_file_size(file_path);
> > > > > char *buffer = new char [file_size + 1];
> > > > > if (!buffer) { exit(0); }
> > > > > fichier.read(buffer,file_size);
> > > > > cout<<strlen(buffer)<<" "<<file_size<<endl; // strlen(buffer) affiche 3 et file_size dans les bcp plus :)
> > > > > delete [] buffer;
> > > > > }
> > > >
> > >
> >
>


Cette discussion est classée dans : fichier, exe, buffer, file, size


Répondre à ce message

Sujets en rapport avec ce message

envoi fichier via socket [ par elanspeech ] Bonjour,J'ai fait un client/serveur, la communication se passe bien. cependant, je ne parviens pas a envoyer plusieurs fichiers a la suite avec la soc Problème copie de fichier.... [ par Clonk ] Bonjour,Je voudrais copier un fichier texte dans mon appli, j'ai fais la fonction suivante://Copie d'un fichier (création du backup)int copier(char * fichier compresser [ par mitali ] Bonjour tt l monde,j'ai une fonction qui me premet de récuperer  le contenu d'un fichier ,ça bien marcher avec les fichiers textes mais le probléme c' (win32)Fichier et buffer en lecture seule [ par mogwai93 ] Bonjour Je voudrais lire un fichier, placer le contenu de ce fichier dans un buffer et modifier ce buffer (mais pas le fichier). J'arrive bien à ou suppression d'une structure dans un fichier [ par ragon ] bonjour, je souhaite simplement supprimer toute une structure d'un fichier, mais je n'y arrive pas. Voila mon code, j'ai essayé un truc mais ca fonct Traitement de Fichiers textes en C/C++ [ par devc26 ] Bonjour, Je dois réaliser une "moulinette" en C/C++ permettant de modifier l'affichage de résultats en format texte ( contexte: Visual Studio 2003).C Lier un fichier .cfg à un fichier .exe à l'aide d'un fichier .bat [ par fox555 ] Bonjour, Désolé si ma question parait bête, mais je suis encore débutant. J'ai créé un petit programme qui s'exécute à l'aide d'un fichier éxécutable Stream de fichier [ par warmup1992 ] Bonjour à tous, je sais pas trop si je suis dans la bonne section mais bhon si je me suis trompé veuillez me pardonner ^^ :) Enfaite je post pour avo Manipuler des caracteres un par un avec la fonction read... [ par ROW_PyRo ] Bonjour, Je suis actuellement sur un projet, BSQ. [quote] Il s'agit de trouver le plus grand carré possible sur un plateau en évitant des obstacles. créer un exe [ par Arimane1 ] Bonjour, Je viens de télécharger un fichier .zip dans la catégorie réveil... Et dans ce fichier compresser il y en a pleins d'autres.. Alors voila, co


Nos sponsors


Sondage...

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 : 0,328 sec (4)

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