ELF 文件类型 - ET_EXEC 和 ET_DYN
ELF file type - ET_EXEC and ET_DYN
好吧,据我所知,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 将可执行文件识别为共享库?
Why is readelf identifying executables as shared libraries?
因为它是(一种特殊的)共享库。另见 。
好吧,据我所知,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 将可执行文件识别为共享库?
Why is readelf identifying executables as shared libraries?
因为它是(一种特殊的)共享库。另见