2017-07-11 3 views
0

Comment obtenir l'adresse de la fonction ou de la variable globale à partir de son nom dans un fichier elf exécutable? dlsym() peut obtenir l'adresse de la fonction dans un fichier de bibliothèque dynamique. Mais cela ne fonctionne pas pour le fichier elf exécutable. Avant d'analyser le fichier ELF, je veux vérifier s'il existe une bibliothèque qui fournit la même fonction pour le fichier elf exécutable? Ensuite, je peux obtenir l'adresse de la fonction ou de la variable globale à partir de son nom.Comment obtenir l'adresse de la fonction ou la variable globale de son nom dans le fichier elf exécutable pour C?

Répondre

0

Si vous compilez le fichier exécutable avec -Wl,-E (ou ses différentes variantes telles que -export-dynamic), l'éditeur de liens produira une section dynamique pour l'exécutable, et vous pouvez accéder à ses symboles avec dlsym et une poignée NULL, par exemple, dlsym (NULL, "foo") .