假设我有一个动态链接的可执行文件,它依赖于 libfoo 和 libbar 中的符号;并且它可以在我的系统上运行,即它找到这些共享库的适当版本。现在,我想用系统上 libfoo 的编译代码“替换”libfoo 上的动态依赖项,获得一个仅动态依赖于 libbar 的新可执行文件。
这可能吗?至少,在现代的 Linux 系统上?
如果有帮助,您还可以假设可执行文件来自单个 C 源文件;我有这个文件;我使用/不使用调试信息或使用您喜欢的任何编译开关进行编译。
这可能吗?
不。出于所有实际目的,修改链接的
a.out
libfoo.so
您可能会幸运地使用 statifier,但这并不总是有效,并且会创建巨大的二进制文件。