IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Créer un exe à partir d'un exe principal


Sujet :

C

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Par défaut Créer un exe à partir d'un exe principal
    Bonjours,

    Je souhaiterais faire un exécutable qui permette de créer un exécutable a partir de celui si (je ne c'est pas si vous me comprenez ) .

    j'ai écrit un petit exécutable qui s'appelle mot.exe qui écrit a l'écran :" -=| Bonjour |=- " (bon d'accord se n'est pas utile mais c'est pour ma connaissance personnelle ), et je voudrais l'incorporer a un autre exe qui me permette de changer le mot a afficher. Par exemple au lieu d'écrire : -=| Bonjour |=- , il écrira -=| Bonsoir |=-

    mais je ne c'est pas ou chercher et quoi chercher
    merci d'avance

    (Je n'est pas vu de rubrique pour se présenter, si faut le faire je ment excuse et le ferais avec plaisir)

  2. #2
    Membre chevronné Avatar de dapounet
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 469
    Par défaut
    Il suffirait que le premier programme aille chercher a phrase à afficher dans un fichier.

  3. #3
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Je n'ai rien compris. N'oublie pas qu'on n'est pas toi, on ne sait pas ce que tu as en tête. Sois très précis.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Par défaut
    dsl mais je n'est jamais été très fort en explication...

    je veux faire un exe qui créer un nouveau exe avec un paramètre du 1er.
    je vais essayer de faire un schéma:

    exe principale(choix de variable [ exe secondaire( printf variable) ] )

    j'ai un seul exécutable, quand je le lance il me demande un mot pour variable, et il crée un nouveau exécutable qui affiche le mot a l'écran quand on le lance.

  5. #5
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Sniper-Omega Voir le message
    je veux faire un exe qui créer un nouveau exe avec un paramètre du 1er.
    je vais essayer de faire un schéma:

    exe principale(choix de variable [ exe secondaire( printf variable) ] )

    j'ai un seul exécutable, quand je le lance il me demande un mot pour variable, et il crée un nouveau exécutable qui affiche le mot a l'écran quand on le lance.
    Pour créer un exécutable, il faut écrire (puis lancer) un fichier binaire qui contient le préambule et les instructions machines nécessaires à l'exécution du programme. C'est le travail de ta chaine de compilation (compilateur, éditeur de lien). Tu veux écrire un compilateur et un éditeur de lien ?

    J'ai du mal à comprendre la finalité de l'opération... attention à ne pas se perdre dans des projets inutiles...

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 504
    Par défaut
    Citation Envoyé par Sniper-Omega Voir le message
    j'ai un seul exécutable, quand je le lance il me demande un mot pour variable, et il crée un nouveau exécutable qui affiche le mot a l'écran quand on le lance.
    Générer un fichier exécutable à partir de rien (sans compilateur) est très compliqué pour un débutant.

    Il n'existe pas de fonction système pour le faire. Donc, soit il faut que tu embarques un compilo ou bien que tu t'assures qu'il soit présent sur le système-cible (ce qui, toutefois, est généralement le cas sur un Linux), soit que tu réécrives un générateur et un éditeur de lien. N'y songe même pas.

    Tu peux éventuellement créer un exécutable générique qui contiendrait une chaîne assez grande pour faire face à tous les cas de figures, et que tu modifierait directement dans le fichier objet. C'est faisable mais extrêmement sale.

    En revanche, tu peux très facilement produire un fichier .BAT ou un shell script depuis ton exécutable principal.

    D'autre part, si ce programme est à ton attention exclusive et que ton exécutable sert simplement à produire des données nécessaires à un projet plus grand, tu peux adopter l'approche inverse en déposant le résultat dans un fichier et en incluant ce fichier à la compilation du second exécutable. Tu peux également paramétrer ton IDE ou tes makefiles pour que cet exécutable soit lancé automatiquement à la compilation de ton projet.

  7. #7
    Membre très actif Avatar de tim974
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 175
    Par défaut
    Donc tu veux un exe qui selon le choix d'un menu, te crée un autre exe correspondant au critère sélectionné.

    Si tu choisis "bonsoir" dans ton menu de l'exe 1, cela te crée un exe 2 qui dira "bonsoir" ?

    Hum, effectivement, cela me semble compliqué pour débuter . Générer un exécutable n'est pas chose aisée. Tu as la solution proposée précédemment, c'est à dire, pré générer tous les exécutables et les appeler dans ton exe 1.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Par défaut
    C'est sa tim974, tu a tout comprit

    mais je ne c'est pas trop de quel coter partir: faire un mini compilateur embarquer sera le plus compliquer a faire mais le plus pratique par la suite (je pense), les choses "extrêmement sales" je n'aime pas du tout sa ^^

  9. #9
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 504
    Par défaut
    Citation Envoyé par Sniper-Omega Voir le message
    C'est sa tim974, tu a tout comprit

    mais je ne c'est pas trop de quel coter partir: faire un mini compilateur embarquer sera le plus compliquer a faire mais le plus pratique par la suite (je pense), les choses "extrêmement sales" je n'aime pas du tout sa ^^
    Ben, à mon avis, un mini-compilateur embarqué, ça restera extrêmement sale.

    Question récurrente à 1000 euros : tu veux faire quoi au final ?

  10. #10
    Membre chevronné Avatar de KindPlayer
    Profil pro
    Inscrit en
    Février 2007
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 471
    Par défaut
    il est fort, il veut écrire un compilateur pour pouvoir afficher bonjour ou bonsoir.
    Pour un exemple simple comme afficher bonjour bonsoir, tu n'as qu'a préécrire un fichier source C, et dans lequel ton premier programme irait changer ce qu'il faut dans ce source (par exemple (printf( bonjour \n");---> printf("bonsoir\n"). Et ensuite recompiler ce source avec gcc (que tu peux lancer depuis ton premier exe)

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Par défaut
    Question récurrente à 1000 euros : tu veux faire quoi au final ?
    (1000 euros se fait pas beaucoup ^^)

    Le projet final c'est pour faire un post-it protéger par mot de passe. Mon exécutable me demande le mot de passe et le message a afficher, ensuite il crée un exe qui contiens le message protéger. Le post-it s'ouvre que si on rentre le bon mot de passe. Est ce que tu me comprend?

    afficher bonjours ou bonsoir c'était un exemple, je vais pas écrire un compilateur pour afficher 1 mot a l'écran je ne suis pas encore secouer a se point ^^

  12. #12
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 504
    Par défaut
    Citation Envoyé par Sniper-Omega Voir le message
    Le projet final c'est pour faire un post-it protéger par mot de passe. Mon exécutable me demande le mot de passe et le message a afficher, ensuite il crée un exe qui contiens le message protéger. Le post-it s'ouvre que si on rentre le bon mot de passe.

    afficher bonjours ou bonsoir c'était un exemple, je vais pas écrire un compilateur pour afficher 1 mot a l'écran je ne suis pas encore secouer a se point ^^
    Ben, créer un exécutable par Post-It, tu reconnaîtras que c'est bien tordu quand même ! Tu prépares le gruik contest ou quoi ? D'autant plus qu'un simple type sur le fichier de ton exécutable suffira à en révéler le contenu ! En outre, en fonction de la politique de sécurité du système sur lequel ils doivent fonctionner, il est possible que l'utilisateur ne puisse tout simplement pas les lancer.

    Si tu veux créer un système de Post-It codés, tu fais un seul exécutable pour créer le message, le révéler et le détruire, et tu le places dans un endroit où tout le monde pourra l'appeler. Ensuite, tu stockes tous tes messages au même endroit. Dans un fichier, ou éventuellement la base de registre si tu bosses sous Windows. Enfin, tu utilises une fonction de cryptage pour coder le message que tu vas stocker.

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Par défaut
    gruik contest ??

    non car le post-it contient le message crypter, il le décrypte que si le mot de passe est correct

    (l'exécutable principal crypte le message avant de le donnée au post-it)

  14. #14
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Sniper-Omega Voir le message
    gruik contest ??
    http://www.junglewalk.com/popuptop.a...alAudioID=5620

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Par défaut
    En gros je doit comprendre que mon idée est très très sale si je ne me trompe pas ?
    vous avez l'aire de dire que c'est pas une très bonne idée mon projet post-it .
    Je devrais laisser tomber le post-it et partir sur un exe qui crypte et décrypte un fichier txt? (mais j'en est deja fais un arff )

    Dite le sincèrement sa ne me dérangera nullement au contraire même sa m'évitera de récidiver dans des projet similaire.

    Au passage, peux t'ont utiliser " * " dans la fonction rename??
    genre : rename("test**", "test00);

  16. #16
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 504
    Par défaut
    Rename * en C, je ne crois pas.

    Pour la génération de .exe, on t'a dit dès le départ que c'est une très mauvaise idée. Ce n'est nullement fait pour te décourager. Bien au contraire.

    La génération d'un exécutable est un processus compliqué. Si ton système de post-it n'est qu'un prétexte pour te permettre de générer cet exécutable, alors oui, tu peux regarder comment on fait, mais sache que c'est le boulot du compilateur. N'espère pas générer un exécutable graphique sous Windows, mais tu peux essayer de pondre un .exe en mode console type DOS.

    Pour cela, tu auras besoin des spécifications du format .exe en console, et d'un peu d'assembleur pour aller écrire directement ce que le compilateur C t'aurait produit :

    http://www.fileformat.info/format/exe/corion-mz.htm
    http://spike.scu.edu.au/~barry/interrupts.html

    Bon courage. C'est un excellent exercice si tu y arrives, et ça se faisait énormément jusqu'au milieu des années 1990 (Ââh, les démos, le DOS 6.0, la SB, la GUS, les disquettes de boot sans emm386 ...), mais ça sort complètement du cadre du langage C.

  17. #17
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Par défaut
    je préféré faire un truc propre et qui sera possible de réaliser par mes soins (et quelque conseils), donc je vais laisser tomber se projet.

  18. #18
    Membre émérite
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Par défaut
    Si c'est un programme Windows et que tu désire vraiment intergrer des données dans l'executable. Tu dois pouvoir faire cela en mettant les données dans les ressources du programme. Il faudra bien sur qu'elle soit cryptées car il est très facile d'extraire les ressources d'un executable Windows.

  19. #19
    Membre chevronné Avatar de dapounet
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 469
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    N'espère pas générer un exécutable graphique sous Windows, mais tu peux essayer de pondre un .exe en mode console type DOS.
    Les exécutables graphiques et console sont quasiment les mêmes, il y a juste le champ Subsystem de l'optional header qui change à ma connaissance.

    Mais pourquoi est-ce que les gens ne peuvent pas simplement oublier l'époque de l'ASM 16 bits ?

  20. #20
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 504
    Par défaut
    Citation Envoyé par dapounet Voir le message
    Les exécutables graphiques et console sont quasiment les mêmes, il y a juste le champ Subsystem de l'optional header qui change à ma connaissance.
    Non. Un .exe à la sauce Windows (PE) contient un bout de code typiquement pointé par les headers originaux (MZ) se contentant d'afficher « this program cannot be run in DOS mode », le reste étant une structure basée sur COFF.

    Maintenant, peut-être que les compilos Windows génèrent du PE dans tous les cas (pas utilisé de compilo sous Windows depuis 5 ans), mais moi, je parlais surtout de faire un exécutable DOS pur.

    Mais pourquoi est-ce que les gens ne peuvent pas simplement oublier l'époque de l'ASM 16 bits ?
    Parce que c'est cool, c'est instructif, c'est facile d'accès et c'est encore très répandu ! C'est envisageable dans le cadre du projet qui nous intéresse et en attendant EFI, les interruptions du BIOS fonctionnent globalement de la même manière jusqu'à ce que ton OS soit lancé.

Discussions similaires

  1. créer .exe à partir d'un .jar sans avoir besion de la JVM
    Par boumacmilan dans le forum Général Java
    Réponses: 1
    Dernier message: 02/09/2009, 17h47
  2. Réponses: 2
    Dernier message: 28/02/2008, 12h09
  3. Réponses: 5
    Dernier message: 25/02/2008, 21h08
  4. Créer un .exe à partir d'un VBS
    Par TicTac75 dans le forum VBScript
    Réponses: 3
    Dernier message: 28/03/2007, 13h14
  5. Réponses: 6
    Dernier message: 22/03/2007, 10h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo