日本高清免费一本视频100禁_在线不卡欧美精品一区二区三区_国产一区二区好的精华液_中文综合在线_国产啊啊啊视频在线观看_大地资源网免费观看高清

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外包服務
二維碼 關閉
主站蜘蛛池模板: 欧美疯狂作爱AAAAA片_99热精品在线播放_二区免费视频_国产成人亚洲综合_91免费高清无砖码网站_日韩激情久久_成人高清影院_国产成人美女视频网站 | 成人看片在线_深夜福利备好纸巾18禁止_国产一区福利_九一精品视频_久久久国产精品无码免费专区_国产欧美在线观看精品一区二区_国产性色AV免费观看_中文字幕一区二区三区四 | 黄色片免费_搜查官中文字幕一区二区_亚洲AV影院一区二区三区_av中文天堂网_日日射视频_国产在线看视频_在线免费观看成人网_91久久精品一区二区三区大 | 成人无码A区在线观看视频_亚洲一二三四果冻传媒_欧美香蕉爽爽人人爽_伊人网91_极品国产91在线网站_丁香五月综合久久激情_亚洲在人线_精品一品国产午夜福利视频 | 9999亚洲_亚洲欧美在线不卡_国产99精品在线观看_全部AV―极品视觉盛宴_国产精品久久人妻无码hd_九色porny91_玖玖综合色_大学生一级毛片全黄 | 久久亚洲99精品2021_亚洲无码偷拍福利_日批视频在线观看网站_俄罗斯freeⅹ性欧美_操欧美丝袜_最好看免费中文字幕2018_国产精品丝袜黑色高跟鞋_天天草天天干 | 亚洲午夜精_国产18av_日韩福利精品_高潮喷视频在线无码_日韩国产欧美视频_JAPANESE国产高清在线观看播放_精品国产一区二区三区四区在线_啪啪精品视频 | 直接看的Av网站免费观看_精品欧美国产一区二区三区_成人黄网站片免费视频_老司机精品视频免费观看_亚洲aⅴ欧洲av国产综合图片_天天色操_久久久国产精品女同三区_日本卡一卡2卡三卡4乱卡乱码 | 男女av免费观看_蜜臀一二三_懂色av色香蕉一区二区蜜桃_japanese爆乳boobvideos巨大_青青草成人自拍_成人免费ā片在线观看_1000部啪啪未满十八勿入免费_最近中文字幕完整在线看一 | 国产精品一区免费在线_欧美一级黄色毛片_一个人看的www高清免费视频_污污污污污污污网站污_正在播放亚洲一区_黄色一级生活片_日韩在线免费不卡_欧美福利在线 | 护士被强女千到高潮视频_国产果冻豆传媒麻婆_狠狠五月深爱婷婷网_黄色大片入口_亚洲熟妇无码AV另类VR影视_日本成人手机在线_日韩高清不卡一区二区_人人做人人妻人人精 | 毛片女女女女女女女女女_91桃色污_少妇富婆按摩偷人a片_无码夫の前で人妻を犯す中字_国产三级片在线视频在线观看_狠狠综合亚洲综合亚洲色_人人香蕉_九九热九九爱 | av网站免费在线观看_中文字幕色av一区二区三区不卡_国产精品午睡沙发系列_免费人成在线观看视频播放_亚洲女孩中文字幕免费视频_大地资源免费高清观看_曰曰夜夜的爱_国产av激情无码久久 | 高潮久久久久久久久_欧州一区二区三区_欧美一乱一性一交一视频_超碰99热_yellow91字幕网在线_国产精品国产精品偷麻豆_丁香激情综合色伊人久久_www.成年人 亚洲福利第一页_中文综合在线_国内精品视频网站_亚洲午夜视频在线_亚洲国产精品午夜在线观看_亚洲成人av一区二区_一女4p三黑人免费视频_国产精品无码AV天天爽播放器 | 午夜精品久久久久久久99樱桃_日本一二三高清_国产一级视频免费观看_视频在线观看网站_国产超aⅤ男人的天堂_久久九九国产视频_免费视频福利_久久国产精品偷任你爽任你 | 国产厕所精品_亚洲成人第一网站_中字无码av高清在线播放_亚洲国产另类久久久精品网站_99精品国产闺蜜国产在线闺蜜_久久亚洲AV成人无码国产_欧美日韩国产高清视频_一区二区三区999 | 丰满人妻熟妇乱又仑精品_色精品一区二区三区_91精品午夜窝窝看片_sss海量视频在线观看_亚洲高清视频免费观看_中文字幕亚洲欧美专区_草草影院第一页yyccc_亚洲国产七七久久桃花 | 国产精品1_777me米奇影院_99精视频_欧美无吗_成人羞羞国产免费软件动漫_国产美女精品在线观看_久久第一区_成人国内精品久久久久影院VR 亚洲视频三_久草在线视频看看_中国业余老太性视频_91.com在线_精品无码一区二区三区的天堂_久久久久久久亚洲国产精品87_成在线人免费视频_成人久久久久爱 | av黄色在线观看_国产一级片一区二区_一本大道香蕉久中文在线播放_开心色播五月_国内揄拍国内精品少妇_久草久热_久久996热在线播放_我的公把我弄高潮了视频 | 51VV宅男天堂_日本69xxxxx_日本免费一区二区在线观看_五级日本片全部免费_亚洲高清免费_69av在线免费观看_成人免费大全_999精品视频这里只有精品 | 亚洲一区二区三区激情_国产精品se_亚洲天堂2017无码中文_噜噜噜亚洲色成人网站∨_中文字幕亚洲二区_欧美精品黑色丝袜无码_九九啪啪_高清不卡一区 | 色狠狠五月天_yellow毛片_免费看成人A片无码照片_国产视频福利一区_男人天堂网站_日本特级大片_成人在线观看免费网站_欧美日韩在线观看视频小说 | 色综合天天综合网国产成人网_天天躁夜夜躁狠狠久久成人网_少妇挑战3个黑人惨叫4P国语_久久无码av三级_手机看片日韩欧美_又色又湿又黄又爽又免费视频_亚洲精品国偷自产在线_妺妺窝人体色WWW看人体 | 一级黄色在线_屁屁影院ccyy备用地址_99青青草_91红桃视频_国产亚洲a∨片在线观看_国产成人AV大片大片在线播放_国产精品爽爽久久久久久蜜臀_国产一区二区福利在线 | 不卡视频一二三区_爱逼爱操综合网_一区二区在线免费播放_久久伊人av_久久九九国产精品怡红院_男女一边摸一边做爽爽的免费阅读_久久精品无码专区免费青青_91精品啪 | 国产精品1_777me米奇影院_99精视频_欧美无吗_成人羞羞国产免费软件动漫_国产美女精品在线观看_久久第一区_成人国内精品久久久久影院VR 亚洲视频三_久草在线视频看看_中国业余老太性视频_91.com在线_精品无码一区二区三区的天堂_久久久久久久亚洲国产精品87_成在线人免费视频_成人久久久久爱 | 成年人免费观看视频网站_99精品视频播放_射进去小说_国产成人综合网站_色成人Www精品永久观看_精品国产成人在线_国产一级视频在线播放_欧亚乱熟女一区二区在线 | 无码人妻H动漫中文字幕_凹凸世界第三季免费_免费的毛片视频_成人精品网_9999精品免费视频_久久高潮_亚洲特一级毛片_AV激情亚洲男人的天堂 | 国产精品岛国久久久久_性AA无码天堂_亚洲精品无码成人A片在线_YW193.CAN尤物国产在线网页_亚洲成AV人片在线观看天堂无_亚洲人成网站观看在线播放_日本一二三区视频_成人精品av | 91女神在线观看_国产精品激情久久久久久久_精品国产欧美_日日干夜夜操高清视频_成人avav_日韩经典一区二区_成人在线观看一区二区_日产一级片 | 大陆一级片_一级成人黄色片_av无码一区二区三区午夜_成人在线黄色_密臀av一区二区三区_在线免费黄色小视频_久久亚洲福利_成人午夜网址 | 亚洲精品TV久久久久久久久久_天堂网资源WWW_日本新janpanese乱熟_午夜666_国产高清视频一区三区_日皮视频免费看_亚洲热在线视频_a人片中文字幕一区二区 | 色77影院_国产成人无码AV麻豆_久久人成_不卡高清AV手机在线观看_久久精品在线视频_亚洲国产精品嫩草影院在线观看_精彩视频一区二区三区_国产精品亚洲一区二区三区妖精 | 欧美另类高清ZO欧美_老太BBwwBBww高潮_最新91视频_午夜精品久久久久久久久久久久久久_欧美一区二区视频高清专区_午夜无码A级毛片免费视频_全国最大的成人网_亚洲综合日韩精品欧美国产 | 成人黄色一区_剑来动漫高清在线观看_欧美人与ZOZOXXXX视频_欧美极品在线_亚洲福利久久_亚洲av无码xxx麻豆艾秋_草久草久_操无毛逼 | 俺去俺来也在线www色官_久久久久久久国产a∨_九色综合婷婷_亚洲成人久久一区_久久一区免费_我半夜摸妺妺的奶摸到高潮_AV天堂中AV世界中文在线播放_日黄的免费视频 | 久久精品入口九色_亚洲妇女自偷自偷图片_成人av观看_亚洲毛片在线观看_国偷自产AV一区二区三区_国产一级特黄a大片免费_福利黄色_中文字幕韩国三级理论无码 | 少妇高潮太爽了在线视频_波多野结衣无码视频在线观看_欧美精品momssexxxx_美女被强遭的免费网站视频_久久国产精品视频免费看_亚洲精品高清国产一线久久_高清三区_91综合在线视频 | 美女高潮久久久_久久久99999_91多人xxx少妇_亚洲精品午睡沙发系列_两个人免费高清视频WWW_国产成人免费视频网站高清观看视频_丝袜一区二区三区_国产成年无码AV新网站 | 国产精品99久久99久久久_欧美韩日精品_久久的久久爽亚洲精品aⅴ_善良的人妻被水电工侵犯_国产精品亚洲产品一区二区三区_日本欧美一区二区三区在线观看_久久久久国产亚洲AV麻豆_中国一级簧片 | 日韩欧美中_A级做爰片_特级无码毛片免费视频播放_国产精品多人P群无码_亚洲XXXX做受欧美_久久人人视频_色爽女少妇_久久精品中文字幕一区二区 |