linux - LD_PRELOAD如何更新库函数

标签 linux elf loader libc ld-preload

我知道我们可以使用 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/

相关文章:

创建加载动画

android - Loader 的生命周期是多少?

c - 共享库中定义的变量的内存位置

encoding - ELF 中的 NEEDED 条目是否有标准编码?

java - 在 Java 应用程序中混合运行 32 位和 64 位 native 库

c - 流程的完整状态

linux - 我在哪里可以找到足够好的默认配置来编译 Linux 内核?

Linux/Unix bash 基本脚本 awk/sed

linux - 创建包含内容的文件,其中内容有新行

php - 巴卫视;它是什么以及如何配置?