安装
sudo apt install patchelf
使用
patchelf --set-interpreter <libc_symbol_path> <file_name>
LD_PRELOAD=<libc_name> <filename>
注:<libc_name>要放在/lib/<linux-gun>/目录下
例如
patchelf --set-rpath "$(pwd)" ./foo
这样RUNPATH就被加进foo了。但是这里的RUNPATH还是绝对路径的方式写入程序的。
我们可以用
readelf -d foo
ldd ./foo
查看路径
清除原有程序的链接路径
patchelf --shrink-rpath foo
设置链接路径为程序运行的相对路径(推荐)
patchelf --set-rpath '$ORIGIN/' foo
网友评论