ELF文件简述

本文介绍了ELF文件的基本概念,包括其四种类型:可重定位文件、可执行文件、共享文件库和核心转储文件。详细阐述了ELF文件的结构,如ELF Header、Program Header Table、Section Header Table及其各自的作用。此外,还讨论了不同类型的section,如.code、.data、.bss、.rodata等,并解释了它们在内存管理和缓存优化中的作用。最后,提到了如何使用readelf、nm和objdump等工具来分析ELF文件。
摘要由CSDN通过智能技术生成
一,简介

      一般gcc编译生成的文件是可执行文件,一般我们称为目标文件,目标文件在linux上是一个ELF(Executable and Linkable Format)文件。一个文件是否ELF文件可以通过file命令查看,包括是否32bit/64bit,以及类型。 

      ELF文件由四种类型,可重定位文件(Relocatable)、可执行文件(Executable)、共享文件库(shared Object)、核心转储文件(core dump).

       编译阶段生成的*.o文件是可重定位文件,链接后生成的是可执行文件或者共享库。

       目标文件内容肯定是机器指令、数据、链接时需要的信息(如符号表),这些数据以section的形式存储。

二、ELF文件结构

ELF Header:开头即ELF字符,7f 45 4c,还有文件类型、大小以及加载后的程序执行的入口点信息等,readelf-h读取

Progrem Header table:程序头表,readelf -l 读取,可执行文件的数据在进程虚拟地址空间组织方式信息,以及文件包含的段数据、各段位置和用途

各种section:section一般称为节

Section header table:各个section的信息,如名称、长度、偏移、读写权限等,可通过readelf -

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值