Binary 如何使用readelf确定要重新定位的内容

Binary 如何使用readelf确定要重新定位的内容,binary,elf,loader,dynamic-loading,readelf,Binary,Elf,Loader,Dynamic Loading,Readelf,从下面的代码片段中,我可以看到重新定位条目将应用于某个部分的偏移量0x000000201018,但我如何确定哪个部分 而且我所有的部分都小于这个偏移量。这意味着什么 搬迁: Relocation section '.rela.plt' at offset 0x4f8 contains 1 entries: Offset Info Type Sym. Value Sym. Name + Addend 000000201018 0

从下面的代码片段中,我可以看到重新定位条目将应用于某个部分的偏移量
0x000000201018
,但我如何确定哪个部分

而且我所有的部分都小于这个偏移量。这意味着什么

搬迁:

Relocation section '.rela.plt' at offset 0x4f8 contains 1 entries:
  Offset          Info           Type           Sym. Value    Sym. Name + Addend
000000201018  000300000007 R_X86_64_JUMP_SLO 0000000000000000 printk + 0
章节标题:

Section Headers:
  [Nr] Name              Type             Address           Offset
       Size              EntSize          Flags  Link  Info  Align
...
[ 6] .rela.plt         RELA               00000000000004f8  000004f8
     0000000000000018  0000000000000018   AI       3    21     8
...
[21] .got.plt          PROGBITS           0000000000201000  00001000
     0000000000000020  0000000000000008   WA       0     0     8

应用重定位的节在
节标题的
info
字段中指定。根据问题中的示例elf,重新定位部分
.rela.plt
适用于部分编号
21
.got.plt
部分

偏移量字段对于对象文件和共享对象文件具有不同的含义。对于可重定位文件,该值是从节开头到受重定位影响的存储单元的字节偏移量。对于可执行文件或共享对象,该值是受重定位影响的存储单元的虚拟地址

来源/更多信息: