LD_PRELOAD如何更新库功能

时间:2019-10-25 21:30:45

标签: linux elf loader libc ld-preload

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

1 个答案:

答案 0 :(得分:1)

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

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