LD_PRELOAD如何更新库函数

问题描述 投票:0回答:1

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

linux elf loader libc ld-preload
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.