标签: c linux dll shared-libraries
是否可以使用c中的动态加载(DL)库来检索库的第一条指令的地址?换句话说,我想知道库加载的地址。
答案 0 :(得分:1)
有几种方法可以做到:
使用glibc扩展dladdr从共享对象获取有关任何导出函数的信息。但是,您需要具有导出符号的名称才能执行此操作。 它返回一个Dl_info结构,其中包含加载对象的基址。有关详细信息,请参阅'man dladdr'。
读取并解析/ proc / self / maps,查找您的库并注意设置了可执行位的段的起始地址(权限中为“x”)。