elf符号表中value列的含义

时间:2017-09-09 16:41:28

标签: c assembly elf

我有一个elf二进制文件,dynsym输出后面有readelf个符号表:

Num:    Value          Size Type    Bind   Vis      Ndx Name
 0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND 
 1: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __libc_start_main@GLIBC_2.2.5 (2)
 2: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND __gmon_start__
 3: 0000000000400440     0 FUNC    GLOBAL DEFAULT  UND printf@GLIBC_2.2.5 (2)
 4: 0000000000400460     0 FUNC    GLOBAL DEFAULT  UND fgets@GLIBC_2.2.5 (2)

value列的含义是什么?由于此表的400440printf,这是否意味着动态链接器必须在该地址映射printf?如果是,这个值是如何决定的?它是随机的吗?

编辑:另外,这是带有gcc的linux x86-64

1 个答案:

答案 0 :(得分:5)

似乎函数类型的未定义动态符号的值只是它们在PLT中的条目的地址。同样,变量的条目值可能只是它们在GOT中的条目。