ELF 格式在哪里存储导入函数的名称?是否总是可以枚举所有导入名称,例如 PE 可执行文件?
例如,如果一个二进制文件正在使用 printf
,是否可以通过对二进制文件本身的静态分析来判断它确实在使用?
最佳答案
在 ELF 中,它们被称为 undefined symbol 。您可以通过以下方式查看 undefined symbol 列表:
nm -D <file>|grep -w U
objdump -T <file>|grep "\*UND\*"
ELF 文件不指定哪些符号来自哪些库;它只是添加一个共享库列表以链接到 ELF 二进制文件,并让链接器在库中找到符号。
关于linux - 在 ELF 二进制文件中导入名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10480657/