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

Linux Discussion :

Linker un fichier texte à un exécutable


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2020
    Messages : 6
    Par défaut Linker un fichier texte à un exécutable
    Bonjour,

    Après maintes recherches sur tous les forums, je ne pense pas que ma question ait déjà été posée ... ?

    Je souhaites insérer (linker) un fichier à un exécutable, un fichier texte lisible que je peux ouvrir avec n'importe quel éditeur de texte. J'ai vu plusieurs façons de linker des librairies à un exécutable, d'extraire ces infos avec "ldd" mais ce n'est pas cela que je veux.

    Contexte :
    1 - Je crée un exécutable, j'insère mon fichier dans cet exécutable (si c'est possible) sans altérer l'exécutable
    2 - A n'importe quel moment et sur n'importe quelle plate-form, j'extrais ce fichier où sont écrites des informations sur cet exe (pas seulement les librairies sinon je me contenterais de ldd)

    Ne trouvant rien sur le net à ce sujet, je me demande si c'est possible ?

  2. #2
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 299
    Par défaut
    Bonjour

    Étrange.
    L'édition de liens résout les symboles non compris dans le programme principal en allant chercher du code exécutable ailleurs. Ton fichier texte n'est probablement pas exécutable; et surtout, il ne résout aucune ambiguïté ou méconnaissance du programme principal.

    Quel est la vraie finalité ?
    Si c'est la définition de dépendances, tu peux avoir un script qui vérifie la présence de fichiers, avant l'exécution. Ce script devient le nouveau point d'entrée. Et non l'exécutable initial.
    Si c'est pour diffuser un logiciel comme un tout, complet, tu peux fabriquer un paquet.

  3. #3
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2020
    Messages : 6
    Par défaut
    Merci d'avoir répondu,

    Le fichier texte auquel je fais référence n'est pas un exécutable non.

    Je me ré exprime:

    J'ai un exécutable toto.exe. Celui-ci a été compilé sur une VM linux RH 7.1 par exemple avec les librairies lib1.so, lib2.so, lib3.so à 15h le mardi 5 janvier (toutes ces infos sont juste une mise en place du contexte que je veux). la VM linux s'appel linuxblablabla.

    A la base, j'ai un fichier dans lequel sont écrites toutes ces informations et je veux que ce fichier soit linker à l'éxecutable de sorte que sur n'importe quelle plate-form où je me trouve, une commande que j'effectue sur l'exécutable me permet de générer ce fichier et je peux ainsi savoir à tout moment comment cet exécutable a été produit, avec quels libs, sur quelle machine, à quelle date etc. L'idée est d'être certain que les informations contenues dans ce fichier n'aient pas été modifiées par une action humaine.

    J'ai remarqué que lorsque je fais "strings toto.exe", j'obtiens pas mal d'informations sur les librairies (je suis nouvel utilisateur linux depuis peu). Une alternative à ma requête serait de pouvoir ajouter les infos que je veux dans le résultat de la commande "strings toto.exe".

    J'espère être plus clair maintenant et merci d'avance pour les réponses

  4. #4
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 411
    Par défaut
    Il y a une solution mais très dépendante du type de fichier et donc potentiellement dangereux...
    Exemple sur une copie de 'ls':
    Le fichier texte que l'on va insérer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ cat masession 
    Fichier: foobar
    Role: ls
    Date:24/01/2020
    La commande d'insertion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ objcopy --add-section .masession=masession --set-section-flags .masession=noload,readonly test_ls
    La commande de dump de la section que l'on a rajouté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ objcopy --dump-section .masession=dumpmasession  test_ls
    Ce qui donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ cat dumpmasession 
    Fichier: foobar
    Role: ls
    Date:24/01/2020

  5. #5
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2020
    Messages : 6
    Par défaut
    Merci pour cette réponse, je pense que c'est exactement ce que je cherche !

    J'ai réussi à appliquer cette solution partiellement car --dump-section n'est disponible qu'à partir de la version 2.25 de objcopy.

    Connaitriez-vous l'équivalent de cette commande pour les versions plus anciennes ? J'ai la possibilité d'utiliser --output-target décrit comme une alternative à --dump-section sur cette page : https://stackoverflow.com/questions/...an-elf-section

    Seulement quand je l'execute : objcopy -O binary --only-section test_main.exe
    J'ai objcopy: 'test_main.exe': No such file (cet exe existe bien et j'ai réussi la commande d'ajout) et je crois comprendre qu'il me fournirait un binaire ce que je ne souhaites pas.

    En tout cas vraiment merci, je sens que j'approche de ce que je veux

  6. #6
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 411
    Par défaut
    Peut-être avec (mais moins beau) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ readelf -Wp .masession test_ls
     
    Vidange textuelle de la section «*.masession*»*:
      [     0]  Fichier: foobar^JRole: ls^JDate:24/01/2020^J

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 47
    Dernier message: 04/03/2015, 13h30
  2. [phpMyAdmin] exécuter fichier texte contenant instructions SQL
    Par antoinev2 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 01/09/2010, 14h58
  3. Réponses: 26
    Dernier message: 29/06/2010, 17h35
  4. Réponses: 3
    Dernier message: 06/03/2008, 17h50
  5. Un fichier texte dans mon exécutable
    Par MonPc dans le forum Débuter
    Réponses: 8
    Dernier message: 22/02/2008, 11h09

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