简单认识认识ELF文件

嵌入式大杂烩 2020-07-07 00:00

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看嵌入式笔记!

几种常见的ELF文件

在Linux下,我们经gcc编译之后生成的可执行文件属于ELF文件:


ELF是一类文件类型,而不是特指某一后缀的文件。ELF(Executable and Linkable Format,可执行与可链接格式)文件格式,在Linux下主要有如下三种文件:

  • 可执行文件(.out):Executable File,包含代码和数据,是可以直接运行的程序。其代码和数据都有固定的地址 (或相对于基地址的偏移 ),系统可根据这些地址信息把程序加载到内存执行。
  • 可重定位文件(.o文件):Relocatable File,包含基础代码和数据,但它的代码及数据都没有指定绝对地址,因此它适合于与其他目标文件链接来创建可执行文件或者共享目标文件。
  • 共享目标文件(.so):Shared Object File,也称动态库文件,包含了代码和数据,这些数据是在链接时被链接器(ld)和运行时动态链接器(ld.so.l、libc.so.l、ld-linux.so.l)使用的。

ELF格式可结构大致为:

(图片来源:百度百科)


ELF文件由4部分组成,分别是ELF头(ELF header)程序头表(Program header table)节(Section)节头表(Section header table)

实际上,一个文件中不一定包含全部内容,而且它们的位置也未必如同所示这样安排,只有ELF头的位置是固定的,其余各部分的位置、大小等信息由ELF头中的各项值来决定。

readelf工具的使用

在Linux下,我们可以使用readelf 命令工具可以查看ELF格式文件的一些信息。

下面我们先准备一个动态链接相关的demo,就拿我们之前分享的文章:静态链接与动态链接补充(Linux)中的demo来做演示:

文件1(main.c):

#include "test.h"

int main(void)
{
 print_hello();
 return 0;
}

文件2(test.c):

#include "test.h"

void print_hello(void)
{
 printf("hello world\n");
}

文件3(test.h):

#ifndef __TEST_H
#define __TEST_H

#include <stdio.h>

void print_hello(void);

#endif

执行相关命令生成相关文件:.out文件.o文件.so文件。如:


下面我们使用readelf命令来查看这三类文件的一些信息。readelf命令格式为:

readelf <option(s)> elf-file(s)

查看可执行文件头部信息:


查看可执行文件头部信息是,我们发现这样一个问题,头部信息中的类型竟然是共享库文件,而我们查看的是可执行文件,自相矛盾?

查了一些资料:

https://blog.csdn.net/cclethe/article/details/83387685

发现:gcc编译默认加了--enable-default-pie选项:


Position-Independent-Executable是Binutils,glibc和gcc的一个功能,能用来创建介于共享库和通常可执行代码之间的代码–能像共享库一样可重分配地址的程序,这种程序必须连接到Scrt1.o。

标准的可执行程序需要固定的地址,并且只有被装载到这个地址时,程序才能正确执行。

PIE能使程序像共享库一样在主存任何位置装载,这需要将程序编译成位置无关,并链接为ELF共享对象。

引入PIE的原因是让程序能装载在随机的地址,通常情况下,内核都在固定的地址运行,如果能改用位置无关,那攻击者就很难借助系统中的可执行码实施攻击了。

类似缓冲区溢出之类的攻击将无法实施。而且这种安全提升的代价很小。

也就是说,pie这是一种保护我们可执行程序的一种手段。这里我们只是做实验,我们可以加-no-pie参数先把pie给关掉:


可以看到,类型终于对得上了。ELF头部信息还包含有Entry point address(入口地址)、Start of program headers(程序头的起始字节)、Start of section headers(节头的起始字节)等信息。

查看可重定位文件头部信息:


查看共享目标文件头部信息:


同样的,readelf 搭配其它参数可以查看ELF文件的其它信息:

objdump工具的使用

objdump工具用于显示一个或多个目标文件的信息。objdump命令格式:

objdump <option(s)> <file(s)>

可执行文件、可重定位文件与共享目标文件都属于目标文件,所以都可以使用这个命令来查看一些信息。

查看可重定位文件反汇编信息:


查看可执行文件反汇编信息:


查看共享目标文件反汇编信息:

总结

以上就是本次的分享。简单地介绍了ELF文件的一些信息,同时介绍了分析ELF文件的两个工具。

ELF文件的内容很多,并且比较抽象,详细分析起来是个深坑。我们大致先进行一个简单的了解,之后如果深入学习时再做另外的分享。

上就是本次的分享,如有错误,欢迎指出!谢谢

欢迎大家进群交流、共同进步。同时,我也会关注一些大家问的一些问题,从中挑选一些具有代表性的、并且在我知识范围内的问题写出相关文章做分享。

猜你喜欢

Linux下socket编程实例

Linux下应用开发基础

Linux下能编译成功,而Windows下编译不过?

【Linux笔记】Vi/Vim编辑器

C语言、嵌入式中几个非常实用的宏技巧

C语言、嵌入式应用:TCP通信实例分析

C语言、嵌入式重点知识:回调函数

C语言、嵌入式位操作精华技巧大汇总

登录阅读全文
嵌入式大杂烩 专注于嵌入式技术,包括但不限于C/C++、嵌入式、物联网、Linux等编程学习笔记,同时,内包含大量的学习资源。欢迎关注,一同交流学习,共同进步!
进入专栏
评论 (0)
  • 立即报名:2024 AI& Connect 是德创新技术峰会(深圳,10.22)


  • 重磅!高通有意全盘收购英特尔

    芯极速 2024-09-21 122浏览
  • 晶合集成:与多家企业共同向方晶科技增资29,000万元

    CINNOResearch 2024-09-21 118浏览
  • 芯报丨阿里国际发布最新开源多模态模型Ovis

    AI芯天下 2024-09-21 106浏览
  • 李斌:乐道不会影响蔚来换电体验,换电是更高效的增程

    智能车参考 2024-09-21 101浏览
  • 车臣领导人称马斯克远程“锁”了其Cybertruck!

    谈思汽车 2024-09-21 95浏览
  • 赛力斯115亿现金收购华为引望10%股权

    电动知家 2024-09-22 93浏览
  • 比贾跃亭还会忽悠的车企,IPO了!

    谈思汽车 2024-09-21 90浏览
  • 高通被罚18亿!

    集成电路IC 2024-09-21 88浏览
  • 电子器件的代表元素,还有什么是硅做不到的吗?

    Bill Schweber 2024-09-20 17:30 50浏览
  • 欧盟要求苹果开放iOS和iPadOS操作系统,否则最高罚款达年收入 10% 

    综合报道 2024-09-20 17:20 58浏览
  • 如何控制你的脉冲——第二部分

    Nick Cornford 2024-09-20 17:15 47浏览
  • 蔚来考虑接手“奥迪都养不起的工厂”?

    国际电子商情综合报道 2024-09-20 16:50 60浏览
  • 2024年台湾地区半导体业薪资水平:模拟工程师最高

    综合报道 2024-09-20 16:45 87浏览
  • 大连思科近300名员工一夜失业,传补偿N+7

    综合报道 2024-09-20 15:59 125浏览
  • 苹果自研的Wi-Fi及5G芯片终于要来了?

    综合报道 2024-09-20 15:56 55浏览
  • 英特尔声明不卖股权,Mobileye股价大涨

    国际电子商情综合报道 2024-09-20 15:52 72浏览
  • 阿里自研解码器Ali266助力高通骁龙平台AI PC首次实现H.266超高清播放

    2024-09-20 10:48 35浏览
  • 本土自研再上新!安谋科技发布首款“玲珑”DPU和新一代VPU

    安谋科技 2024-09-20 09:20 26浏览
  • 逐浪AI大潮,以澎拜之力革新产品测试

    是德科技产品营销经理Bernard Ang 2024-09-20 08:45 21浏览
  • 上海贝岭“功率器件&电源IC”在PD快充中的应用

    上海贝岭 2024-09-19 14:31 74浏览
  • 尽管需求疲软,2024 年第二季度半导体收入季度增长 6.7%

    Omdia  2024-09-19 11:19 124浏览
  • 亚马逊云科技宣布Amazon EC2 P5e实例正式可用

    亚马逊云科技 2024-09-18 14:33 25浏览
  • 【拆解】我可能被骗了——DY买的充电器,

    DrouSherry 2024-09-11 1256浏览
  • 《热设计的世界 打开电子产品散热领域》+热设计仿真学习与案例分享

    梦溪开物 2024-09-17 542浏览
  • 【拆解】当年还需要从岛国辛苦往回背的智能马桶

    lyyinhe_xi 2024-09-09 798浏览
  • 【拆解】+ 二十五岁! 换个活法!

    ecoren 2024-09-09 246浏览
  • 领泰MOSFET管LTS7446SJ N管道MOS管

    qiu1986 2024-09-07 97浏览
  • RS-485接口的防雷设计电路,该如何选择保护器件?

    sales_263623713 2024-09-14 130浏览
  • 【拆解】300W最高能达到400°的单数显加热平台

    Sudd 2024-09-05 238浏览
  • 【拆解】劲爆消息,超高精度电流表竟被拆解

    丸子~ 2024-09-05 1664浏览
  • ESD保护器件、ESD静电防护器件(2.5V-36V工作电压)

    sales_263623713 2024-09-06 96浏览
  • 请教一个有关电机原理的问题?

    乱世煮酒论天下 2024-09-13 500浏览
  • 华为智慧矿山
  • 美国某大学教材推荐的电子爱好者网站
  • Toshiba东芝TB62269FTG两相双极步进电机驱动IC 产品规格书datasheet
  • Toshiba东芝74VHC00FT产品规格书datasheet
  • 9-15学习笔记
  • 9-13学习笔记
  • Toshiba东芝TPH3R704PC N沟道MOSFET产品规格书datasheet
  • TOSHIBA东芝TLP2368光耦产品规格书datasheet
  • TB67B008FTG三相无刷直流电机datasheet产品规格书
  • 9-12学习笔记
  • 有关Lunar Lake的少量信息更新...
    前两周写了一篇有关 Lunar Lake 如何实现低功耗的文章:谈谈Lunar Lake的低功耗设计:听说x86做不了低功耗?有读者一笔评论如上,感觉这个总结是比较到位的——虽然我在文章里也没直接提,不过在 ring 总线之外,本质应该也就是跟电源管理有关吧。这里再给些补充资料,虽然感觉干货也不算多。Hot Chips 上,Chip and Cheese 采访了 Intel,以下我摘取部分内容做了翻译,方括号里头的是我的屁话:Q:...Lion Cove 核心不带 SMT(超线程)。我们也从行业
    欧阳洋葱 2024-09-20 18:35 187浏览
  • 预计2030年全球腹腔镜模拟器产值达到1520百万美元
    2024年9月20日 调研咨询机构环洋市场咨询出版的《全球腹腔镜模拟器行业总体规模、主要厂商及IPO上市调研报告,2024-2030》只要调研全球腹腔镜模拟器总体规模,主要地区规模,主要企业规模和份额,主要产品分类规模,下游主要应用规模以及未来发展前景预测。统计维度包括销量、价格、收入,和市场份额。同时也重点分析全球市场主要厂商(品牌)产品特点、产品规格、价格、销量、销售收入及发展动态。历史数据为2019至2023年,预测数据为2024至2030。 调研机构:Global Info Resea
    GIRtina 2024-09-20 19:00 114浏览
  • 无线键盘鼠标真实情境下的无线干扰风险
    键盘与鼠标是系统上最通用的周边装置,这些装置过往多半采有线方式做连接,目前已逐渐大量采用无线连接为主流,无线键盘和鼠标通常使用蓝牙技术或无线射频(RF)技术,然而这些技术也可能面临一些无线干扰的问题,进而造成使用者体验不佳影响品牌形象,甚至产生退货问题,这也成为采购商在采购询价(RFQ)时需留意的要点。无线键盘鼠标的无线干扰风险与解决方法近年来无线传输技术在键盘鼠标上已相当普及,市场上我们可以看到各种形形色色的无线键盘鼠标,包括了:针对特定消费族群的静音键盘鼠标、低延迟的电竞键盘鼠标。不论是何用
    百佳泰测试实验室 2024-09-20 13:29 134浏览
  • 中空长航时(MALE)无人机市场份额、市场占有率、行业市场研究
    2024年9月20日 调研咨询机构环洋市场咨询出版的《全球中空长航时(MALE)无人机行业总体规模、主要厂商及IPO上市调研报告,2024-2030》只要分析全球中空长航时(MALE)无人机总体规模,主要地区规模,主要企业规模和份额,主要产品分类规模,下游主要应用规模以及未来发展前景预测。统计维度包括销量、价格、收入,和市场份额。同时也重点分析全球市场主要厂商(品牌)产品特点、产品规格、价格、销量、销售收入及发展动态。历史数据为2019至2023年,预测数据为2024至2030年。 调研机构:
    GIRtina 2024-09-20 18:09 142浏览
  • 设置TI的ADS8353性能演示套件
    以下是关于如何设置TI的ADS8353性能演示套件的详细步骤: 1. 了解套件组件:ADS8353 ADC 性能演示套件包括一个16位、双通道、同步采样的精密ADC,每秒可同时采集600千赫样本。该套件还配备了微控制器(MCU)和处理器、数据转换器以及电机驱动器等关键组件。 2. 连接硬件:首先,确保所有硬件组件正确连接。这包括将ADS8353 ADC与评估板连接,并将评估板连接到电源和计算机。 3. 安装软件:接下来,需要在计算机上安装TI提供的软件工具,以便与评估板进行通信和配置。
    丙丁先生 2024-09-20 10:55 153浏览
  • 可编程自动化控制器行业市场现状分析及投资机遇研究报告
    2024-9-20调研咨询机构环洋市场咨询出版的【全球可编程自动化控制器行业总体规模、主要厂商及IPO上市调研报告,2024-2030】只要调研全球可编程自动化控制器总体规模,主要地区规模,主要企业规模和份额,主要产品分类规模,下游主要应用规模以及未来发展前景预测。统计维度包括销量、价格、收入,和市场份额。同时也重点分析全球市场主要厂商(品牌)产品特点、产品规格、价格、销量、销售收入及发展动态。历史数据为2019至2023年,预测数据为2024至2030年。 调研机构:Global Info
    GIRtina 2024-09-20 18:05 107浏览
  • 缓冲反向转换器
    缓冲反向转换器是一种在电源设计中常用的技术,用于控制和减少由于变压器漏极电感引起的过电压应力。以下是对缓冲反向转换器的详细介绍: 1. 缓冲反向转换器的基本概念   定义:缓冲反向转换器主要用于在MOSFET关断时,通过特定的电路来吸收存储在变压器漏极电感中的能量,从而防止过电压对MOSFET造成损害。    重要性:在反向转换器中,当MOSFET关闭时,变压器的漏极电感会导致漏电压升至反射输出电压以上,可能引发MOSFET的雪崩现象,因此需要使用缓冲器
    丙丁先生 2024-09-20 10:28 71浏览
  • 支付编排行业发展前景分析及市场趋势研究报告
    2024年9月20日 Global Info Research调研机构发布了《全球支付编排行业总体规模、主要厂商及IPO上市调研报告,2024-2030》。本报告研究全球支付编排总体规模,主要地区规模,主要企业规模和份额,主要产品分类规模,下游主要应用规模等。统计维度包括收入和市场份额等。不仅全面分析全球范围内主要企业竞争态势,收入和市场份额等。同时也重点分析全球市场主要厂商(品牌)产品特点、产品规格、收入、毛利率及市场份额、及发展动态。历史数据为2019至2023年,预测数据为2024至203
    GIRtina 2024-09-20 18:07 112浏览
  • 光耦——电子设备设计中的关键守护者
     在现代电子设备的设计与应用中,光电耦合器(简称光耦)作为重要的元器件,扮演着不可或缺的角色。无论是工业控制、智能家居,还是消费类电子产品,光耦的应用都随处可见。那么,为什么需要光耦呢?下面让我们从几个关键方面来解答。 连接具有不同接地电位的电路在许多实际应用中,常常需要将不同接地电位的电路进行信号传输。例如,当需要在使用交流电源的电路与电话电路之间交换信号时,由于这两类电路的接地电位不同,直接连接会产生风险,甚至引发故障。在这种情况下,光耦可以有效隔离不同电位的电路,同时实
    晶台光耦 2024-09-20 10:28 79浏览
  • 瑞萨500W车载电池充电器方案提升两轮电动车充电体验
    两轮电动车在满足短途交通需求方面具有明显优势。据相关数据显示,中国两轮电动车的保有量已经突破3.25亿辆,是人们日常生活出行、通勤的主要交通工具之一。随着两轮电动车的应用不断增长,如何高效、安全的充电成为电动车制造商亟需解决的关键议题。瑞萨500W车载电池充电器采用先进的氮化镓(GaN)技术,包括两个功率级:用于交流到直流转换的功率因数校正(PFC)级和用于直流到直流转换的LLC级,能够实现超过95%的峰值效率。在器件的选择上,此方案集成低功耗微控制器RL78/F14、GaN FET TP65H
    丙丁先生 2024-09-20 12:22 142浏览
我要评论
0
1
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦

玻璃钢生产厂家广州商业街玻璃钢雕塑生产厂家广东玻璃钢景观雕塑材料宁波户外景观玻璃钢雕塑江苏开业商场美陈怎么样商场巨型蛋糕模型美陈玻璃钢抽象不锈钢雕塑生产玻璃钢雕塑女商场如何 简单美陈肇庆玻璃钢卡通动物雕塑家居玻璃钢花盆广西玻璃钢雕塑出售玻璃钢雕塑算非遗商场美陈粉色云朵茂名玻璃钢花盆雕塑广东玻璃钢广场雕塑厂家十堰玻璃钢雕塑摆件多少钱驻马店玻璃钢雕塑厂家电话雕塑玻璃钢鹿块面图片户外玻璃钢雕塑联系方式邵阳玻璃钢雕塑价格玻璃钢雕塑冬奥会雕塑石膏玻璃钢陶瓷妇女节商场美陈布置湛江玻璃钢卡通雕塑经销商锻铜玻璃钢仿铜雕塑价格秦皇岛公园玻璃钢雕塑价格玻璃钢户外人物雕塑湖北仿铜玻璃钢雕塑安装乌鲁木齐玻璃钢雕塑价格表西安玻璃钢花盆香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化