2

考虑以下 ELF 文件的十六进制编辑显示。

00000000   7F 45 4C 46  01 01 01 00  00 00 00 00  .ELF........
0000000C   00 00 00 00  02 00 03 00  01 00 00 00  ............
00000018   30 83 04 08  34 00 00 00  50 14 00 00  0...4...P...
00000024   00 00 00 00  34 00 20 00  08 00 28 00  ....4. ...(.
00000030   24 00 21 00  06 00 00 00  34 00 00 00  $.!.....4...
0000003C   34 80 04 08  34 80 04 08  00 01 00 00  4...4.......
00000048   00 01 00 00  05 00 00 00  04 00 00 00  ............
  1. 它有多少个节标题?
  2. 它是目标文件还是可执行文件?
  3. 它有多少个程序头?
  4. 如果有任何程序头,第一个程序头做什么?
  5. 如果有任何节头,节头表的偏移量是多少?
4

1 回答 1

1

奇怪,这个 hexdump 在我看来就像你的作业......

  1. 有 36 个节标题。
  2. 它是一个可执行文件。
  3. 它有 8 个程序头。
  4. 从第一个程序头中的第一个字(偏移量 0x34: 0x0006)可以看出,它的类型是PT_PHDR,它只是告知程序头表本身的特征。
  5. 节头表从字节 5200(十六进制为 0x1450)开始。

我怎么知道这些东西?通过将十六进制转储到二进制文件中并使用readelf -a(因为我很懒)读取它。除了第一个问题。4,我必须通过阅读手动弄清楚man 5 elf

于 2012-06-24T21:42:47.527 回答