It is possible to read an object file?

前端 未结 3 681
走了就别回头了
走了就别回头了 2021-02-08 03:01

I was curious about .obj files: I pretty much don\'t know what they are (or what they contain), so I opened them with Vim text editor and what I found inside was an

3条回答
  •  醉话见心
    2021-02-08 03:42

    The readelf tool is good at showing you some details on the data:

    $ readelf -a /usr/bin/readelf
    ELF Header:
      Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
      Class:                             ELF64
      Data:                              2's complement, little endian
      Version:                           1 (current)
      OS/ABI:                            UNIX - System V
      ABI Version:                       0
      Type:                              EXEC (Executable file)
      Machine:                           Advanced Micro Devices X86-64
    ...
    

    Some of its abilities to inspect specific sections of the executable can come in handy too:

    $ readelf -p .rodata /usr/bin/readelf | more
    
    String dump of section '.rodata':
      [     4]  R_IA64_IMM14
      [    11]  R_IA64_NONE
      ...
      [  1f58]    Personality routine: 
      [  1f70]  __gcc_personality_v0
      [  1f85]  __gxx_personality_v0
      [  1f9a]  __gcj_personality_v0
      [  1faf]  __gnu_objc_personality_v0
      ...
    

    Actually disassembling the code is a bit of a stretch; if you compile your code with -g for debugging symbols, you can use readelf --debug-dump to read the program source, type information, etc.

提交回复
热议问题