繁体   English   中英

直接调用动态链接器时确定真正的可执行文件

[英]Determine real executable when invoking dynamic linker directly

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

有一点背景知识-我正在尝试使用适用于OpenJDK的自定义ELF加载程序参数来获取fakechroot。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM