2010-02-12 3 views
3

Il existe de nombreux programmes qui vous permettront d'assembler quelques fichiers ensemble et de générer un exécutable qui a le code nécessaire pour les extraire. D'une certaine manière, ces fichiers résident dans l'exécutable. Je suis intéressé à faire la même chose; comment cela est-il fait?Comment sont créés les exécutables auto-extractibles?

FYI, je m'intéresse principalement aux fichiers Windows .exe, si cela fait une différence.

+0

une étiquette "comment-truc-travaux"? –

+0

Oui, si je sais comment c'est fait (ou comment ça marche), alors je peux le faire. – Phil

+0

@Mitch: Comment-stuff-works a été utilisé plus de 30 fois déjà, ce n'est pas une étiquette C++, mais quelqu'un va obtenir le badge taxonomiste pour cela. –

Répondre

2

Regardez ceci: Article

+0

La mise en évidence dans l'article est la fonction UpdateResource() dans l'API Windows. – Phil

0

Il y a aussi des produits comme pkzip et winzip qui le font pour vous. Si votre temps vaut quelque chose, ce serait plus efficace.

1

Les fichiers .exe auto-extractibles sont généralement des fichiers d'archive (zip, rar, tar, etc.) concaténés avec un petit programme qui exécute l'extraction puis exécute le programme extrait de l'archive.

Un très sophistiqué pourrait extraire l'archive en mémoire, puis sauter au code extrait et l'exécuter, mais dans l'ancien temps, ce genre de chose était plus facile à faire. Si vous vouliez écrire le vôtre dans Windows, vous créeriez une petite application de console qui effectuerait l'extraction, et vous incluriez le programme «réel» dans les ressources des programmes de la console.

+0

Ces fichiers d'archive sont-ils simplement ajoutés au programme "réel" qui effectue l'extraction? – Phil

+0

Dans les temps anciens oui, maintenant je pense que vous avez des problèmes avec les scanners de virus si votre archive n'est pas comptabilisée dans l'en-tête exe. –

0

UPX est un packer bien connu pour Windows. EXE qui peut être trouvé ici sur WikiPedia. Et voici le site principal sur sourceforge pour UPX.

Espérons que cela aide, Cordialement, Tom.

Questions connexes