如何从C的可执行elf文件中的名称获取函数或全局变量的地址?

时间:2017-07-11 10:30:39

标签: function variables elf dlsym

如何从可执行elf文件中的名称获取函数或全局变量的地址? dlsym()可以获取动态库文件中的函数地址。但它不适用于可执行的elf文件。在解析ELF文件之前,我想检查是否有一个库为可执行的elf文件提供相同的功能?然后我可以从名称中获取函数或全局变量的地址。

1 个答案:

答案 0 :(得分:1)

If you compile the executable file with -Wl,-E (or it's various variants such as -export-dynamic), then the linker will produce a dynamic section for the executable, and you can access its symbols with dlsym and a NULL handle, e.g., dlsym (NULL, "foo").