【问题标题】:Dynamically Loaded (DL) Libraries and first instruction动态加载 (DL) 库和第一条指令
【发布时间】:2013-11-01 23:29:15
【问题描述】:

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

【问题讨论】:

    标签: c linux dll shared-libraries


    【解决方案1】:

    有几种方法可以做到:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-13
      • 1970-01-01
      • 2011-05-13
      • 1970-01-01
      • 1970-01-01
      • 2013-12-18
      相关资源
      最近更新 更多