动态加载(DL)库和第一条指令

时间:2013-11-01 23:29:15

标签: c linux dll shared-libraries

是否可以使用c中的动态加载(DL)库来检索库的第一条指令的地址?换句话说,我想知道库加载的地址。

1 个答案:

答案 0 :(得分:1)

有几种方法可以做到:

  1. 使用glibc扩展dladdr从共享对象获取有关任何导出函数的信息。但是,您需要具有导出符号的名称才能执行此操作。 它返回一个Dl_info结构,其中包含加载对象的基址。有关详细信息,请参阅'man dladdr'。

  2. 读取并解析/ proc / self / maps,查找您的库并注意设置了可执行位的段的起始地址(权限中为“x”)。