ELF Format 笔记(九)—— Elf32_Sym 结构的 st_value 和 st_shndx 成员
2015-08-25 22:07
204 查看
ilocker:关注 Android 安全(新手) QQ: 2597294287
前面的笔记中提到过 Elf32_Sym 结构,本篇笔记再写一下其中的 st_value 和 st_shndx 成员。
对于不同类型的 object file,st_value 的含义略有不同:
· 对于 relocatable (.o) 文件,如果相应的 st_shndx 的值为 SHN_COMMON,则 st_value 保存的是对齐字节数。
· 对于 relocatable (.o) 文件,如果该符号已定义,则 st_value 保存的是该符号在其所定义的 section (由 st_shndx 指定) 中的偏移量。
· 对于可执行和 shared object (.so) 文件,st_value 保存的是一个虚拟地址。android linker 通过将 st_value 与该文件加载到内存的基址相加,从而得到该符号的定义地址。
st_shndx 是定义该符号的 section 在 section header table 中的索引 (section number)。这里列出几个特殊值:
· SHN_UNDEF:通常表示该符号在本文件中未定义 (外部符号),android linker 会为该符号做地址重定位。
· SHN_ABS:表示该符号包含一个绝对的 (absolute) 值 (往往是一个地址),不受重定位影响。例如:
又如,表示文件名的符号:
· SHN_COMMON:表示该符号是一个 common 符号,通常未初始化的全局变量就是该类型的符号。关于 common 符号可以去了解一下链接器的“common block”机制。
前面的笔记中提到过 Elf32_Sym 结构,本篇笔记再写一下其中的 st_value 和 st_shndx 成员。
对于不同类型的 object file,st_value 的含义略有不同:
· 对于 relocatable (.o) 文件,如果相应的 st_shndx 的值为 SHN_COMMON,则 st_value 保存的是对齐字节数。
· 对于 relocatable (.o) 文件,如果该符号已定义,则 st_value 保存的是该符号在其所定义的 section (由 st_shndx 指定) 中的偏移量。
· 对于可执行和 shared object (.so) 文件,st_value 保存的是一个虚拟地址。android linker 通过将 st_value 与该文件加载到内存的基址相加,从而得到该符号的定义地址。
st_shndx 是定义该符号的 section 在 section header table 中的索引 (section number)。这里列出几个特殊值:
· SHN_UNDEF:通常表示该符号在本文件中未定义 (外部符号),android linker 会为该符号做地址重定位。
· SHN_ABS:表示该符号包含一个绝对的 (absolute) 值 (往往是一个地址),不受重定位影响。例如:
又如,表示文件名的符号:
· SHN_COMMON:表示该符号是一个 common 符号,通常未初始化的全局变量就是该类型的符号。关于 common 符号可以去了解一下链接器的“common block”机制。
相关文章推荐
- IOS UITableView分组与索引分区实例
- GUI编程笔记(java)07:GUI把文本框的值移到文本域案例
- iOS UITableView制作类似QQ好友列表视图
- GUI编程笔记(java)06:GUI窗体添加按钮并对按钮添加事件案例
- UI_08 UINavigationController、界面通信
- 视图导航栏UInavigationController
- String,StringBuffer与StringBuilder的区别?
- iOS Storyboard unwind segues使用小结
- iOS Storyboard unwind segues使用小结
- UIImagePickerController详解
- Ethernet frame check sequence incorrect
- GUI编程笔记(java)05:GUI事件监听机制原理和举例说明
- ConcurrentQueue<T> TryDequeue Method
- upload.parseRequest(request) 结果为null解决方法
- Building a Space Station
- UIlable让字体自适应宽度方法
- Android通过build.gradle配置应用版本等信息
- UI - UIImageView 和页面跳转
- UI - Target-Action设计模式
- HDOJ 1005 Number Sequence(规律)