Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试使用exec系统调用来启动另一个可执行文件,但该可执行文件正在使用readlink()on/proc/self/exe来确定其文件位置。我希望它认为它与父可执行文件具有相同的位置,但它决定了它的实际位置。我认为我可以通过使用LD_PRELOAD拦截readlink()呼叫来完成类似的事情,但是有没有更简单或更直接的方法来完成这个?我只寻找可以在父可执行文件中实现的解决方案,修改子文件不是一种选择。
exec
readlink()
/proc/self/exe
LD_PRELOAD
创建可执行文件的硬链接:
$sudo ln /bin/ls ./ls [sudo] password for plasser: # check it: $ls -l ls -rwxr-xr-x 2 root root 110080 mrt 10 2016 ls #call it: $./ls -l /proc/self/exe lrwxrwxrwx 1 plasser uri 0 mrt 3 18:36 /proc/self/exe -> /home/plasser/krant/ls $