【问题标题】:How does LD_PRELOAD update the library functionLD_PRELOAD 如何更新库函数
【发布时间】:2019-10-25 21:30:45
【问题描述】:

我知道我们可以使用 LD_PRELOAD 技巧来替换 libc 函数,例如 malloc()。那么LD_PRELOAD 究竟是如何工作的呢?它会取代 GOT/PLT 条目吗?

【问题讨论】:

    标签: linux elf loader libc ld-preload


    【解决方案1】:

    它将预加载的库放在符号搜索路径的开头。这样,所有对 malloc 的引用都绑定到它的实现,而不是 libc 中的实现。

    在glibc中可以看到elf/rtld.c中的代码(对_dl_map_object_deps的调用)和elf/dl-deps.c_dl_map_object_deps函数的实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-08
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      • 1970-01-01
      • 2015-01-17
      相关资源
      最近更新 更多