linux - 在 ELF 二进制文件中导入名称

标签 linux import dllimport file-format elf

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/

相关文章:

linux - 将 1.txt、2.txt ... 10.txt 连接成一个文件

c# - DLL导入以 char* 作为输入或输出参数的 c++ 函数

Linux 命令(如 cat)读取指定数量的字符

php - 如何设置一个进程以便它在另一个进程之后执行?

python - 在 as 之后用逗号导入

php - 如何将多个数组导入到 mysql 数据库中?

c# - 编码 va_list

c# - 包装 C++ 函数以在 C# 中使用

linux - expect + 如何识别 expect break 因为超时?

mysql - 我在 %ProgramData% 中找不到我的 MySQL 文件夹