如何从SONAME获取库路径?

时间:2018-10-12 13:27:20

标签: linker dynamic-linking dynamic-library ldd

我正在开发ldd-python脚本。

据我所知, ELF二进制文件本身仅具有关于库SONAME的信息。

如何通过此SONAME获取库的完整路径?

我要像原始的ldd结果一样打印:

$ ldd test
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7d28000)

1 个答案:

答案 0 :(得分:1)

ldd通过在特殊模式(ld.so)中运行LD_TRACE_LOADED_OBJECTS来打印此信息。因此,您唯一的选择是在内部运行ldd并解析其输出,或尝试对其在Python中的行为进行建模(但请注意,这种模型必须非常复杂,尤其是一旦进入setuid二进制文件)。