【发布时间】:2017-07-11 10:30:38
【问题描述】:
如何从可执行elf文件中的名称获取函数或全局变量的地址? dlsym() 可以获取动态库文件中函数的地址。但它不适用于可执行的 elf 文件。在解析 ELF 文件之前,我想检查是否有一个库为可执行的 elf 文件提供相同的功能?然后我可以从函数名或全局变量的名称中获取地址。
【问题讨论】:
标签: function variables elf dlsym
如何从可执行elf文件中的名称获取函数或全局变量的地址? dlsym() 可以获取动态库文件中函数的地址。但它不适用于可执行的 elf 文件。在解析 ELF 文件之前,我想检查是否有一个库为可执行的 elf 文件提供相同的功能?然后我可以从函数名或全局变量的名称中获取地址。
【问题讨论】:
标签: function variables elf dlsym
如果您使用-Wl,-E(或者它的各种变体,例如-export-dynamic)编译可执行文件,那么链接器将为可执行文件生成一个动态部分,您可以使用dlsym 和@ 访问其符号987654324@句柄,如dlsym (NULL, "foo")。
【讨论】: