由此能夠看出,本人實踐所用到的是32位Ubuntu,數據存儲採用小端法。linux
能夠看到是可重定位文件,大小爲1028比特安全
能夠看到,Size of this header(文件頭部)52byteside
- (爲不一樣位數設置)
- (ELF頭結構體定義)
0000000 457f 464c 0101 0001 0000 0000 0000 0000 0000010 0002 0003 0001 0000 8320 0804 0034 0000 0000020 1174 0000 0000 0000 0034 0020 0009 0028 0000030 001e 001b
由上圖可見,section header table中包括了各段的偏移地址(off)和大小(size),能夠由此找到各段的位置。this
.text段分析編碼
能夠看到.text段跨越0x0到0x1b,剛好共0x1c(即28)個字節3d
該段的offset是0x3d8(正好在.symtab段以後),size是0x13,即到0x2ea爲止。
對應字符串爲:「\0hello.c\0main\0puts\0」code
這11個符號恰好和前面objdump輸出的符號表(10個符號,第一個符號爲空,因此被忽略)結果相對應;也和使用readelf中符號表相關內容對應(readelf命令輸出結果比objdump輸出結果看起來更易懂一些):對象
5.補充blog
該段爲.rel.text段(偏移量爲0x0000001b),sh_type爲0x00000009(對應SHT_REL),sh_offset爲0x000003ec,sh_size爲0x00000010(16個字節)。sh_link和sh_info分別爲b和1,分別表示相關符號表索引和重定位應用段的段頭索引。其他段的內容再也不詳細分析,能夠本身分析並於前面readelf輸出結果相對照。
……索引