objdump - head ELF - 标志的含义?

2023-11-24

$ objdump -f ./a.out

./a.out:     file format elf32-i386
architecture: i386, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x080484e0

$ objdump -f 函数.o

function.o:     file format elf32-i386
architecture: i386, flags 0x00000011:
HAS_RELOC, HAS_SYMS
start address 0x00000000

标志 0x00000011 和 0x00000112 的含义是什么? ELF 头文件中没有任何内容具有此标志。

有人知道它们的含义吗?


它们是 BFD 特定的位掩码。在 binutils 源代码树中,请参阅 bfd/bfd-in2.h:

  /* BFD contains relocation entries.  */
#define HAS_RELOC      0x01

  /* BFD is directly executable.  */
#define EXEC_P         0x02
...
  /* BFD has symbols.  */
#define HAS_SYMS       0x10
...
  /* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the
     linker sets this by default, but clears it for -r or -n or -N).  */
#define D_PAGED        0x100

这些标志值不会出现在您的目标文件中;它们只是 libbfd 使用的内存中表示形式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

objdump - head ELF - 标志的含义? 的相关文章

  • ELF文件查看利器之objdump用法

    Android在NDK开发工具中提供了objdump 用来帮助开发者查看编译后目标文件的组成结构和具体内容 常用的有以下几个功能选项 1 a或者 archive headers 这个参数起到的作用和ar命令相似 用来看一个 a静态库文件中包
  • 反汇编-objdump

    windows下完成objdump需要用到 反汇编的目标镜像 镜像生成的本地编译器 exe 相关指令如下 反汇编命令 编译器路径 例 D ACOINFO RealEvo compiler x86 64 sylixos toolchain b
  • objdump -d 输出程序集的含义

    我试图弄清楚这个 objdump d 的所有元素的含义 例如我有 08048b50
  • objdump - head ELF - 标志的含义?

    objdump f a out a out file format elf32 i386 architecture i386 flags 0x00000112 EXEC P HAS SYMS D PAGED start address 0x
  • 如何使用 objdump 反汇编单个函数?

    我的系统上安装了一个二进制文件 并且想查看给定函数的反汇编 最好使用objdump 但其他解决方案也是可以接受的 From 这个问题我了解到 如果我只知道边界地址 我也许能够反汇编部分代码 从这个答案我已经学会了如何将分割的调试符号转回单个
  • 为什么 objdump 显示该汇编语言指令的操作码为空?

    我有以下汇编代码 global start section text start add byte eax al 编译和链接后 我尝试查看操作码 objdump d eax o eax o file format elf32 i386 Di
  • 【日常踩坑】Debug 从入门到入土

    文章目录 分类 事后 addr2line objdump 反汇编 计算偏移量 优化
  • 如何在 Linux 中使用 objdump 和 bash 函数在共享对象文件中查找函数?

    我在linux中有一个文件夹 其中包含几个共享对象文件 so 如何在 Linux 中使用 objdump 和 bash 函数在共享对象文件中查找函数 例如下面的例子是find me函数func1在 mylib so 中 objdump d
  • 如何在 Linux 上检查 ELF 文件数据部分的内容?

    我一直在使用objdump查看 Linux ELF 二进制文件中的汇编代码 有时会通过存储在中的跳转表进行间接跳转rodata 只读数据 部分 如何获得objdump或任何其他工具可以向我显示此数据部分的内容 我可以执行程序并检查调试器中的
  • 如何从 elf 文件中提取函数原型?

    我没有成功地找到这个问题的答案 使用GDB 我可以使用命令 call 来获取函数的原型 例子 gdb call fn 1 void int int 0x8048414
  • Linux Mach-O 反汇编器

    是否有任何 Linux 程序可以像 objdump 一样反汇编 OSX 通用 x86 x86 64 fat Mach O 二进制文件 GNU binutils 的 objdump 支持 ELF 和 Windows PE 文件 但不支持 Ma
  • 使用 objdump 反汇编平面二进制文件

    我可以使用 objdump 反汇编平面二进制文件吗 我熟悉使用以下方法反汇编结构化二进制可执行文件 例如 ELF 文件 objdump d file elf 但是 如果我有一个我知道应该加载的平面二进制文件 例如地址 0xabcd1000
  • 什么是寄存器%eiz?

    在我使用转储出来的以下汇编代码中objdump lea 0x0 esi eiz 1 esi 什么是注册 eiz 前面的代码是什么意思 See 为什么选择 GCC LEA EIZ http web archive org web 200905
  • 无法在二进制文件中找到 .dtors 和 .ctors

    我正在读 黑客 剥削的艺术 一书 书中有一节解释了使用 dtors and ctors 我正在尝试重现本书的练习之一 但在我的可执行文件中没有这一部分 起初我以为问题是我正在编译 64 位 但现在我正在编译 32 位并且 dtors and
  • 了解 Objdump 中反汇编的二进制文件 - 输出中的字段是什么

    当我使用命令 arm linux gnueabihf objdump d a out 反汇编一个简单的 ARM 二进制文件时 得到以下输出 00008480 lt start gt 8480 f04f 0b00 mov w fp 0 848
  • 尝试汇编反汇编器的输出(例如 objdump)[重复]

    这个问题在这里已经有答案了 可能的重复 反汇编 修改然后重新组装 Linux 可执行文件 https stackoverflow com questions 4309771 disassembling modifying and then
  • objdump 输出中的“Algn”2**2 和 2**0 意味着什么?

    下面的文件中这是什么意思 2 2 and 2 0 objdump h main o main o file format elf32 i386 Sections Idx Name Size VMA LMA File off Algn 0 t
  • 为什么 objdump 不显示 .bss、.shstratab、.symtab 和 .strtab 部分?

    我目前正在用 C 语言实现我自己的 objdump 实现 For my s选项 我必须显示 ELF 文件各部分的完整内容 我做得很好 但我显示的部分比 真正的 objdump 更多 事实上 它并没有输出 bss shstrtab symta
  • 分析 ELF 部分和符号大小的工具

    我需要一种方法来分析 ARM 的 GCC 编译器的输出文件 我正在为裸机进行编译 并且我非常关心大小 我可以用arm none eabi objdump由交叉编译器提供 但如果存在用于此任务的工具 则解析输出并不是我渴望做的事情 您知道存在
  • arm-linux-gnueabi 编译器选项

    我在用 ARM Linux gnueabi gcc在 Linux 中为 ARM 处理器编译 C 程序 但是 我不确定它编译的默认 ARM 模式是什么 例如 对于 C 代码 test c unsigned int main return 0x

随机推荐