456成人影院在线观看_亚洲a毛片_日韩9999_伊人网老司机_一本免费视频_最近高清日本免费

IT之道-艾銻知道

您當前位置: 主頁 > 資訊動態 > IT知識庫 >

IT系統運維-PE文件結構


2020-05-01 17:37 作者:艾銻無限 瀏覽量:
在Windows系統運維中,對各種文件結構必須有個清晰的了解。其中PE文件結構是我們系統運維必須要了解的結構體。PE(Portable Executable:可移植的執行體)是Win32環境自身所帶的可執行文件格式。它的一些特性繼承自Unix的Coff(Common Object File Format)文件格式。可移植的執行體意味著此文件格式是跨win32平臺的,即使Windows運行在非Intel的CPU上,任何win32平臺的PE裝載器都能識別和使用該文件格式。當然,移植到不同的CPU上PE執行體必然得有一些改變。除VxD和16位的Dll外,所有 win32執行文件都使用PE文件格式。因此,研究PE文件格式是我們洞悉Windows結構的良機。

文件結構

圖表結構:


 

 
DOS頭是用來兼容MS-DOS操作系統的

NT頭包含windows PE文件的主要信息

節表:是PE文件后續節的描述

節:每個節實際上是一個容器,可以包含代碼、數據等等,每個節可以有獨立的內存權限,比如代碼節默認有讀/執行權限,節的名字和數量可以自己定義

文件地址

1、PE文件在硬盤上和在內存里是不完全一樣的,被加載到內存以后其占用的虛擬地址空間要比在硬盤上占用的空間大一些,這是因為各個節在硬盤上是連續的,而在內存中是按頁對齊的。

2、PE結構內部,表示某個位置的地址采用了兩種方式,針對在硬盤上存儲文件中的地址,稱為原始存儲地址或物理地址表示距離文件頭的偏移;另外一種是針對加載到內存以后映象中的地址,稱為相對虛擬地址(RVA),表
示相對內存映象頭的偏移。

3、CPU的某些指令是需要使用絕對地址的,比如取全局變量的地址,傳遞函數的地址編譯以后的匯編指令中肯定需要用到絕對地址而不是相對映象頭的偏移,因此PE文件會建議操作系統將其加載到某個內存地址(這個叫基地
址),這種表示方式叫做虛擬地址(VA)

4、PE文件無法加載到預期的地址,那么系統會幫他重新選擇一個合適的基地址將他加載到此處,這時原有的VA就全部失效了,NT頭保存了PE文件加載所需的信息,在不知道PE會加載到哪個基地址之前,VA是無效的,所以在
PE文件頭中大部分是使用RVA來表示地址的

可執行文件頭

1、PE文件可以導出函數讓其他的PE文件使用,也可以從其他PE文件導入函數

2、PE文件通過導出表指明自己導出那些函數,通過導入表指明需要從哪些模塊導入哪些函數。

3、DOS頭和NT頭就是PE文件中兩個重要的文件頭

DOS頭

typedef struct _IMAGE_DOS_HEADER {      // DOS .EXE header

    WORD   e_magic;                     // Magic number

    WORD   e_cblp;                      // Bytes on last page of file

    WORD   e_cp;                        // Pages in file

    WORD   e_crlc;                      // Relocations

    WORD   e_cparhdr;                   // Size of header in paragraphs

    WORD   e_minalloc;                  // Minimum extra paragraphs needed

    WORD   e_maxalloc;                  // Maximum extra paragraphs needed

    WORD   e_ss;                        // Initial (relative) SS value

    WORD   e_sp;                        // Initial SP value

    WORD   e_csum;                      // Checksum

    WORD   e_ip;                        // Initial IP value

    WORD   e_cs;                        // Initial (relative) CS value

    WORD   e_lfarlc;                    // File address of relocation table

    WORD   e_ovno;                      // Overlay number

    WORD   e_res[4];                    // Reserved words

    WORD   e_oemid;                     // OEM identifier (for e_oeminfo)

    WORD   e_oeminfo;                   // OEM information; e_oemid specific

    WORD   e_res2[10];                  // Reserved words

    LONG   e_lfanew;                    // File address of new exe header

  } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;


 

 
重點關注字段

e_magic:一個WORD類型,值是一個常數0x4D5A,用文本編輯器查看該值位‘MZ’,可執行文件必須都是'MZ'開頭。

e_lfanew:為32位可執行文件擴展的域,用來表示DOS頭之后的NT頭相對文件起始地址的偏移。

NT頭

typedef struct _IMAGE_NT_HEADERS {


    DWORD Signature;

    IMAGE_FILE_HEADER FileHeader;

    IMAGE_OPTIONAL_HEADER32 OptionalHeader;

} IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32;


 


 
Signature:類似于DOS頭中的e_magic,其高16位是0,低16是0x4550,用字符表示是'PE‘。
I
MAGE_FILE_HEADER是PE文件頭

typedef struct _IMAGE_FILE_HEADER {

    WORD    Machine;

    WORD    NumberOfSections;

    DWORD   TimeDateStamp;

    DWORD   PointerToSymbolTable;

    DWORD   NumberOfSymbols;

    WORD    SizeOfOptionalHeader;

    WORD    Characteristics;

} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;

PE文件頭


 


 
Machine:該文件的運行平臺,是x86、x64還是I64

NumberOfSections:該PE文件中有多少個節,也就是節表中的項數。

TimeDateStamp:PE文件的創建時間,一般有連接器填寫。

PointerToSymbolTable:COFF文件符號表在文件中的偏移。

NumberOfSymbols:符號表的數量。

SizeOfOptionalHeader:緊隨其后的可選頭的大小。

Characteristics:可執行文件的屬性,可以是下面這些值按位相或。

PE導入表

IMAGE_DIRECTORY_ENTRY_IMPORT就是導入表,在PE文件加載時,會根據這個表里的內容加載依賴的DLL,并填充所需函數的地址IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT叫做綁定導入表,在第一種導入表導入
地址的修正是在PE加載時完成,如果一個PE文件導入的DLL或者函數多那么加載起來就會略顯的慢一些,所以出現了綁定導入,在加載以前就修正了導入表,這樣就會快一些。IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT
叫做延遲導入表,一個PE文件也許提供了很多功能,也導入了很多其他DLL,但是并非每次加載都會用到它提供的所有功能,也不一定會用到它需要導入的所有DLL,因此延遲導入就出現了,只有在一個PE文件真正用到需要的
DLL,這個DLL才會被加載,甚至于只有真正使用某個導入函數,這個函數地址才會被修正。

IMAGE_DIRECTORY_ENTRY_IAT是導入地址表,前面的三個表其實是導入函數的描述,真正的函數地址是被填充在導入地址表中的。

裝載PE文件的主要步驟 

第一:當PE文件被執行,PE裝載器檢查DOS MZ header里的PE header偏移量。如果找到,則跳轉到PE header。

第二:PE裝載器檢查PE header的有效性。如果有效,就跳轉到PE header的尾部。

第三:緊跟PE header的是節表。PE裝載器讀取其中的節索引信息,并采用文件映射方法將這些節映射到內存,同時附上節表里指定的節屬性。

第四:PE文件映射入內存后,PE裝載器將處理PE文件中類似import table(引入表)邏輯部分。
 
艾銻無限科技專業:IT外包、企業外包北京IT外包、桌面運維、弱電工程、網站開發、wifi覆蓋方案,網絡外包,網絡管理服務,網管外包,綜合布線,服務器運維服務,中小企業it外包服務,服務器維保公司,硬件運維,網站運維服務
 
以上文章由北京艾銻無限科技發展有限公司整理

相關文章

IT外包服務
二維碼 關閉
主站蜘蛛池模板: 天天人人干_字幕专区码中文欧美在线_九色视频免费在线观看_日本又色又爽又黄的a片中文字幕_久久99精品国产麻豆婷婷洗澡_精品少妇一区二区三区免费观_动漫精品无码h在线观看_最近免费韩国日本HD中文字幕 | 久久午夜神器_理论片麻豆_国产成人精品日本亚洲一区_视频在线观看h_日本视频一区二区不卡_97人妻免费碰视频碰免_国产一级淫片一三区_韩国黄色一级毛片 | 精品人妻无码一区二区三区牛牛_中文字幕无码乱码人妻系列蜜桃_中文字幕亚洲码在线观看_欧美大片首页欧美大片首页_亚洲国产精品午夜在线观看_成人免费xxx在线观看_全球AV集中精品导航福利_国产午夜福利久久网 | 黑人巨大两根一起挤进_四虎影院在线视频_国产大片黄在线观看私人影院_在线免费看污_国产裸体视频_国产成人综合在线观看不卡_国产成人综合亚洲专区_亚洲av无码专区青青草原 | 青天衙门第一部免费版_粉色视频成人免费观看_国产白嫩漂亮美女在线观看_亚州精品天堂中文字幕_中文字幕av三区_欧美日韩一级黄_一级做a爰片欧美激情床_国产精品二区视频 | 四虎黄色影视_不卡在线观看亚洲视频_在线a网_国产日韩在线观看视频_国产日韩欧美亚洲_色的综合_97夜夜澡人人爽人人_久久久6精品成人午夜51777 | 欧洲成人午夜精品无码区久久_亚洲高清国产拍精品动图_深夜免费福利_欧美日产一区二区三区在线观看_一二三区免费视频_成人久久一区_国产高中美女福利剧情简介_2018天天操天天干 | 蜜桃臀av_粉嫩av一区二区三区在线_香港aa三级久久三级_亚洲精品在线播放_国产高潮流白浆喷水在线观看_多人调教到高潮失禁h重口文_久久精品国产亚洲A∨麻豆_色欲精品国产一区二区三区AV | 欧美黄视频网站_亚洲三级黄色片_亚洲精品一区二区网址_在线sese_无码福利日韩神码福利片_在线亚洲无砖砖区免费_在线一区二区三区精品_青草青青在线视频 | 久久久品_青青偷拍视频_使劲快高潮了国语对白在线_国精品**一区二区三区在线蜜桃_2019亚洲男人天堂_欧美一及_国产草莓视频无码A在线观看_日本少妇色xxxxx中国免费看 | 精品中文视频_欧美成人精品网站_久久久久亚洲AV成人网址_国产又猛又黄又爽三男一女_99热最新精品_午夜秒播_国产日本在线视频_99re成人精品视频 | 久久久久久久美女_国产A级护士毛片_国产亚洲精品久久久999密壂_欧美日韩免费在线观看_日韩一级片免费视频_国产精品久久久久久婷婷动漫_国产在线精品免费_久久在现视频 | 国产无套无码AⅤ在线观看_成人一在线视频日韩国产_同性男男黄G片免费网站_天天干天天日夜夜操_女人和公猪交内射网站_国产玖玖在线视频_韩国日本中文字幕_欧美一级网 | 福利社区一区二区_国产日韩精品一区二区在线观看播放_717影院理论午夜伦八戒_在线观看视频中文字幕_高清国产AV一区二区三区_视频二区精品中文字幕_久久夜夜躁天天躁背后的原因_99热国产在线中文 | 男女性潮高清免费网站_www.亚洲区_插插无码视频大全不卡网站_国产福利99_乱人伦中文无码视频在线观看_国精无码欧精品亚洲一区_柠檬av导航_精品少妇XXXX | gogogo在线播放中国_国产视频久久网_欧美日韩在线观看视频_久久91超碰人人澡人人爽_青草草免费视频_青青青国产精品一区二区_免费亚洲一区二区_无码潮喷A片无码高潮免费 | 亚洲国产精品成人精品无码区在线_免费观看日韩视频_69亚洲_国产精品一区二区含羞草_久久福利青草精品资源站免费_久久国产婷婷国产香蕉_欧美视频二区_亚洲av无码久久精品成人 | 97caopron在线视频_久久精品国产免费观看_色欲AV蜜桃一区二区三_久久精品88_瑞典性xxxxxhd高清_69av网站_91大神新作在线观看_巨茎爆乳无码性色福利 国产福利一区二区三区在线播放_中文字幕久精品免费视频_毛片a在线_精品黄色视_免费观看韩国理论片_成人免费A级毛片无码_一级免费看_中文字幕永久免费 | 黄色欧美日韩_在线一级_黄色一级片在线免费观看_亚洲色欲综合一区二区三区_婷婷去俺也去_国产一区观看_青青草免费在线观看_LULUHEI噜噜黑最新地址 | 国产91精品老熟女泻火_一级片免费看_亚洲综合另类欧在线美_国产外围在线观看_欧美日韩在线精品一区二区三区激情综合_a4yy午夜_伊人婷婷涩六月丁香七月_中文字幕在线一二三区 | 天堂网www天堂在线资源_2020日日夜夜噜噜噜com_18禁成年免费无码国产_好色一区_91freehdxxxx欧美_4p在线观看_可以免费观看的av_国产热A欧美热A在线视频 | 欧美成人伊人久久综合网_看国产到性色_在线免费亚洲_久草ab_18禁真人抽搐一进一出免费_91中文日产幕无线码系列_色视频一区_久久精品一区二区三区视频 | 欧洲国产成人久久精品综合_九九在线国产视频_黄色美女一级片_九九热视频精品在线_蜜臀av性色av_久久亚洲美女精品国产精品_亚洲品质自拍视频_成年人激情视频 | 一级久久精品_eeuss影院一区二区三区_久久精品国产成人_在线播放偷拍一区精品小说_91懂色_女人十八毛片a级毛片_无码人妻一区二区三区免费看成人_欧美2区3区4区 | 色偷偷色噜噜狠狠网站久久_yy6080亚洲精品一区_国产精品186在线观看在线播放_久久精品国产色蜜蜜麻豆_亚洲伊人久久精品酒店_日本欧美日韩_特片网av_在线免费观看视频黄 | 激情在线视频网站_日韩午夜在线观看_97精品伊人久久久大香线蕉_久久夜色精品亚洲噜噜国产mv_蜜桃嫩草_日本黄色天堂_国产69精品久久久久9999APGF_成人黄色视频免费观看 | 欧美又大又粗又硬又色A片_欧美成人家庭影院_在线观看一级黄色片_午夜视频在线观看一区二区_久久久久久久久久久成人_东京热亚洲精品中文一区_成人特级毛片69免费观看_三级在线观看网站 | 好吊妞人成视频在线观看强行_久久国产精品二国产精品_久久不色_A毛片毛片看免费_亚洲综人网_不用播放器看av_奇米影视四色影音先锋_9999视频 | 91九色视频在线_97人人爱_成人久草_色wwww全部免费_一级簧片免费看_91麻豆精品国产91久久久更新资源速度超快_国产98在线_欧美老妇与ZOZOZ0交 | 性色a∨人人爽网站_涩涩av_男女在一起拔萝卜免费视频大全_老司机亚洲精品影院无码_超碰人人香蕉_亚洲国产黄色片_911精品美国片911久久久_热久久久久香蕉无品码 | 91麻豆久久_美女视频黄又黄又免费高清_国产91精品高清一区二区三区_小娇孩性freesexhd_国产一区影院_欧美日在线播放_久久成人免费精品网站_国产自偷亚洲精品页65页 | 成人丝袜激情一区二区_久久久999久久久_性荡视频播放在线视频7777_理论片在线国产精品_欧美香蕉爽爽人人爽_夜色资源www.999_久久国产免费观看精品3_免费欧美在线 | av天天av_欧美精品99_国产黄大片在线观看画质优化_国产资源免费观看_丝袜老师高潮呻吟高潮_日韩在线_亚洲kkk4444在线观看_亚洲大片69999 | 成·人免费午夜视频_久草热这里有精品6_一二三四在线社区观看社区7_人摸人人人澡人人超碰手机版_www..99热_欧美又粗又大BBBBXXXX_日日操夜夜操天天爽_欧美诱惑一区 | 日韩精品在线免费_性一交一乱一伦一色一情孩交_麻豆影视免费_久草五月天_男男被各种姿势C到高潮视频_亚洲欧美日韩在线_开心五月激情中文在线_无码欧精品亜州日韩一区夜夜嗨 | 国产精品白浆在线观看免费_国产真实老熟女无套内射_日韩精品美腿丝袜_密芽av_人体内射精一区二区三区_大学生a级毛片免费视频_日韩大片av_91欧美视频网站 | 亚洲性生活片_国产一二三四区在线_邻居少妇人妻互换_久久99精品国产自在现线小黄鸭_伊人夜色_亚洲日韩日本中文在线_久久精品亚洲热_国内自产拍自拍A免费毛片 | 国产精品久久久久久99999_在线看片免费人成视频影院看_亚洲成人av片_久久久老熟女一区二区三区_AV激情亚洲男人的天堂_午夜小视频网站_免费av看_久久69精品久久久久久国产越南 | 久久天天躁夜夜躁狠狠躁_俄罗斯美女的天堂一级毛片_久久精品久久精品久久精品_免费吃奶摸下激烈视频_中文字幕av在线免费_成人免费毛片立即播放_久久国产精品久久精品_国产午夜伦理 | 国产初高中生视频在线观看_GOGO少妇无码肉肉视频_奇米777四色成人影视_日本黄色五级片_色婷婷成人做爰视频免费_谍战剧惊弦免费观看_在线观看xxxx7777视频_免费a网 | 国产成人影院一区二区三区_日本1区_伊人色播_久久久精品视频免费看_亚洲第一综合_久久久噜噜噜久久熟女_手机看片被窝午夜婷婷国产_超碰在线免费97 |