用于修改ELF二进制文件的动态部分的工具

前端之家收集整理的这篇文章主要介绍了用于修改ELF二进制文件的动态部分的工具前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

是否有用于修改ELF二进制文件的动态部分中的共享库条目的工具?我想显式修改二进制文件中的共享库依赖项(即用自定义路径替换现有库的路径)

最佳答案

replace path to existing library with a custom path

如果这是你自己的库,那么你可能会像这样链接它:

$cc -o prog1 -l/full/path/to/libABC.so prog1.o

而不是正确的:

$cc -o prog1 -L/full/path/to/ -lABC prog1.o

第一种方法告诉Linux链接器应用程序正好需要该库,只有该库并且不应该覆盖.第二种方法告诉应用程序需要安装在系统某处的库,可以是默认库路径,也可以是$LD_LIBRARY_PATH指向的库(将在运行时查找). -L仅在链接时使用.

否则,不要修补ELF,首先检查是否可以使用符号链接替换库.这是通常的技巧:之后很难修改可执行文件,但很容易更改符号链接指向的位置.

猜你在找的Linux相关文章