Accueil > Forum > > > > Mettre un fichier .exe dans un buffer
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
|
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
|
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
|
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
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|