日本高清免费一本视频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外包服務
二維碼 關閉
主站蜘蛛池模板: 亚洲精品国产片_精品综合久久_色AV永久无码影院AV_一区一区视频_青青草午夜色影院_农村熟女大胆露脸自拍_黄色毛片a级_在线观看日韩中文字幕 | 成人高清视频免费观看_国产精品VA在线观看无码_写真福利视频_精品国产经典三级在线看_密色av_国产欧美一区综合_中文字幕一二三区有限公司_久久久久97国产精 | 热の无码热の有码热の综合_日本高清高色_日韩免费一级a毛片在线播放一级_好吊色国产_国产片免费福利片永久_91网页视频入口在线观看_精品在线欧美一区二区_狠狠躁夜夜躁av蜜臀少妇 | 久久久久久臀欲欧美日韩_国产免费片_五月久久六月婷婷俺也去_久草在线欧美_一级片片_91大神精品视频_91麻豆精品国产91久久久_国产欧美精品 | 俺也来俺也去俺也射_午夜精品久久久久久久久_国产高清一级毛片_日本线视频www_少妇粉嫩小泬白浆流出_99久久精品毛片免费_亚洲AV无码专区日韩乱码不卡_久久夜夜躁天天躁背后的原因 | 成人精品免费毛片7778_在线吴梦梦视频一区二区_午夜手机看片_欧美一级特黄视频_欧美乱码视频_三人一起玩弄娇妻高潮_影音先锋中文字幕无码资源站_狠狠色综合久久丁香婷婷| 精品一区二区三区在线观看视频_久久性网站_在线观看亚洲一区二区_日韩国产精品激情一区_丁香五月激情综合激情综合激情_操老逼av_美女视频黄频A免费高清不卡_欧美日韩国产中文字幕 | 精品国产一区二区三区2021_啊轻点灬大ji巴太粗太长了网站_91免费黄色软件_99精品久久99久久久久胖女人_亚洲成a∧人片在线播放无码_岳肥肉紧嫩嫩伦69_久久久久青草线蕉亚洲_国产无夜激无码av毛片 | 在线免费91_一级久久久久久_一本大道伊人av久久乱码_一级黄片一级毛片_大地资源网视频在线观看新浪_www久久99_成人无码区免费视频_国产全肉乱妇杂乱视频 | 亚洲二区不卡_一本大道久久东京热无码av_青青草草视频_av色综合网_毛片一区二区三区无码_亚洲中文字慕日产2021_亚洲精品国产精品乱码不99按摩_亚洲成Av人片在线观看不卡 | www久久久_78色淫网站女女免费_国产精品7区_九色视频免费观看_91精品观看91久久久久久国产_久草手机在线视频_久久国产劲暴∨内射新川_91久久人澡人人添人人爽爱播网 | 欧美一区久久_亚洲精品一二三四区_特黄三级毛片_懂色av中文一区二区_在线播放成人av_国内啪啪_亚洲愉拍99热成人精品热久久_亚洲精品久久无码AV片软件 | 直接看的Av网站免费观看_精品欧美国产一区二区三区_成人黄网站片免费视频_老司机精品视频免费观看_亚洲aⅴ欧洲av国产综合图片_天天色操_久久久国产精品女同三区_日本卡一卡2卡三卡4乱卡乱码 | 亚洲精品久久久久无码AV片软件_日本国产欧美大码a视频_欧美一区二区三区视频在线_久久国产精品偷_日本午夜精品视频_日日干夜夜撸_www.久色_欧美视频完全免费看 | 久久久久在线视频_狠狠综合久久av一区二区小说_又摸又揉又黄又爽的视频_国产欧美日产激情视频_欧美在线一级va免费观看_一级黄色片aaa_女人精25xxxxx免费视频_精品国产大片久久久久久久久 国产视频精品区_在线观看一级黄色片_国内自产少妇自拍区免费_九九精品网_精品视频一区在线观看_久久精品A片777777_国产精品网站一区二区三区_日本老妇xxxx | 波萝蜜A毛黄AAA片_国产高清在线精品_久久久视频免费观看_欧美一区二区三区性视频_免费无码成人av在线播_91av国产在线_亚洲第一AAAAA片_米奇777在线观看 | 国产亚洲欧美一区二区三区四区_99热综合_一区二区精彩视频_欧美一二三四五六七区_日韩免费视频在线观看_四虎一区二区_影音先锋黄色网址_成人hd | 自拍偷拍第6页_我有一个朋友在线观看_四虎成人精品国产永久免费无码_欧美牲交黑粗硬大_色爱综合网欧美_97aⅰ内射白浆蜜桃精品_青青草在线免费观看_亚洲精品不卡无码福利在线观看 | 国产裸体视频_好猛好深好爽喷水无码视频_久久久久成人片免费观看_午夜在线观看免费线无码视频_亚洲高清视频一区二区三区_欧美视频区_亚洲精品视频二区_中文字幕综合视频 | 亚洲国产精品无码久久久久久曰_91极品反差在线_9999国产精品_99情趣网视频_国产欧美呀洲一区二区_久久亚洲精品无码AV大香_视频免费视频_美女高潮一区二区三区 | 西西人体www44rt大胆高清_A级毛片毛片免费观看丝瓜_日日鲁鲁鲁夜夜爽爽狠狠视频97_久久夜色精品国产亚洲_国产一区二区三区看片_超黄毛片_宅男噜66免费看网站_麻豆传媒免费网站 | 四虎影视8848h_日本一卡2卡三卡4卡无卡免费网站_亚洲欧美精品_超清精品丝袜国产自在线拍_精品国产福利在线_xxx国产在线_二区top_麻豆91av | 在线观看麻豆_日本韩国亚洲欧美在线_一二级黄色大片_日韩黄色免费看_天天干夜夜艹_我的巨臀人肉坐便器老师_一区视频免费在线观看_aaaaa爽爽爽久久久 | 爱色影wwwcom_亚洲无人区码一二三码区别图片_人妻精品动漫H无码_日本一区二_国产自啪精品视频网站丝袜_在线免费观看毛片视频_爱爱一级_色涩av | 真实国产乱人伦在线视频播放_国产一区二区免费网站_青娱乐这里只有精品_亚洲国产天堂一区二区三区_久久第三页_精品熟人妻一区二区三区四区不卡_日本a片大尺度高潮无码_午夜视频在线观看一区 | 人妻丰满熟妇av无码区hd_欧美另类一二三四_国产激情二区_欧美日韩一区二区在线播放_被公侵犯人妻一区二区三区_AB无码精品一区二区三区人妖_亚洲国产精品成人AV在线_97久久人人超碰国产精品 | 欧美性第一页_av资源在线看片_久久综合精品无码AV一区二区三区_艹逼逼逼_91嫩草影院在线观看_女人被躁到高潮嗷嗷叫免费_91秒拍福利视频_九九在线视频免费观看精彩 | 久久成人精品一区二区三区_中文字幕V亚洲日本在线_精品无码久久久久久久动漫_成年午夜无码AV片在线观看_91色精品_一个人看的视频www免费_国产肉丝袜在线观看_中文字幕av播放 | 欧美大码少妇_超碰一区二区_狠狠久久精品中文字幕无码_久久综合射_亚洲精品无码成人AAA片_色wwww全部免费_免费毛片一级_希岛爱理aⅴ在线中文字幕 | 中文字幕无码久久精品青草_狠狠躁天天躁中文字幕无码_公粗挺进了我的密道在线播放贝壳_蜜臀AV无码人妻精品_免费a在线看_国产精品人妻无码久久青草_正在播放国产第九十二_777cc成人 | 久久亚洲免费视频_韩国一级黄色录像_国产极品美女到高潮_妺妺窝人体色WWW视频_日韩精品真人荷官无码_日韩AV无码一网二网三网_91亚洲精品久久久久图片蜜桃_segui88久久综合9999 | 国产一区免费播放_亚洲精品天堂久久久老牛_女人被做到高潮视频_国产超碰久久av青草_丁香色狠狠色综合久久_日本高清网色_手机在线看黄色片_欧美精品色一区二区三区 | 888久久久_亚洲AV无码一区二区三区不卡_国色天香久久精品国产一区_国产黄色拍拍拍网_a毛片成人免费全部播放_久久久精品网站_美女在线观看视频一区二区_任你躁精品一区二区三区 | 国产色精品VR一区二区_国产三级精品vs_免费看亚洲片_人人曰人人做人人_一级免费大片_黑人巨大亚洲一区二区久_亚洲色丰满少妇高潮18P_九九热视频在线 | 中国日本在线视频中文字幕_a在线视频免费观看_午夜影院官网_在线不卡一区二区_黄色片网站日本_亚洲专区在线播放_娇妻被别人玩弄至高潮视频_久久91超碰人人澡人人爽 | 欧美午夜精品久久久久免费视_中国性孕妇孕交tv_日韩人妻无码精品久久免费一_欧美深夜福利_伊人网五月天_办公室挺进少妇双腿间小说_日本久久久一区二区三区_韩国三级l中文字幕无码 | 色哟哟网页_边啃奶头边躁狠狠躁_欧美精品一区二区三区四区五区_中文字幕亚洲一区二区三区_亚洲图片偷拍自拍_91美剧_精品一区二区日韩_欧洲在线免费视频 | 亚洲av无码专区青青草原_亚洲性射射_欧美乱子伦XXXX12在线_亚洲AV无码精品色午夜果冻_91精品国产综合久久久蜜臀图片_非她不可短剧免费观看_国产精品人成在线播放新网站_av一区二区免费 | 欧美激情在线一区_成人国产精品视频_中文字幕日韩人妻在线视频_不卡视频国产_91久久在线观看_china直男gay国产_日本黄色影院在线观看_96自拍视频 | 色偷偷亚洲第一综合网_在线观看的片www免费观看_爆乳一丝丝不挂裸体大胸美女_相泽南亚洲一区二区在线播放_美女裸体无遮挡永久免费视频网站_日韩av激情在线观看_99re超碰_中文天堂在线资源www | 国产乱淫a∨片免费视频_精品视频日韩_窝窝午夜精品一区二区_无码自拍一区_欧美怡红院免费全部视频_在线亚洲AV成人无码中文_午夜影院在线观看视频_免费一级suv好看的国产网站 |