解析查看elf文件的构成

x86下用clang编译一段c代码,编译成elf文件,读elf文件,dump出里面的所有段,并打印出段中的数据和含义以及汇编的内容

编写C代码

首先,编写一个简单的C程序,例如命名为example.c:
在这里插入图片描述

使用Clang编译

接下来,使用Clang编译器将C代码编译为目标文件和最终的可执行ELF文件。使用-g选项包含调试信息以便获得更详细的汇编代码:

clang -g -o example example.c

查看ELF文件信息

使用readelf工具查看ELF文件的头部信息,包括段信息:

readelf -h example

在这里插入图片描述
查看所有段的详细信息:

shreadelf -SW example

在这里插入图片描述

打印段中的数据

对于每个段,特别是.text(代码段)和.data(数据段),你可以使用readelf或objdump来提取段数据。查看.text段的汇编代码:

objdump -d example

这会展示出可执行文件的汇编代码。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查看特定段的数据

若要查看某一段的数据(比如.data段),可以使用objdump的特定参数,但由于.data段可能包含的是二进制数据而非易于阅读的文本,直接打印可能意义不大。不过,你仍然可以尝试查看段的原始字节:

objdump -s -j .data example

在这里插入图片描述

objdump -s -j .rodata example

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/416778.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

您知道tar、xz、zip这三种不同压缩方式的区别吗?

tar、xz、zip是三种不同的压缩和打包格式,它们在压缩算法、使用场景、兼容性等方面存在一定的差异。以下是对这三种格式的比较: 1. 压缩算法 tar:tar本身并不进行压缩,它只是一种打包工具,将多个文件和目录打包成一个…

springboot整合Logback

Logback介绍 描述 Logback是由log4j创始人设计的另外一种开源日志组件,性能比log4j要好。相对是一个可靠、通用、快速而又灵活的Java日志框架。 Logback主要分三个模块 1、logback-core:其他两个模块的基础模块 2、logback-classic:它是lo…

10、Django Admin修改标题

admin from django.contrib import admin from .models import Category, Origin, Hero, Villain # 添加以下代码 admin.site.site_header "系统管理" admin.site.site_title "管理员界面" admin.site.index_title "欢迎来到这里&#xff…

TCP如何关闭连接(详细版)

关闭连接的⽅式通常有两种,分别是 RST 报⽂关闭和 FIN 报⽂关闭。 如果进程异常退出了,内核就会发送 RST 报⽂来关闭,它可以不⾛四次挥⼿流程,是⼀个暴⼒关闭连接的⽅式。 安全关闭连接的⽅式必须通过四次挥⼿,它…

【STM32】通用定时器TIM(输入捕获)

本篇博客重点在于标准库函数的理解与使用,搭建一个框架便于快速开发 目录 前言 输入捕获简介 输入捕获配置 初始化IO口 输入捕获初始化 选择触发源及从模式 测量频率方法 输入捕获代码 IC.h IC.c 输入捕获测占空比 前言 建议先阅读这篇博客&#xf…

Unity编辑器开发 Immediate Mode GUI (IMGUI)

1. 简介: IMGUI是代码驱动gui系统,由 OnGUI 函数驱动: void OnGUI() {if (GUILayout.Button("Press Me")){ Debug.Log("Hello!");} } IMGUI常用于: 创建 in-game debugging displays and tools&#xff1b…

vs2019编译opencv+contribute+gpu

1、提前准备 vs2019、opencv4.4.0、opencv-contribute4.4.0、CUDA Toolkit 11.8(不能高于自己电脑的CUDA版本)、CUDNN8.9.6 ps:先提前准备环境 1)cmd中查看:nvidia-smi查看自己的显卡信息,不存在下述信息…

使用python+opencv解析图像和文本数据

1. 创建虚拟环境 新建文件夹, 并在文件夹中创建虚拟环境,可以使用Vscode打开文件夹, 然后在终端中输入以下命令: python -m venv venv2. 激活虚拟环境 在终端中输入以下命令: venv\Scripts\activate3. 安装依赖 在终端中输入以下命令: pip install opencv-pythonpip inst…

《JavaEE进阶》----7.<SpringMVC实践项目:【登录页面的验证】>

这篇文章详细的讲解了一个 简单的登录网页的前端代码和后端代码的构造 使用了JavaScript中的ajax来进行前后端的交互 一、前端代码 登录页面代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>登录…

CSS解析:盒模型

在网页上实现元素布局涉及很多技术。在复杂网站上&#xff0c;可能会用到浮动元素、绝对定位元素以及其他各种大小的元素&#xff0c;甚至也会使用较新的CSS特性&#xff0c;比如Flexbox或者网格布局。 在此之前我们要打好基础&#xff0c;深刻理解浏览器是如何设置元素的大小…

【卷起来】VUE3.0教程-04-表单输入绑定

Hello&#xff0c;各位老铁&#xff0c;今天我们继续给大家讲解VUE3.0教程&#xff0c;本期我们讲述一下VUE中的表单输入绑定&#xff0c;在实际开发过程中&#xff0c;表单的输入是我们常见的功能&#xff0c;那么我们接下来看看&#xff0c;VUE是如何处理的。 各位看官&…

JVM面试(五)垃圾回收机制和算法

概述 了解Java虚拟机的垃圾回收机制&#xff08;Garbage Collection&#xff0c;简称GC&#xff09;&#xff0c;我们也要像其作者John McCarthy一样&#xff0c;思考一下三个问题&#xff1a; 哪些内存需要回收&#xff1f;什么时候回收&#xff1f;如何回收&#xff1f; 虽…

51单片机-DS1302(RTC时钟显示,代码内改变,内设的24年9月5日,上午11:12:00)

一、DS1302时序及命令字 两个操作&#xff1a;写操作和读操作 写操作&#xff1a; &#xff08;由我们单片机一个控制引脚控制DS1302的IO口写入&#xff09;首先就是通过时序图把我们的命令字写入&#xff0c;命令字是控制我们对应要写入的年月日&#xff0c;时分秒等配置的关…

vue3安装sass时报错:Embedded Dart Sass couldn‘t find the embedded compiler executable

vue3安装sass&#xff1a; npm install sass --save-dev 引用 <template><div class"c1"><h1>hello</h1></div> </template> <style lang"scss">.c1{background-color:red;h1{color:yellow;}} </style>报…

2.门锁_STM32_舵机设备实现

概述 需求来源&#xff1a; 门锁的开启和关闭&#xff0c;就是电机来控制。这里不进行实际门锁机械结构的设计&#xff0c;选择用舵机或者电机转动一定的角度&#xff0c;就代表门锁开启。 舵机开发整体思路&#xff1a; 使用STM32裸机开发舵机&#xff0c;使得舵机可以实现…

spring boot 项目 prometheus 自定义指标收集区分应用环境集群实例ip,使用 grafana 查询--方法耗时分位数指标

spring boot 项目 prometheus 自定义指标收集 auth author JellyfishMIX - github / blog.jellyfishmix.comLICENSE LICENSE-2.0 说明 网上有很多 promehteus 和 grafana 配置&#xff0c;本文不再重复&#xff0c;只介绍自定义部分。目前只介绍了分位数指标的收集和查询&a…

公认最好的跑步耳机,精选五款热门骨传导运动耳机分享

跑步时候总想来点音乐伴随&#xff0c;但是带着有线耳机太局限&#xff0c;带无线耳机又总担心掉落&#xff0c;左右为难&#xff0c;想要挑选一款运动时带着舒服的耳机真的有点难。最近发现骨传导耳机作为一种创新的音频设备&#xff0c;与传统耳机不同&#xff0c;通过将声音…

如何建立有效的沟通和协作机制来开展DFMEA工作?

在当今复杂多变的工业环境中&#xff0c;DFMEA&#xff08;设计失效模式与影响分析&#xff0c;Design Failure Mode and Effects Analysis&#xff09;作为质量管理体系中的一项关键工具&#xff0c;对于预防产品设计和开发过程中潜在的失效模式具有不可估量的价值。有效的DFM…

超声波眼镜清洗机买哪款?2024超声波眼镜清洗机推荐

超声波清洗机正逐渐成为广受欢迎的清洁解决方案&#xff0c;它以高效、深入且细腻的清洁效果&#xff0c;以及操作上的简易性&#xff0c;赢得了消费者的广泛喜爱。不过&#xff0c;市面上琳琅满目的品牌、多样化的型号及波动的价格区间&#xff0c;确实给消费者挑选时带来了不…

uniapp和vue3中使用vConsole在H5中开启移动端调试

uniapp和vue3中使用vConsole在H5中开启移动端调试 1. 安装vconsole npm install vconsole --save2. 在main.js中全局引入 重新启动项目即可