ELF (Executable and Linkable Format) 是 Linux 和 Unix-like 系统上可执行文件、库文件、共享文件等的标准格式。它具有以下几个特征:

  1. 多平台支持:ELF 可以在多种平台上运行,包括 x86、x86_64、SPARC、PowerPC、ARM 等。

  2. 链接支持:ELF 可以将多个目标文件链接到一起,以生成单一的可执行文件。

  3. 可重定位:ELF 文件可以在加载时重定位,以适应不同的地址空间要求。

  4. 可加载的段:ELF 文件可以包含多个可加载的段,以实现不同的加载方式。

  5. 大小可变:ELF 文件的大小可以通过段的大小和位置进行调整。

  6. 标准化:ELF 文件的格式已被 ISO 和 POSIX 组织标准化。

通过使用工具如 readelfobjdump,可以分析和查看 ELF 文件的各个部分,以了解其结构和内容。

nmreadelf 是 Linux 下的两个可执行文件分析工具。

nm 用于显示可执行文件或目标文件中符号表的内容,例如函数名、变量名和它们对应的地址。

readelf 则是一个功能更强大的可执行文件分析工具,可以查看可执行文件的所有元数据,例如符号表、段表、头表等,以及每个元数据的详细信息。

总的来说,如果只需要查看符号表信息,则可以使用 nm;如果需要对可执行文件进行详细的分析,则可以使用 readelf

Linux 下nm 、objdump 和 readelf 比较相关推荐

  1. Linux下nm和ldd 命令

    1. Linux nm 命令 nm ['-a'|'--debug-syms'] ['-g'|'--extern-only'] ['-B'] ['-C'|'--demangle'[=style]] [' ...

  2. linux 下nm命令输出,Linux nm命令介绍

    nm用来列出目标文件的符号清单.下面是nm命令的格式: nm [-a | --debug-syms] [-g | --extern-only] [-B][-C | --demangle] [-D | ...

  3. linux 下nm命令输出,使用awk解析nm命令的输出 - Linux Bash

    这听起来这样从您的评论可能是你真正寻找: $ cat tst.awk { size = strtonum("0x"$1) sub(/^([^[:space:]]+[[:space: ...

  4. linux进程 exe可执行文件空,linux可执行文件的内容分析工具nm objdump readelf ar ldd

    转自:http://blog.csdn.net/eroswang/article/details/1967243 UNIX(R) 系统中运行的程序遵守一种称为目标文件格式的精心设计.了解更多关于目标文 ...

  5. 段错误需要使用的工具 nm objdump readelf

    nm:列出目标文件中的符号. objdump:显示目标文件中的详细信息. readelf:显示关于 ELF 目标文件的信息. 具体的readelf命令可以查看 列表中的第一个工具是 nm,它可以列出目 ...

  6. Linux ——objdump和readelf的使用

    在一个程序编译结束后,会生成****.o的文件,但往往当我们用vim命令查看这个文件内容时,就全是乱码, 像这样: 那么我们应该如何查看***.o文件呢? objdump和readelf的使用 obj ...

  7. 模仿实现Linux下readelf工具部分功能

    模仿实现Linux下 readelfreadelfreadelf 工具部分功能 完整实现: https://github.com/JiaZhengJingXianSheng/ReadELF ELF 目 ...

  8. Linux下的静态库、动态库和动态加载库

    from: http://www.techug.com/linux-static-lib-dynamic-lib 库的存在极大的提高了C/C++程序的复用性,但是库对于初学者来说有些难以驾驭,本文从L ...

  9. Linux下的ELF文件、链接、加载与库(含大量图文解析及例程)

    Linux下的ELF文件.链接.加载与库 链接是将将各种代码和数据片段收集并组合为一个单一文件的过程,这个文件可以被加载到内存并执行.链接可以执行与编译时,也就是在源代码被翻译成机器代码时:也可以执行 ...

最新文章

  1. java学习笔记(七)----异常
  2. 2020-11-10(进程的优先级)
  3. java 句柄 内存_Java内存区域学习
  4. 如何使用 sklearn 优雅地进行数据挖掘?
  5. 数字n,按字典排序,找出第k小的数字
  6. docker安装tesseract
  7. eclipse maven scm
  8. Learn OpenGL(七)——OpenGL中使用着色器的基本步骤及GLSL渲染简单示例
  9. jQuery数组处理汇总
  10. matlab朴素贝叶斯手写数字识别_「深度学习系列」PaddlePaddle之手写数字识别
  11. Cesium gltf(1.70)三维人物动画制作
  12. python100天从新手到大师下载_GitHub - longers/Python-100-Days: Python - 100天从新手到大师...
  13. C语言练习-day25
  14. 《读九章算术学Python》如何用Python编程实现盈不足术?附图解分析、代码实现和习题解答
  15. Windows 10 合并磁盘分区 (G and H)
  16. android+播放器+遥控,遥控大师安卓客户端
  17. 为什么说边缘计算是5G时代的必备品?
  18. 记录一下大三暑假来广州的实习生活
  19. 多媒体个人计算机软件系统由,多媒体计算机软件系统由什么组成
  20. android webview 找不到网页,[疑难杂症] Android WebView 无法打开天猫页面

热门文章

  1. mac latex与texstudio安装
  2. 超详细Seaborn绘图 ——(一)barplot
  3. [译] 流量控制(TC)五十年:从基于缓冲队列(Queue)到基于时间戳(EDT)的演进...
  4. 复杂计算器代码,C++
  5. matlab复杂噪声产生实验报告,基于小波信号的噪声消除matlab实验报告.docx
  6. 前端jquery实现图片点击放大缩小
  7. 广度搜索与深度搜索的区别
  8. 目标检测入门知识以思考(写于2021.11)
  9. HEVC(h265)学习
  10. C 时间库 time.h 获取当前时间