我们可以在文件中包含一个 .so 文件 LD_PRELOAD 吗?

问题描述

我有一个已编译并可能用 C 编写的文件。该文件需要一个 .so 文件(库文件)。 C 编译文件名为 /usr/local/solar/excusekey.so文件/usr/local/libsolar/libexcuse.so 当我删除 /usr/local/libsolar/libexcuse.so 然后我运行 /usr/local/solar/excusekey 然后它显示一个错误

ERROR : ld.so object '/usr/local/libsolar/libexcuse.so' from 
LD_PRELOAD cannot be preloaded: ignored.

但是当我运行 unset LD_PRELOAD 并再次运行 /usr/local/solar/excusekey 时,它显示相同的错误

/usr/local/solar/excusekey 是否在 C 代码中加载了 libexcuse.so 库?或者有其他技巧或方法吗?

解决方法

/usr/local/solar/excusekey 是否在 C 代码中加载 libexcuse.so 库?

在对 excusekey 一无所知的情况下,我们无法判断。

可以编写一个应用程序来检查 LD_PRELOAD 是否包含所需的库,如果没有,则设置 LD_PRELOAD 并重新exec 本身。

这是否是这里正在发生的事情是任何人的猜测。

strace -s1024 -fve execve excusekey 下运行应用程序可能会提供有关应用程序正在做什么的线索。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...