Pages : 1
#1 Le 23/10/2023, à 13:39
- bird12358
Extraction d'info d'une librairie
Hello,
J'ai compilé une librairie en SO .
Je voudrais extraire les fonctions et leurs paramètres. J'ai l'impression que ce n'est pas possible ?
Quand j'utilise la commande readelf, je ne trouve que les fonctions mais pas leur paramètres. Il y a une option au niveau de la compilation qui exporte ces informations?
Hors ligne
#2 Le 23/10/2023, à 18:25
- Nuliel
Re : Extraction d'info d'une librairie
Bonjour,
J'imagine que tu veux extraire le nom des fonctions qui sont appelables de l'extérieur et ses paramètres.
En faisant quelques recherches: https://unix.stackexchange.com/question … -libraries et https://stackoverflow.com/questions/155 … n-elf-file
La réponse rapide: on peut mais il faut garder les symboles de debug, avec -g (on peut monter à -g3 mais j'ai jamais eu besoin)
Mais pourquoi veux tu faire cela? Vu que tu as le code, c'est juste copier les prototypes de fonctions exportées.
Un exemple:
#include <stdio.h>
void hello(char *text)
{
printf("Hello world!\n");
printf("%s\n", text);
}
je compile avec
gcc -shared -o libhello.so -fPIC hello.c
et on peut voir qu'il n'y a pas les paramètres avec gdb par exemple
pwndbg> p hello
$1 = {<text variable, no debug info>} 0x1119 <hello>
Si on compile avec le -g
gcc -shared -o libhello.so -g -fPIC hello.c
on a
pwndbg> p hello
$1 = {void (char *)} 0x1119 <hello>
Donc -g est suffisant. Par contre comment récupérer les paramètres en dehors de gdb, ça c'est une bonne question.
Edit: j'ai trouvé https://stackoverflow.com/questions/225 … n-elf-file aussi
Dernière modification par Nuliel (Le 23/10/2023, à 18:36)
Hors ligne