我之前曾想过,链接到动态库的程序会进入/etc/ld.so.preload
。
但是,我读过的地方
所有程序都尝试打开/etc/ld.so.preload,此行为已植入Glibc。
因此,为了避免使用glibc,我想到了用汇编代码编写程序。用nasm
和ld
编译。仍在加载/etc/ld.so.preload
库。
我的最终目标是编写一个程序,不尝试在/etc/ld.so.preload
中加载库。为此,我需要知道谁负责加载此程序以及如何编写这样的程序(无语言限制)?
谁负责在/etc/ld.so.preload中加载文件?
动态链接器是。使用GLIBC时,动态链接器为ld-linux.so
。
使用nasm和ld进行编译。仍在加载/etc/ld.so.preload库。
要么是您动态链接到GLIBC,要么上面的陈述是错误的。
实际上,我使用sudo运行它,而sudo需要ld.so.preload。我们可以通过任何方式使sudo静态链接吗?
您可以重建许多程序以进行静态链接,是的。但这会产生成本(磁盘空间,必须为每个安全修复程序重建所有程序等),并且可能并不完全是琐碎的。也不太可能解决您遇到的任何实际问题。