国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

UNIX/Linux平臺上可執行文件格式分析三
2007-04-25   中國IT實驗室

段由若干個節(Section)構成,節頭表對每一個節的信息有相關描述。對可執行程序而言,節頭表是可選的。參考資料 1中作者談到把節頭表的所有數據全部設置為0,程序也能正確運行!ELF頭部是一個關于本文件的路線圖(road map),從總體上描述文件的結構。下面是ELF頭部的數據結構:

typedef struct

{

unsigned char e_ident[EI_NIDENT]; /* 魔數和相關信息 */

Elf32_Half e_type; /* 目標文件類型 */

Elf32_Half e_machine; /* 硬件體系 */

Elf32_Word e_version; /* 目標文件版本 */

Elf32_Addr e_entry; /* 程序進入點 */

Elf32_Off e_phoff; /* 程序頭部偏移量 */

Elf32_Off e_shoff; /* 節頭部偏移量 */

Elf32_Word e_flags; /* 處理器特定標志 */

Elf32_Half e_ehsize; /* ELF頭部長度 */

Elf32_Half e_phentsize; /* 程序頭部中一個條目的長度 */

Elf32_Half e_phnum; /* 程序頭部條目個數 */

Elf32_Half e_shentsize; /* 節頭部中一個條目的長度 */

Elf32_Half e_shnum; /* 節頭部條目個數 */

Elf32_Half e_shstrndx; /* 節頭部字符表索引 */

} Elf32_Ehdr;

  下面我們對ELF頭表中一些重要的字段作出相關說明,完整的ELF定義請參閱參考資料 6和參考資料7。

  e_ident [0]-e_ident[3]包含了ELF文件的魔數,依次是0x7f、'E'、'L'、'F'。注意,任何一個ELF 文件必須包含此魔數。參考資料 3中討論了利用程序、工具、/Proc文件系統等多種查看ELF魔數的方法。e_ident[4]表示硬件系統的位數,1代表32位,2代表64位。 e_ident[5] 表示數據編碼方式,1代表小印第安排序(最大有意義的字節占有最低的地址),2代表大印第安排序(最大有意義的字節占有最高的地址)。e_ident [6]指定ELF頭部的版本,當前必須為1。e_ident[7]到e_ident[14]是填充符,通常是0。ELF格式規范中定義這幾個字節是被忽略的,但實際上是這幾個字節完全可以可被利用。如病毒Lin/Glaurung.676/666(參考資料 1)設置 e_ident[7]為0x21,表示本文件已被感染;或者存放可執行代碼(參考資料 2)。ELF頭部中大多數字段都是對子頭部數據的描述,其意義相對比較簡單。值得注意的是某些病毒可能修改字段e_entry(程序進入點)的值,以指向病毒代碼,例如上面提到的病毒Lin/Glaurung.676/666。

  一個實際可執行文件的文件頭部形式如下:(利用命令readelf)

ELF Header:

Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00

Class: ELF32

Data: 2's complement, little endian

Version: 1 (current)

OS/ABI: UNIX - System V

ABI Version: 0

Type: EXEC (Executable file)

Machine: Intel 80386

Version: 0x1

Entry point address: 0x80483cc

Start of program headers: 52 (bytes into file)

Start of section headers: 14936 (bytes into file)

Flags: 0x0

Size of this header: 52 (bytes)

Size of program headers: 32 (bytes)

Number of program headers: 6

Size of section headers: 40 (bytes)

Number of section headers: 34

Section header string table index: 31

  緊接ELF頭部的是程序頭表,它是一個結構數組,包含了ELF頭表中字段e_phnum定義的條目,結構描述一個段或其他系統準備執行該程序所需要的信息。

typedef struct {

Elf32_Word p_type; /* 段類型 */

Elf32_Off p_offset; /* 段位置相對于文件開始處的偏移量 */

Elf32_Addr p_vaddr; /* 段在內存中的地址 */

Elf32_Addr p_paddr; /* 段的物理地址 */

Elf32_Word p_filesz; /* 段在文件中的長度 */

Elf32_Word p_memsz; /* 段在內存中的長度 */

Elf32_Word p_flags; /* 段的標記 */

Elf32_Word p_align; /* 段在內存中對齊標記 */

} Elf32_Phdr;

  在詳細討論可執行文件程序頭表之前,首先查看一個實際文件的輸出:

Program Headers:

Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align

PHDR 0x000034 0x08048034 0x08048034 0x000c0 0x000c0 R E 0x4

INTERP 0x0000f4 0x080480f4 0x080480f4 0x00013 0x00013 R 0x1

[Requesting program interpreter: /lib/ld-linux.so.2]

LOAD 0x000000 0x08048000 0x08048000 0x00684 0x00684 R E 0x1000

LOAD 0x000684 0x08049684 0x08049684 0x00118 0x00130 RW 0x1000

DYNAMIC 0x000690 0x08049690 0x08049690 0x000c8 0x000c8 RW 0x4

NOTE 0x000108 0x08048108 0x08048108 0x00020 0x00020 R 0x4

Section to Segment mapping:

Segment Sections...

00

01 .interp

02 .interp .note.ABI-tag .hash sym str .gnu.version .

gnu.version_r .rel

.rel.plt .init .plt .text .fini .rodata .eh_frame

03 .data amic .ctors .dtors .jcr .got .bss

04 amic

05 .note.ABI-tag

Section Headers:

[Nr] Name Type Addr Off Size ES Flg Lk Inf Al

[ 0] NULL 00000000 000000 000000 00 0 0 0

[ 1] .interp PROGBITS 080480f4 0000f4 000013 00 A 0 0 1

[ 2] .note.ABI-tag NOTE 08048108 000108 000020 00 A 0 0 4

[ 3] .hash HASH 08048128 000128 000040 04 A 4 0 4

[ 4] sym DYNSYM 08048168 000168 0000b0 10 A 5 1 4

[ 5] str STRTAB 08048218 000218 00007b 00 A 0 0 1

[ 6] .gnu.version VERSYM 08048294 000294 000016 02 A 4 0 2

[ 7] .gnu.version_r VERNEED 080482ac 0002ac 000030 00 A 5 1 4

[ 8] .rel REL 080482dc 0002dc 000008 08 A 4 0 4

[ 9] .rel.plt REL 080482e4 0002e4 000040 08 A 4 b 4

[10] .init PROGBITS 08048324 000324 000017 00 AX 0 0 4

[11] .plt PROGBITS 0804833c 00033c 000090 04 AX 0 0 4

[12] .text PROGBITS 080483cc 0003cc 0001f8 00 AX 0 0 4

[13] .fini PROGBITS 080485c4 0005c4 00001b 00 AX 0 0 4

[14] .rodata PROGBITS 080485e0 0005e0 00009f 00 A 0 0 32

[15] .eh_frame PROGBITS 08048680 000680 000004 00 A 0 0 4

[16] .data PROGBITS 08049684 000684 00000c 00 WA 0 0 4

[17] amic DYNAMIC 08049690 000690 0000c8 08 WA 5 0 4

[18] .ctors PROGBITS 08049758 000758 000008 00 WA 0 0 4

[19] .dtors PROGBITS 08049760 000760 000008 00 WA 0 0 4

[20] .jcr PROGBITS 08049768 000768 000004 00 WA 0 0 4

[21] .got PROGBITS 0804976c 00076c 000030 04 WA 0 0 4

[22] .bss NOBITS 0804979c 00079c 000018 00 WA 0 0 4

[23] .comment PROGBITS 00000000 00079c 000132 00 0 0 1

[24] .debug_aranges PROGBITS 00000000 0008d0 000098 00 0 0 8

[25] .debug_pubnames PROGBITS 00000000 000968 000040 00 0 0 1

[26] .debug_info PROGBITS 00000000 0009a8 001cc6 00 0 0 1

[27] .debug_abbrev PROGBITS 00000000 00266e 0002cc 00 0 0 1

[28] .debug_line PROGBITS 00000000 00293a 0003dc 00 0 0 1

[29] .debug_frame PROGBITS 00000000 002d18 000048 00 0 0 4

[30] .debug_str PROGBITS 00000000 002d60 000bcd 01 MS 0 0 1

[31] .shstrtab STRTAB 00000000 00392d 00012b 00 0 0 1

[32] .symtab SYMTAB 00000000 003fa8 000740 10 33 56 4

[33] .strtab STRTAB 00000000 0046e8 000467 00 0 0 1

熱詞搜索:

上一篇:UNIX/Linux平臺上可執行文件格式分析 二
下一篇:UNIX/Linux平臺上可執行文件格式分析 四

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
95精品视频在线| 奇米影视一区二区三区| 午夜激情久久久| 国产成人免费视频| 欧美日韩另类国产亚洲欧美一级| 久久久精品中文字幕麻豆发布| 亚洲国产成人av网| av激情成人网| 欧美激情综合五月色丁香| 免费黄网站欧美| 欧美日韩一区三区| 亚洲激情第一区| 不卡高清视频专区| 日本一区二区三区四区| 精品亚洲porn| 欧美一区二区免费观在线| 亚洲一二三专区| 91福利国产成人精品照片| 国产精品美女久久久久aⅴ| 国产乱子伦一区二区三区国色天香| 这里只有精品免费| 亚洲aⅴ怡春院| 欧美日韩成人综合| 日韩精品色哟哟| 4438x成人网最大色成网站| 一区二区高清视频在线观看| 91看片淫黄大片一级| 国产精品久线在线观看| 99视频热这里只有精品免费| 自拍偷拍亚洲综合| 色偷偷成人一区二区三区91| 国产精品国模大尺度视频| 成人高清免费观看| 亚洲婷婷在线视频| 91麻豆6部合集magnet| 一区二区在线看| 欧美日韩精品欧美日韩精品 | 免费成人在线视频观看| 欧美久久久久久久久久| 亚洲成人免费视| 制服丝袜亚洲色图| 另类欧美日韩国产在线| 精品国产三级a在线观看| 国产一区美女在线| 亚洲国产精品成人综合| 成人美女视频在线观看| 亚洲欧美另类小说视频| 欧美男女性生活在线直播观看| 三级久久三级久久| 日韩精品专区在线| 成人黄动漫网站免费app| 亚洲精选一二三| 69av一区二区三区| 国内外成人在线| 婷婷成人综合网| 日韩精品一区二| 国产成人av电影| 亚洲激情av在线| 欧美成人精品3d动漫h| 国产999精品久久久久久| 亚洲激情六月丁香| 精品国产一二三区| 99国产精品国产精品久久| 日韩专区一卡二卡| 欧美激情一区在线观看| 欧美网站一区二区| 国产精品一区二区男女羞羞无遮挡 | 免费成人av在线| 国产精品美女久久久久久久久| 欧美日韩极品在线观看一区| 国产麻豆成人精品| 亚洲国产精品久久久久秋霞影院| 日韩一区二区在线观看视频 | 欧美一级一区二区| 不卡高清视频专区| 久久99久久久久| 亚洲黄色av一区| 久久精品亚洲国产奇米99| 欧美无人高清视频在线观看| 粉嫩蜜臀av国产精品网站| 婷婷中文字幕综合| 亚洲九九爱视频| 中文成人综合网| 日韩三级伦理片妻子的秘密按摩| 色综合久久99| 国产乱码字幕精品高清av| 视频一区二区不卡| 一区二区三区在线免费| 中文一区二区在线观看| 日韩精品一区二区在线| 欧美日韩精品高清| 97se亚洲国产综合自在线 | 中文字幕欧美激情一区| 欧美一区二区三区视频在线观看| 99riav久久精品riav| 国产一区二区剧情av在线| 亚洲18女电影在线观看| 亚洲精品一二三| 18成人在线视频| 国产女主播在线一区二区| 欧美成人精精品一区二区频| 日韩一区二区中文字幕| 91精品黄色片免费大全| 欧美日韩综合在线免费观看| 日本高清不卡一区| 色播五月激情综合网| 精品久久五月天| 日韩一区二区免费电影| 91精品啪在线观看国产60岁| 欧美日韩久久久一区| 欧美色综合网站| 欧美年轻男男videosbes| 欧美美女网站色| 欧美一区中文字幕| 欧美日本一区二区三区| 欧美一级黄色片| 精品久久一二三区| 久久久蜜臀国产一区二区| 国产欧美综合在线观看第十页| 久久精品这里都是精品| 日本一区二区三区在线观看| 国产精品免费av| 亚洲欧洲在线观看av| **性色生活片久久毛片| 一区二区视频免费在线观看| 一区二区国产盗摄色噜噜| 午夜欧美视频在线观看| 日韩1区2区3区| 国产一区二区三区久久久| 国产乱人伦偷精品视频免下载| 高清不卡一区二区| 色哟哟国产精品| 欧美一区二区三区视频| 久久奇米777| 中文字幕亚洲在| 午夜av电影一区| 国内精品伊人久久久久av影院 | 一区二区三区免费看视频| 亚洲国产成人高清精品| 精品在线亚洲视频| av在线不卡电影| 欧美久久一二三四区| 久久精品一二三| 精品中文字幕一区二区| 国产成人在线色| 在线观看日产精品| 日韩一区二区视频在线观看| 国产精品色哟哟网站| 性欧美疯狂xxxxbbbb| 国产99久久久久久免费看农村| 一本大道久久a久久精品综合| 制服丝袜中文字幕亚洲| 国产精品少妇自拍| 婷婷丁香久久五月婷婷| 国产成人免费网站| 在线成人小视频| 亚洲欧洲精品天堂一级| 久久精品久久99精品久久| 色综合天天综合色综合av| 日韩亚洲欧美高清| 亚洲乱码日产精品bd| 国内精品在线播放| 在线不卡a资源高清| 国产精品久久毛片a| 麻豆精品新av中文字幕| 在线亚洲一区二区| 国产欧美一区视频| 日韩av一级电影| 在线免费观看一区| 国产日产精品一区| 日韩影院免费视频| 91国产免费观看| 国产亲近乱来精品视频| 精品一区二区三区在线观看 | 麻豆成人免费电影| 欧美视频精品在线| 亚洲女子a中天字幕| 成人一级片在线观看| 精品少妇一区二区三区在线播放| 亚洲国产综合91精品麻豆| 91免费观看视频| 国产精品理论在线观看| 国产精品18久久久久久久久| 日韩午夜小视频| 国产69精品久久久久毛片| 精品免费日韩av| 久久er99热精品一区二区| 91精品在线麻豆| 日韩精品免费专区| 欧美乱妇15p| 图片区日韩欧美亚洲| 欧美私人免费视频| 亚洲欧美激情视频在线观看一区二区三区| 国产精品亚洲一区二区三区在线 | 在线观看www91| 一区二区高清免费观看影视大全| 激情小说欧美图片| 精品区一区二区| 国内精品久久久久影院薰衣草| 亚洲精品一区二区三区99|