转载请注明出处。https://rhirufxmbcyj.gitlab.io
以前工作需要,研究了一段时间的ELF文件,后来用完了就放置了
最近突然想到当时分析ELF文件格式的时候没有类似专门的工具,windows下只能依靠010 Editor的模板和虚拟机里linux的readelf来分析
虽然这两者结合起来挺强大的,但是还是希望自己写一个分析工具,顺便重拾一下原来的知识
什么是ELF文件
ELF的英文全称是The Executable and Linking Format,最初是由UNIX系统实验室开发、发布的ABI(Application Binary Interface)接口的一部分,也是Linux的主要可执行文件格式。
ELF文件三种主要类型
- 可重定位文件(ET_REL):包含了代码和数据,用于与其他目标文件经过链接,创建出可执行文件或共享目标文件(官方介绍)。通俗的来说,就是gcc加-c参数,只编译不链接创建出的文件,对应windows的obj文件。
- 可执行文件(ET_EXEC):包含了程序创建进程映像所需要的信息。对应windows的exe文件。
- 共享目标文件(ET_DYN):官方原话有些看不懂,貌似意思是可以被链接也可以执行,直接理解成动态库算了。
文件格式简介
ELF文件有两个视图,链接视图和执行视