Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1586 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [Linux] Accéder dynamiquement à l'addresse d'une fonction statique

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Linux] Accéder dynamiquement à l'addresse d'une fonction statique

n°2064559
sligor
Clavier qwerty: accent pas top
Posté le 18-03-2011 à 11:12:14  profilanswer
 

Je me demandais s'il était possible de trouver dynamiquement l'adresse d'une fonction liée statiquement dans un programme.
Un équivalent de dlsym(), mais sur le programme lui-même.

 

J'ai pas trouvé d'informations à ce sujet. J'imagine qu'il faut en fait récupérer le nom du programme, utiliser la libelf sur ce fichier, chercher le symbole et récupérer l'adresse.

 

Qu'en pensez vous ?  :??:


Message édité par sligor le 18-03-2011 à 14:13:14
mood
Publicité
Posté le 18-03-2011 à 11:12:14  profilanswer
 

n°2064633
Un Program​meur
Posté le 18-03-2011 à 14:19:12  profilanswer
 

Compiler le main avec les flags qui vont bien pour que dlsym() fonctionne dessus est aussi une piste.


---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°2064662
sligor
Clavier qwerty: accent pas top
Posté le 18-03-2011 à 15:36:12  profilanswer
 

merci  :jap: ,  
 
en effet ça marche bien
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <dlfcn.h>
  4. int main(){
  5.   void *handle,*error;
  6.   if ((handle = dlopen (NULL, RTLD_NOW)) == NULL) {
  7.     fputs (dlerror(), stderr);
  8.     exit(1);
  9.   }
  10.   printf("main=%x\n",dlsym(handle,"main" ));
  11.   if ((error = dlerror()) != NULL)  {
  12.     fputs(error, stderr);
  13.     exit(1);
  14.   }
  15.   dlclose(handle);
  16.   return 0;
  17. }


 

Citation :


$gcc -g test.c -ldl -rdynamic
$./a.out
main=8049eb2


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [Linux] Accéder dynamiquement à l'addresse d'une fonction statique

 

Sujets relatifs
Programmation Java/C sous Linux/Windows^^Afficher/supprimer le contenu d'une bdd en fonction d'un id précis
Fonction recherche d'une ligneLancer Script en fonction de l'heure ...
[XSD] Validation d'un attribut en fonction d'un autrecompiler un programme linux pour le rendre executable sous windows
programmer la fonction mathématique dérivée seconde en langage cRécupèrer des données en fonction de l'heure.
[AS2] Problème fonctionnement fonction hitTest [RESOLU !]programmer fonction If-Thene-Else pour des fonction booleene
Plus de sujets relatifs à : [Linux] Accéder dynamiquement à l'addresse d'une fonction statique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR