当前位置: 首页 > news >正文

解析查看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.mrgr.cn/news/20145.html

相关文章:

  • Python requests库详细介绍
  • 探索中国星坤:构建全球合作网络,服务全球客户!
  • 手机玩地平线教程 GameViewer远程助你手机随时随地玩3A大作 手机怎么玩地平线
  • 【开源免费】基于SpringBoot+Vue.JS在线竞拍系统(JAVA毕业设计)
  • 【Gtoken Tool】区块链在供应链多方协作场景中的应用优势是什么
  • Android OpenGLES开发:EGL环境搭建
  • 音频在线转换mp3:学会这2个方法,拿捏音频转换
  • webpack基本使用(基础)
  • 快充充电宝什么品牌最好最耐用?耐用口碑好快充充电宝推荐!
  • 为什么vite引用静态资源 new URL 更常用
  • springboot发送request请求的方式
  • npm login 或者 npm publish 超时timeout
  • 不要为《黑神话:悟空》买新电脑,ToDesk云电脑体验分享
  • 动态规划---一和零
  • “解决MySQL容器启动后无法编辑文件的问题:实用指南“
  • 火山引擎VeDI赋能小城酒店业,助力“流量”向“留量”转化
  • 一种基于YOLOv10的高精度工业油污缺陷检测算法(原创自研)
  • kali——msfconsole的使用
  • 【计算机视觉前沿研究 热点 顶会】ECCV 2024中扩散模型有关的论文
  • 【Qt】Qt和JavaScript使用QWebChannel交互