linux下的elf結構

2021-08-29 19:15:15 字數 871 閱讀 9394

可以看到鏈結器和載入器看待elf是完全不同的,鏈結器看到的是由區段頭部表描述的一系列邏輯區段的集合(也就是說它忽略了程式頭部表)。而載入器則是看成是由程式頭部表描述的一系列的段的集合(忽略了區段頭部表)。

elf它可以表示不同型別的二進位制檔案(由e_type來決定):

#define et_none   0

#define et_rel 1 //可重定位

#define et_exec 2 //可執行

#define et_dyn 3 //動態鏈結庫

#define et_core 4

#define et_loproc 0xff00

#define et_hiproc 0xffff

elf的頭結構

typedef struct elf32_hdr elf32_ehdr;

區段頭部表項:

typedef struct  elf32_shdr;

程式頭部表--緊跟在elf頭下面,其實也就是可執行檔案用到的,由於可執行檔案需要將檔案對映到記憶體,並執行,因此這裡的頭部增加了要被對映的段:

typedef struct elf32_phdr elf32_phdr;

符號表結構:

typedef struct elf32_sym elf32_sym;

linux下常見的ELF檔案

linux下常見的elf檔案 1 可重定位檔案.obj,這種檔案包括資料和指令,可以被鏈結成為可執行檔案 exe 或者共享目標檔案 so 靜態鏈結庫可以歸為這一類 2 可執行檔案.exe,這種檔案包含了可以直接執行的程式,它的代表就是elf可執行檔案,他們一般都沒有副檔名 3 共享目標檔案.so,這...

Linux下的ELF檔案格式簡介

1 概述 executable and linking format elf 檔案是x86 linux系統下的一種常用目標檔案 object file 格式,elf檔案格式比較複雜,本文只是簡要介紹它的結構。有三種主要型別 1 適於連線的可重定位檔案 relocatable file 可與其它目標檔...

Linux下的ELF檔案格式簡介

1.概述 executable and linking format elf 檔案是x86 linux系統下的一種常用目標檔案 object file 格式,有三種主要型別 1 適於連線的可重定位檔案 relocatable file 可與其它目標檔案一起建立可執行檔案和共享目標檔案。2 適於執行的...