objdump - 为什么 objdump 中缺少信息?

标签 objdump

当我运行 objdump 时,我无法找出为什么我的汇编代码中有时会缺少一些 .words。一行中单独的“...”代表什么?

最佳答案

在 -d 或 -D(反汇编)的 objdump 输出内部,通常会有多个仅包含省略号的行实例。这只是因为上面和下面字节之间的所有字节都是空(0x00)。

下面是反汇编的 32 位程序的输出。偏移量00234(+4)和00240之间都是可执行文件内部的0x00。

40022c: 00000034    0x34
400230: 0000016a    0x16a
400234: 000001ac    0x1ac
  ...
400240: 00000098    0x98
400244: 00000000    nop
400248: 000000a9    0xa9
  ...
400254: 000000cf    0xcf

查看我们反汇编的应用程序,您可以看到省略号出现的地方都是空字节。多次向用户输出这些内容是没有意义的,因此 objdump 只是删除它们。粗体文本是省略号出现的地方。我还应该注意,如果只有一个空字节部分(32/64 位),objdump 会将其显示为 nop 或类似的内容,具体取决于机器。

Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000220                                      34 00 00 00              4...
00000230  6A 01 00 00 AC 01 00 00 00 00 00 00 00 00 00 00  j...¬...........
00000240  98 00 00 00 00 00 00 00 A9 00 00 00 00 00 00 00  ˜.......©.......
00000250  00 00 00 00 CF 00 00 00                          ....Ï...

关于objdump - 为什么 objdump 中缺少信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21020527/

相关文章:

c - 我如何在 linux 中使用 objdump 和 bash 函数在共享对象文件中找到函数?

我可以给 objdump 一个地址并让它反汇编包含函数吗?

c++ - C/C++ 内存占用,每个源文件

linux - objdump默认反汇编哪一段

python 崩溃了;如何解码 dmesg 日志中的段错误?

gcc - 我如何使用 objdump 之类的东西判断目标文件是否是使用 -fPIC 构建的?

linux - 如何提取 obj 文件中的所有部分

reverse-engineering - 使用 objdump 反汇编平面二进制文件

64-bit - 反汇编原始 x64 机器码

linux - objdump 和解析本地函数调用的链接?