歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> linux目標文件ELF的格式

linux目標文件ELF的格式

日期:2017/3/3 16:56:43   编辑:關於Linux
1 <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">現在PC上流行的可執行文件格式主要是windows下的PE和linux下的ELF文件,他們都是COFF格式文件變種。目標文件時源代碼編譯後但未進行鏈接的那些中間文件,它跟可執行文件的格式幾乎沒有什麼區別,因此目標文件(.o文件)也和可執行文件使用一樣的儲存格式。</span>

在linux中除了可執行文件還有幾種文件也是使用ELF格式儲存的,其中包括動態庫文件(.so),可重定位文件(.o),核心轉儲文件(進程終止時系統將一些進程信息儲存到該類型的文件)。我們可以使用file命令查看文件類型 eg:

? 1 2 3 xiang@xiang:~/workspace/linux$ file prim prim: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xd54ce2ecedb22482c79f597093ff8c0b8f7c7113, not stripped xiang@xiang:~/workspace/linux$ 關於ELF文件的格式,其中包含了文件頭(file header),代碼段(.text),數據段(.data)未初始化數據段(.bss)等,通過objdump 命令可以查看各個段的信息。

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 xiang@xiang:~/workspace/algorithm$ g++ -c prim.cpp -o prim.o xiang@xiang:~/workspace/algorithm$ objdump -h prim.o prim.o: file format elf32-i386 Sections: Idx Name Size VMA LMA File off Algn 0 .text 0000031f 00000000 00000000 00000034 2**2 CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE 1 .data 00000000 00000000 00000000 00000354 2**2 CONTENTS, ALLOC, LOAD, DATA 2 .bss 003d3c21 00000000 00000000 00000360 2**5 ALLOC 3 .rodata 00000008 00000000 00000000 00000360 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 4 .ctors 00000004 00000000 00000000 00000368 2**2 CONTENTS, ALLOC, LOAD, RELOC, DATA 5 .comment 0000002c 00000000 00000000 0000036c 2**0 CONTENTS, READONLY 6 .note.GNU-stack 00000000 00000000 00000000 00000398 2**0 CONTENTS, READONLY 7 .eh_frame 000000dc 00000000 00000000 00000398 2**2 CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA xiang@xiang:~/workspace/algorithm$ objdump -h prim 1,文件頭(file header)在文件頭中包含了文件的魔數,機器字長,版本,運行平台,文件類型,入口地址,短信息等內容,其中魔數用於告訴系統文件的類型,如ELF文件的魔數就是DEL符+ELF,
Copyright © Linux教程網 All Rights Reserved