社区
Linux_Kernel
帖子详情
ELF文件section大小的疑惑
菜鸟寻飞
2014-12-11 06:04:44
最近研究了下ELF文件的结构,碰到了个不理解的问题;
我输出ELF文件所有的section大小,并把它们加到了一起获得的结果比我的文件大小还大,这是为什么?
这不正常啊,ELF又不是只有section区,还有程序区啊,为什么这个大小会超出文件的大小呢?
我使用readelf -S 命令查看ELF文件的头section信息,大小和我程序显示的大小是一致的,求研究过ELF的大神解答下我的疑惑
...全文
308
5
打赏
收藏
ELF文件section大小的疑惑
最近研究了下ELF文件的结构,碰到了个不理解的问题; 我输出ELF文件所有的section大小,并把它们加到了一起获得的结果比我的文件大小还大,这是为什么? 这不正常啊,ELF又不是只有section区,还有程序区啊,为什么这个大小会超出文件的大小呢? 我使用readelf -S 命令查看ELF文件的头section信息,大小和我程序显示的大小是一致的,求研究过ELF的大神解答下我的疑惑
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hjhggj
2014-12-17
打赏
举报
回复
及时这样的 。。。
zhi_oo
2014-12-15
打赏
举报
回复
所有section加起来跟文件大小貌似没有直接的关系
菜鸟寻飞
2014-12-15
打赏
举报
回复
引用 2 楼 yskcg 的回复:
建议看看 inkers and loaders-中文版.pdf 可以google 下
嗯 我下了一本扫了一眼,感觉还是有点过期了,我想研究下最新的ELF文件格式,不知道看什么书好些?
yskcg
2014-12-12
打赏
举报
回复
建议看看 inkers and loaders-中文版.pdf 可以google 下
菜鸟寻飞
2014-12-12
打赏
举报
回复
已经找到问题所在,是其中一个section区 .bss 存放程序未初始化的全局变量,在运行时初始化为0,其长度应为0 不计算在内。
ELF
目标
文件
链接与程序头表
今天做OS实验时发现一个问题如题,困扰很久,通过试错硬是把原因给试出来了。 在开始描述问题之前,首先对了解下
ELF
文件
的结构。
ELF
文件
由4部分组成,分别是
ELF
头(
ELF
header)、程序头表(Program header table)、节(S
ect
ion
)和节头表(S
ect
ion
header table)。实际上,一个
文件
中不一定包含全部内容(比如对于目标
文件
来说没有程序头表),而且它们的位置也未必如下图所示这样安排,只有
ELF
头的位置是固定的,其余各部分的位置、
大小
等信息由
ELF
头中的各项值.
扒一扒bin
文件
和
elf
文件
的联系
Bin
文件
是最纯粹的二进制机器代码, 或者说是"顺序格式"。按照assembly code顺序翻译成binary machine code,内部没有地址标记。Bin是直接的内存映象表示,二进制
文件
大小
即为
文件
所包含的数据的实际
大小
。BIN
文件
就是直接的二进制
文件
,一般用编程器烧写时从00开始,而如果下载运行,则下载到编译时的地址即可。可以直接在裸机上运行。
文件
中还是有一些有用的信息,不过不知道为何关于动态链接的。感觉以下句子还是有些模糊不清,特别是。那么来扒一扒具体
文件
内容。中,稍等再研究一下吧。
ELF
&PE
文件
结构分析
ELF
&PE
文件
结构分析 说简单点,
ELF
对应于UNIX 下的
文件
,而PE 则是Windows 的可执行
文件
,分析
ELF
和 PE 的
文件
结构,是逆向工程,或者是做调试,甚至是开发所应具备的基本能力。在进行逆向工程的开端,我们拿到
ELF
文件
,或者是PE
文件
,首先要做的就是分析
文件
头,了解信息,进而逆向
文件
。不说废话,开始分析:
ELF
和PE
文件
都是基于Unix 的 COFF(...
ELF
文件
在带加载器的OS中和裸奔的加载及运行
原文地址:
ELF
文件
在带加载器的OS中和裸奔的加载及运行 作者:lelee007 工作关系,这个周花了一天时间好好研究了以下
ELF
文件
及可执行
ELF
文件
的加载。中间过程可谓收获不小,呵呵,因为之前搞linux驱动、ARM裸奔始终没有认真研究过
ELF
文件
,这次深入学习一下,把之前很多没弄清的原理基本摸清楚了。 首先简单说明一下
ELF
文件
的用途(呵呵,昨天
ELF
文件
结构
5.
ELF
文件
请点评
ELF
文件
格式是一个开放标准,各种UNIX系统的可执行
文件
都采用
ELF
格式,它有三种不同的类型: 可重定位的目标
文件
(Relocatable,或者Obj
ect
File) 可执行
文件
(Executable) 共享库(Shared Obj
ect
,或者Shared Library) 共享库留到第 4 节 “共享库”再详细介
Linux_Kernel
4,438
社区成员
17,460
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章