欢迎访问我的个人博客: luomuxiaoxiao.com
一、ELF文件类型
二、ELF文件结构
- ELF Header
- Section
- Section Header Table
- Program Header Table
三、实践
四、总结
五、参考阅读
下面我们介绍一种文件格式:ELF格式
,全名为可执行和可链接格式(Executable and Linkable Format)
。维基百科中这样描述:
在计算机科学中,ELF文件是一种用于可执行文件、目标文件、共享库和核心转储(
core dump
)的标准文件格式。其中核心转储是指: 操作系统在进程收到某些信号而终止时,将此时进程地址空间的内容以及有关进程状态的其他信息写出的一个磁盘文件。这种信息往往用于调试。
一、ELF文件类型
通俗点说由汇编器和链接器生成的文件都属于ELF文件。通常我们接触的ELF文件主要有以下三类:
- 可重定位文件(
relocatable file
) 它保存了一些可以和其他目标文件链接并生成可执行文件或者共享库的二进制代码和数据。 - 可执行文件(
excutable file
)它保存了适合直接加载到内存中执行的二进制程序。 - 共享库文件(
shared object file
)一种特殊的可重定位目标文件,可以在加载或者运行时被动态的加载进内存并链接。
总之,ELF文件是一种文件格式。但凡是一种格式,总要有一些规则,下面我们来介绍ELF文件的格式规则。
二、ELF文件结构
一个典型的ELF文件包括ELF Header、Sections、Section Header Table和Program Header Table。其位置分布如下图所示:
每个ELF文件都存在一个ELF Header用来描述其结构和组成。ELF Header其实对应的是一个结构体,该结构体定义如下:
想第一时间查看我的文章吗?请关注我的微信公众号号,搜索“落木萧萧技术论坛”或登陆我的个人博客:www.luomuxiaoxiao.com,更多精彩文章等你。
![qrcode](https://i-blog.csdnimg.cn/blog_migrate/18761891c55b2bfa97548506179f7601.jpeg)