免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1528 | 回复: 1
打印 上一主题 下一主题

[内核入门] ELF文件格式 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-05-23 23:43 |只看该作者 |倒序浏览
我看到一本书上说elf header位与elf文件的开头,但是program header里的offset值为0,也就是说该段的第一个字节在elf文件中的偏移为0,那么elf header与程序段不是互相覆盖了吗?请问是什么原因?谢谢

论坛徽章:
0
2 [报告]
发表于 2014-05-24 23:03 |只看该作者
这是两个概念,
1  elf header是一定存在于文件的开始的位置
2  program header只存在于可执行文件,而且它的那个p_offset所值的文件,也不是elf文件,是实际的内存中地址

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

这里的LOAD segment,offset是0,但是那是指相对于程序开始的位置:0x8048000而言,而不是elf文件的开始的位置。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP