我知道我们可以使用LD_PRELOAD
技巧来替换libc函数,例如malloc()
。那么LD_PRELOAD
到底如何工作?它会取代GOT / PLT条目吗?
答案 0 :(得分:1)
它将预加载的库放在符号搜索路径的开头。这样,对malloc
的所有引用都绑定到其实现,而不是libc中的实现。
在glibc中,您可以在elf/rtld.c
中看到代码(对_dl_map_object_deps
的调用),在_dl_map_object_deps
中可以看到elf/dl-deps.c
函数的实现。