如何列出 ELF 可执行文件中导入的符号?

如何列出 ELF 可执行文件中导入的符号?

对于 PE 可执行文件,我可以使用列出导入的符号

dumpbin /imports FILE.EXE

或者使用 Depends 实用程序(它是 GUI 应用程序)。

“nm ELF-binary” 仅返回“无符号”。

答案1

尝试这个:

objdump -T 'ELF-file'

答案2

objdump 的输出对于这个目的来说有点过多,需要进行大量的解析才能找到实际的导入。

我更喜欢读取以此目的:

readelf -d dynamic-buffer-test

Dynamic section at offset 0x630a8 contains 23 entries:
 Tag                Type                 Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]

如您所见,所需的库标记为“NEEDED”。

答案3

我更喜欢readelf

readelf -s <file>

答案4

除了这里发布的其他答案之外,我还想提出另一个。打印的内容是文件格式的功能,其中 ELF 非常适合解决此问题。

objdump -p /path/to/binary | grep NEEDED

grep 只是提取的内容Dynamic Section,但其输出格式objdump -p使其成为一个简单的解决方案。

相关内容