解析EFL文件中符号表读取
符号表表头
Linux 中使用指令查看完整读取elf文件
readelf -a example.elf
Num: Value Size Type Bind Vis Ndx Name
代表含义
Num 符号编号
Value 符号值,取决于上下文
Size 符号值
Type 符号类型,例如函数、对象、文件(源文件名称)、节(内存节)或未指定类型的绝对符号或未定义。
Bind 绑定属性,定义了符号的可见性和链接行为。例如,全局绑定意味着符号在所有文件中都可见,局部绑定仅在定义它的文件内可见,弱绑定类似于全局绑定,但符号可以被覆盖。
Vis 符号可见性,可以是默认、受保护、隐藏或内部。
Ndx 符号定义所在的节头表索引。ABS表示绝对值:不调整任何节地址的重定位
Name 符号名称。
符号类型包括:
STT_NOTYPE:未指定类型的符号。
STT_OBJECT:数据对象,例如变量或数组等。
STT_FUNC:函数或其他可执行代码。
STT_SECTION:与节相关的符号,通常是节的名称。
STT_FILE:源文件名称。
绑定属性
定义了符号的可见性和链接行为,包括:
STB_LOCAL:局部符号,仅在定义它的目标文件内可见。
STB_GLOBAL:全局符号,在所有目标文件中可见。
STB_WEAK:弱符号,在全局符号和局部符号之间。
符号可见性
定义了符号在目标文件外部的可见性,包括:
STV_DEFAULT:默认可见性,与全局和弱符号相关联。
STV_INTERNAL:仅供内部使用,不应在目标文件外部可见。
STV_HIDDEN:不可在目标文件外部引用,但可以通过动态链接器访问。
STV_PROTECTED:不可在共享库外部预先绑定,但可以通过动态链接器访问。
本文作者:第9527号嵌入式菜鸟
本文链接:https://www.cnblogs.com/zhouxingxing7920/p/17630781.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具