当使用 llvm-readelf 命令的 --elf-output-style=json 参数时,它会以 JSON 格式输出 ELF 文件的信息。以下是 llvm-readelf 在该参数下的输出信息的示例:

{
  "FileHeader": {
    "e_ident": {
      "EI_MAG0": 127,
      "EI_MAG1": 69,
      "EI_MAG2": 76,
      "EI_MAG3": 70,
      "EI_CLASS": 2,
      "EI_DATA": 1,
      "EI_VERSION": 1,
      "EI_OSABI": 0,
      "EI_ABIVERSION": 0,
      "EI_PAD": 0
    },
    "e_type": 2,
    "e_machine": 62,
    "e_version": 1,
    "e_entry": 4194304,
    "e_phoff": 64,
    "e_shoff": 70752,
    "e_flags": 0,
    "e_ehsize": 64,
    "e_phentsize": 56,
    "e_phnum": 9,
    "e_shentsize": 64,
    "e_shnum": 29,
    "e_shstrndx": 28
  },
  "ProgramHeaders": [
    {
      "p_type": 1,
      "p_flags": 5,
      "p_offset": 0,
      "p_vaddr": 0,
      "p_paddr": 0,
      "p_filesz": 640,
      "p_memsz": 640,
      "p_align": 4
    },
    ...
  ],
  "SectionHeaders": [
    {
      "sh_name": 0,
      "sh_type": 0,
      "sh_flags": 0,
      "sh_addr": 0,
      "sh_offset": 0,
      "sh_size": 0,
      "sh_link": 0,
      "sh_info": 0,
      "sh_addralign": 0,
      "sh_entsize": 0
    },
    ...
  ],
  "Symbols": [
    {
      "st_name": 0,
      "st_info": 0,
      "st_other": 0,
      "st_shndx": 0,
      "st_value": 0,
      "st_size": 0
    },
    ...
  ],
  "DynamicSymbols": [
    {
      "st_name": 131,
      "st_info": 17,
      "st_other": 0,
      "st_shndx": 8,
      "st_value": 4194304,
      "st_size": 8
    },
    ...
  ],
  "Relocations": [
    {
      "r_offset": 4194316,
      "r_type": 1024,
      "r_sym": 1,
      "r_addend": 0
    },
    ...
  ]
}

上述示例中的输出信息包括了 ELF 文件的文件头(FileHeader)、程序头表(ProgramHeaders)、节头表(SectionHeaders)、符号表(Symbols)、动态符号表(DynamicSymbols)以及重定位表(Relocations)。具体的输出内容会根据输入的 ELF 文件的不同而有所变化


原文地址: http://www.cveoy.top/t/topic/iY86 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录