我知道我们可以使用 LD_PRELOAD
技巧来替换 libc 函数,例如 malloc()
。那么 LD_PRELOAD
究竟是如何工作的呢?它会取代 GOT/PLT 条目吗?
最佳答案
它将预加载的库放在符号搜索路径的开头。这样,所有对 malloc
的引用都绑定(bind)到它的实现,而不是 libc 中的实现。
在glibc中,可以看到elf/rtld.c
中的代码(调用_dl_map_object_deps
)和_dl_map_object_deps
的实现elf/dl-deps.c
中的函数。
关于linux - LD_PRELOAD如何更新库函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58565970/