Page 1 of 1

Fusion de 2 fichiers .exe

PostPosted: Thu Jan 21, 2010 8:00 pm
by DENEKAR
Bonjour les amis!
Alors c'est mon premier post, et je suis content d'avoir trouvé ce beau forum
Bref, passons aux choses sérieuses :D
Je cherche à fusionner 2 fichiers .exe(exe1.exe et exe2.exe) et écrire le résultat dans un fichier exe(exe3.exe).
J'ai ce code:

[code:1:6bed397b27]int main()
{
FILE *fichierCree, *fichier1, *fichier2;

fichierCree = fopen("exe3.exe", "wb");
fichier1 = fopen("exe1.exe", "rb");
fichier2 = fopen("exe2.exe", "rb");

int car = 0;

while(car != EOF)
{
car = fgetc(fichier1);
fputc((char)car, fichierCree);
}

car = 0;

while(car != EOF)
{
car = fgetc(fichier2);
fputc((char)car, fichierCree);
}

cout << "Appuyez sur Entree pour quitter" << endl;
getchar();
return 0;
}[/code:1:6bed397b27]


Mais quand je clique sur exe3.exe, c'est exe1.exe qui s'exécute alors que je souhaiterais que les 2 s'exécutent en simultané(devinez pourquoi :wink: )
Savez-vous de quelle façon je peux réaliser ce programme?

PostPosted: Thu Jan 21, 2010 11:44 pm
by THE-DEATH
Il te faut davantage te renseigner sur les binaires, en l'occurence sur le format PE.
Il te faut savoir que la concaténation de 2 fichiers binaires ne permet aucunement de faire executer ces 2 programmes en un unique programme.

Fais un petit tour ici par exemple, des connaissances en bas niveau te seront nécessaire :
http://www.microsoft.com/whdc/system/platform/firmware/PECOFF.mspx
http://msdn.microsoft.com/fr-ca/magazine/cc301805%28en-us%29.aspx
http://msdn.microsoft.com/en-us/library/ms809762.aspx

Une petite docu en plus de te montrer que la programmation est un poil plus complexe que des algorithmes de ce genre (cf: ton code)

PS: essaies de passer par la section présentation a l'occasion ;)

PostPosted: Fri Jan 22, 2010 11:23 am
by TorTukiTu
Si tu veux faire ça simplement (et salement), va voir le topic "binder d'exe" du forum.

La tortue.

Ps: c'est normal que tu n'executes que le premier pe. Si tu veux faire comme ça, il va falloir que tu ajoutes en debut de fichier une en-tête capable d'extraire et d'executer tes deux programmes. (exactement ce qui a été fait dans le code que tu trouveras dans la section "binder d'exe".)

Autrement, pour faire la chose correctement (et pas en gorai style comme ci dessus), il te faudra maitriser les bases de l'asm et connaitre un peu le format pe comme te l'a dit slimm.

PostPosted: Fri Jan 22, 2010 1:32 pm
by Sliim
J'ai rien dis moi :lol: Fatigué tortue ? ^^

PostPosted: Fri Jan 22, 2010 4:13 pm
by TorTukiTu
Oula effectivement, je suis crevé :oops: Navré Sliim.

La tortue.

PostPosted: Fri Jan 22, 2010 4:28 pm
by DENEKAR
Merci beaucoup, la documentation est très intéressante :D
Je vous laisse, j'ai de la lecture :wink: