exec 文件的 Hexdump(特别是 xxd)输出

exec 文件的 Hexdump(特别是 xxd)输出

当我使用 OS X 中的命令运行 Hexdump 时xxd -b "textile.txt",终端会在最右边的列中打印二进制文件和实际的 ASCII 等效文件,并以英文显示文本文件的内容。

如果我创建一个简单的 C 程序,它除了在终端上打印“hello world”之外,几乎不执行其他操作,并且我将它保存为一个.exec文件,xxd -b则命令输出包含二进制文件,当它被翻译后,在 .exec 文件原始的预编译源代码中是找不到的。

例子:

0002034: 00000101 00000000 00000010 01011111 01101101 01101000  ..._mh
000203a: 01011111 01100101 01111000 01100101 01100011 01110101  _execu
0002040: 01110100 01100101 01011111 01101000 01100101 01100001  te_hea
0002046: 01100100 01100101 01110010 00000000 00100001 01101101  der.!m
000204c: 01100001 01101001 01101110 00000000 00100101 00000010  ain.%.

我假设编译过程对此负责,这使我推测最右边一列的输出实际上可能是汇编代码。

我的问题总结: .exec 文件的十六进制转储输出的性质是什么,具体来说:它是汇编代码吗?如果不是,那么它是什么?

提前致谢。

答案1

不是真正的汇编语言;但我知道混合汇编语言和机器代码很常见。汇编语言仍然是一种(部分)人类可读的语言,必须经过编译才能被机器使用。您在这里看到的是机器代码。

https://en.wikipedia.org/wiki/Machine_code

相关内容