将共享对象加载到Linux中的特定进程

将共享对象加载到Linux中的特定进程

我想加载一个共享对象到某些进程,需要满足某些条件

  • 仅加载到特定进程而不是全部进程
  • 必须在流程代码开始执行之前完成
  • 这些过程不是我的

在 Linux 上支持此功能有哪些可用方法?

可以用“/etc/ld.so.preload”或“LD_PRELOAD=/my/lib.so”来完成吗?为此需要内核模块吗?

任何帮助,将不胜感激

谢谢!

答案1

您可以使用的代码类似于:

LD_PRELOAD=/my/lib.so /path/to/binary

如果二进制需要此库,您还可以使用:

LD_LIBRARY_PATH=/my:$LD_LIBRARY_PATH /path/to/binary

并且二进制文件将在/my标准路径中搜索之前在路径中搜索该库

相关内容