微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决我们可以在文件中包含一个 .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 下运行应用程序可能会提供有关应用程序正在做什么的线索。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。