stuman 发表于 2014-05-23 23:43

ELF文件格式

我看到一本书上说elf header位与elf文件的开头,但是program header里的offset值为0,也就是说该段的第一个字节在elf文件中的偏移为0,那么elf header与程序段不是互相覆盖了吗?请问是什么原因?谢谢

qdsjx1989 发表于 2014-05-24 23:03

这是两个概念,
1elf header是一定存在于文件的开始的位置
2program header只存在于可执行文件,而且它的那个p_offset所值的文件,也不是elf文件,是实际的内存中地址

比如:
Program Headers:
Type         Offset   VirtAddr   PhysAddr   FileSiz MemSizFlg Align
LOAD         0x000000 0x08048000 0x08048000 0x004a0 0x004a0 R E 0x1000

这里的LOAD segment,offset是0,但是那是指相对于程序开始的位置:0x8048000而言,而不是elf文件的开始的位置。
页: [1]
查看完整版本: ELF文件格式