2014-12-07 33 views
1

我正在通过动态链接器直接运行可执行文件,并调用execve()以及动态链接器的路径。然而,与直接执行二进制文件不同,/proc/self/exe是动态链接程序的符号链接,而不是二进制文件的符号链接,它破坏了依赖于标准行为的某些应用程序(主要是OpenJDK)。有什么方法可以确定通过动态链接器执行的二进制文件的真实可执行文件路径吗?是否有/proc中的另一个文件,我可以读取它来获取路径,然后readlink()覆盖LD_PRELOAD覆盖,将/proc/*/exe的访问转换为真实路径?直接调用动态链接器时确定真正的可执行文件

对于一些背景 - 我试图让自定义ELF加载器参数为OpenJDK工作fakechroot。

回答

0

这可能太简单了,你已经考虑过了,但是你不能简单地读/proc/*/cmdline并找到真正的可执行文件作为ld的参数吗?当然,只有当您发现/proc/*/exe是符号链接ld时才是。

+0

我一直希望避免那:)但看到它已经过了一个星期没有其他答案,我想这是唯一的方法。 – Xenopathic 2014-12-17 22:06:52

相关问题