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 :

[format elf] - Récupérer l'adresse d'une fonction dans une section .text


Sujet :

Linux

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut [format elf] - Récupérer l'adresse d'une fonction dans une section .text
    Bonjour à tous !

    Pour mon premier post, je souhaite vous faire part d'un petit problème que j'ai sur mon projet actuel.
    J'ai besoin de récupérer la table des symboles d'une application afin de récupérer l'adresse d'une fonction (grâce à son nom).
    Lorsque je fais en console

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $nm [programme]
    nm: [programme]: no symbols
    Si je fais en revanche un nm -D j'obtiens la liste de toutes les fonctions internes au programme. Un simple grep dessus et j'obtiens la fonction avec son adresse. nm m'indique également via la lettre T que les fonctions sont présentes dans la section .text

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $ nm [programme] -D | grep NomFonction
    0827cf60 T NomFonction
    A noter que je suis également passé par khexedit afin de chercher des strings data ref mais je n'ai rien trouvé de concluant

    En farfouillant le net, j'ai trouvé pas mal de docs sur le format elf. Malheureusement, il y a beaucoup trop d'informations et le tri s'avère difficile. Je sollicite votre aide afin de m'aiguiller sur un code quelconque ou une doc/tutorial pour que je puisse enfin voir la fin de mon projet

    Cordialement

    [EDIT]
    Bon en fait grâce à khexedit j'ai trouvé mes strings, il ne s'agissait que d'une erreur de ma part. Mais cela ne m'avance pas pour autant

  2. #2
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    relis toi, il n'y a aucune question dans ton post : quel est ton problème? que veux tu faire?
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  3. #3
    Membre éclairé
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Points : 750
    Points
    750
    Par défaut
    man elf

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    nicolas.sitbon
    relis toi, il n'y a aucune question dans ton post : quel est ton problème? que veux tu faire?

    J'ai envie de te donner le même conseil...

    Titre du topic : [format elf] - Récupérer l'adresse d'une fonction dans une section .text
    3e phrase du topic : J'ai besoin de récupérer la table des symboles d'une application afin de récupérer l'adresse d'une fonction (grâce à son nom).

    T'as besoin d'un point d'interrogation pour comprendre ??

    D[r]eadLock
    man elf


    En farfouillant le net, j'ai trouvé pas mal de docs sur le format elf. Malheureusement, il y a beaucoup trop d'informations et le tri s'avère difficile. Je sollicite votre aide afin de m'aiguiller sur un code quelconque ou une doc/tutorial pour que je puisse enfin voir la fin de mon projet


  5. #5
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Citation Envoyé par IoNAce Voir le message
    nicolas.sitbon
    relis toi, il n'y a aucune question dans ton post : quel est ton problème? que veux tu faire?

    J'ai envie de te donner le même conseil...

    Titre du topic : [format elf] - Récupérer l'adresse d'une fonction dans une section .text
    3e phrase du topic : J'ai besoin de récupérer la table des symboles d'une application afin de récupérer l'adresse d'une fonction (grâce à son nom).
    J'ai comme l'impression que tu donnes la réponse :
    Si je fais en revanche un nm -D j'obtiens la liste de toutes les fonctions internes au programme. Un simple grep dessus et j'obtiens la fonction avec son adresse. nm m'indique également via la lettre T que les fonctions sont présentes dans la section .text
    mis à part cela je ne vois pas d'autres questions.
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Je souhaiterai comprendre comment faire pour obtenir le même résultat que nm via un prog en C exploitant le format elf. Je ne trouve pas le code source de nm par exemple qui me serait probablement utile je pense (m'enfin c'est qu'une idée).

    Comme on est dans le forum C je pensais que j'avais été clair. Désolé si ça ne l'était pas.

  7. #7
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    OK, alors soit tu fais tout à la main en t'aidant du fichier elf.h présent normalement sur ton hdd (je t'aiderais au besoin si tu galères sur quelque chose) soit tu utilises une bibliothèque, libelf par exemple présente ici : http://www.mr511.de/software/
    Cordialement.
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci pour la librairie mais je pense pas y faire appel. Sauf si je compile en statique, le programme doit rester indépendant et cette solution ne m'avantage pas pour la suite du projet. J'ai bien pensé à regarder l'entête elf.h (fournis par défaut dans les distros) mais je ne sais pas du tout comment la remplir. Il faut bien comprendre que mon problème n'est pas de repmplir la structure à proprement parler mais savoir qui fait quoi et ou trouver l'information dans tous les pointeurs, char et autres entiers.
    Je souhaite trouver les noms des fonctions que je veux + leurs adresses dans l'exécutable (comme nm).
    J'aurais pu parser la sortie de nm mais je ne crois pas que ce soit une commande standard et je trouve plus amusant de fouiller dans un exe, ça me servira pour plus tard.

    Merci

Discussions similaires

  1. Appel d'une fonction dans une fonction d'une même classe
    Par script73 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/03/2015, 10h18
  2. Récupérer variable d'une fonction dans une fonction
    Par ForceFlo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/10/2013, 22h47
  3. récupérer une variable d'une fonction dans une classe
    Par free_dom dans le forum Général Python
    Réponses: 20
    Dernier message: 08/07/2009, 12h35
  4. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  5. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04

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