ELF文件类型 - ET_EXEC和ET_DYN

时间:2018-05-12 05:56:05

标签: x86 elf

好吧,据我所知 ET_EXEC 用于表示该文件是可执行文件,而 ET_DYN 表示该文件是共享库。因此,为了确保我在C中编写了一个简单的程序,问题是 readelf -h 产生以下结果:

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:                              DYN (Shared object file)
  .
  .
  .

我认为这与我使用的编译器有关,所以我对 / bin 中的一些实用程序做了同样的事情,但遗憾的是得到了相同的结果。这就是问题:为什么readelf将可执行文件识别为共享库?

1 个答案:

答案 0 :(得分:2)

  

为什么readelf将可执行文件识别为共享库?

因为(一种特殊的)共享库。另请参阅this answer