【发布时间】:2012-05-07 10:43:33
【问题描述】:
ELF 格式在哪里存储导入函数的名称?是否总是可以枚举所有导入名称,例如 PE 可执行文件?
例如,如果一个二进制文件正在使用printf,是否可以通过对二进制文件本身的静态分析来判断它是否使用了printf?
【问题讨论】:
标签: linux import dllimport file-format elf
ELF 格式在哪里存储导入函数的名称?是否总是可以枚举所有导入名称,例如 PE 可执行文件?
例如,如果一个二进制文件正在使用printf,是否可以通过对二进制文件本身的静态分析来判断它是否使用了printf?
【问题讨论】:
标签: linux import dllimport file-format elf
在 ELF 中,它们被称为未定义符号。您可以通过以下方式查看未定义符号列表:
nm -D <file>|grep -w U
objdump -T <file>|grep "\*UND\*"
ELF 文件不指定哪些符号来自哪些库;它只是将共享库列表添加到 ELF 二进制文件中,并让链接器在库中查找符号。
【讨论】: