ELF文件符号引用

假设现在有一个程序包含 2 个变量:data1、data2 和 2 个函数:func1、func2,找到其地址与数值的过程如下:

 

 

    1 根据文件头结构 Elf64_Ehdr 中的 e_shoff 得知段表的位置。

    2 根据段描述符结构 Elf64_Shdr 中的 sh_offset 得知每个段距离 ELF Header 的偏移量。

    3 找到.symtab,根据其符号表结构 Elf64_Sym:

 

      其中 st_shndx 指出符号所在段,根据 Elf64_Shdr 找到对应段的位置, st_value 指出符号在段中的位置, st_size 指出符号的大小。

 

 

 

参考

【1】深入理解计算机系统11:链接 - 符号表

 

posted @ 2022-02-17 16:17  Kayden_Cheung  阅读(125)  评论(0编辑  收藏  举报
//目录