(在 Windows 中)PE 文件格式包含导入表,Module\Dll Name
它告诉 PE 加载器在哪里搜索符号,例如KERNEL32.dll -> CreateFileW
在ELF文件格式也Symbol table
与info
现场告诉如果符号是Global\Local\Weak\etc.
我的问题是 Unix 加载器如何知道模块是什么,共享对象在哪里搜索这个符号,例如 ???? -> snprintf
我注意到 objdump 可以转储此信息objdump -T /bin/ls
。
GLIBC_2.2.5 snprintf
对 ELF 文件格式有更多了解的人能否对 Unix 动态链接有所了解?