从这个维基:

它指出偏移量 7 处的数字标识目标操作系统。
我已经为 linux 机器编译了 ac 程序并检查elf header了结果文件的(前 64 个字节):
> xxd -l 64 helloworld
00000000: 7f45 4c46 0201 0100 0000 0000 0000 0000 .ELF............
00000010: 0300 3e00 0100 0000 8012 0000 0000 0000 ..>.............
00000020: 4000 0000 0000 0000 183f 0000 0000 0000 @........?......
00000030: 0000 0000 4000 3800 0d00 4000 1f00 1e00 ....@.8...@.....
Run Code Online (Sandbox Code Playgroud)
为什么我得到01第 7 个字节?不应该03吗?
为什么我得到第 7 个字节的 01?
偏移量 7 处的字节是第 8 个字节0,即 ,即System V。将1针对e_ident[EI_VERSION]其设置为1的“设置为1 ELF的原件和当前版本”。
7f45 4c46 0201 0100 ...
^^ - OSABI
^^ - VERSION
^^ DATA
^^ CLASS
^^^^^^^^^ - MAG{0..3}
Run Code Online (Sandbox Code Playgroud)
不应该是03吗?
正如您的链接所解释的那样,“无论目标平台如何,它通常都设置为 0”。
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |