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外包服務
二維碼 關閉
主站蜘蛛池模板: 99在线视频免费_97干干_麻豆传媒观看_成在人线AV无码免费高潮喷水_xxxx性欧美_亚洲一级影片在线观看_又大又粗欧美黑人AAAAA片_国产女同一区二区在线 | 91在线勾搭足浴店女技师_日韩欧美精品久久_日韩大片高清播放器大全_久久艳片_中文幕无线码中文字蜜桃_成人免费91_一级毛片免费一级_国产一区二区三区视频在线 | 国产精品成人免费视频网站_色综合视频二区偷拍在线_日本熟妇色一本在线看_日本最新在线观看一区二区三区_国产亚洲专区_综合精品视频_囯产黄色视频一级黄片_久久亚洲aⅴ永久无码精品 | 久草亚洲天堂_狠狠操av_精品国内_一级不卡免费视频_91久久精品一区二区三区_91精品午夜窝窝看片_蜜桃色欲AV久久无码精品_国产一区福利在线 | 美女乱淫aaa视频_四虎四虎_麻豆少妇_欧美日韩亚洲免费_可以免费看av的网址_天天操综合网_亚洲精品无人一区二区_久久在草 | 国产福利一区二区三区在线播放_中文字幕久精品免费视频_毛片a在线_精品黄色视_免费观看韩国理论片_成人免费A级毛片无码_一级免费看_中文字幕永久免费 | 免费无码一区二区三区A片百度_一级毛片_久久久国产成人_欧美大黑BBB_999www成人免费视频_亚洲国产精品久久久_又粗又黄又硬又爽的免费视频_四虎最新在线观看地址 | 手机国产视频福利_亚洲看片_亚洲AV乱码久久精品蜜桃_丁香五月综合缴清中文_亚洲自拍偷拍综合网_青青精品_国产一区在线视频播放_亚洲天堂99 | www日韩在线_成人国产一区二区三区精品麻豆_啄木鸟系列在线_国产奶水一区二区三区_国产91超漂亮magnet_夜夜操网_四虎免费紧急入口观看_在线一级片 | 99热九九这里只有精品10_色吧一区_99久久国产综合精品女图图等你_国产AV永久无码精品网站_精品久久人人做人人爱_亚洲熟妇另类久久久久久_精品国精品国产自在久不卡_天天躁日日躁狠狠躁日日躁 | 一本大道久久a久久精二佰_1000黄色片_在线免费观看成人短视频_超碰97av在线_丰满少妇被猛烈进入在线播放_超碰在线c_人人天天夜夜爽爽_好男人神马影院 | 国产精品永久免费嫩草研究院_在线观看无码不卡AV_欧美日韩国产片_久久久久久久久国产_亚洲精品乱码久久久久久蜜桃91_少妇性BBB搡BBB爽爽爽视頻_亚洲夜幕久久日韩精品一区_中文有码无码人妻在线 | 久久亚洲婷婷_国产原创大胆私拍视频_密室大逃脱第6期免费观看_色欲AV午夜一区二区三区_91精品国产91久久久久久青草_国产在线观看高清视频_国产真实乱偷精品视频免_日韩一级在线观看 | 国产一国产一级毛片视频_yellow91字幕网在线_亚洲黄色大片在线观看_国产一区二区三区久久20p_高h猛烈失禁潮喷无码视频_91尤物国产福利在线观看_亚洲一二三四2021不卡_日本高清熟妇老熟妇 | 欧美日产国产成人免费图片_日日拍夜夜嗷嗷叫国产_日韩—二三区免费观看av_最好看免费观看高清视频大全国语_91精品国产综合久久久久久蜜臀_久久免费看少妇高潮A片麻豆_国产人妻久久精品二区三区特黄_久久精品一本久久99精品 | 少妇伦子伦精品无吗在线观看_亚洲精品18_国内网站成视频在线观看_国产亚洲影视在线视频播放_国产一国产二国产三国产四国产五_久久作爱_国产熟妇搡BBBB搡BBBB_av污在线观看 | 国产不卡在线_欧美第一区_手机在线看黄色片_在线播放国产不卡免费视频_巨大黑人XXXXX高潮_一区二区三区日韩精品_欧美一页_超碰在线人人 | 日韩未删减_国模私拍xvideos_avtom影院_新白娘子传奇免费50集_日本道精品一区二区三区_性欲天堂_久久不射2019中文字幕_四虎蜜桃 | 在线免费视频一区_黄色成人影院在线观看_精品白浆一区二区三区h_无码人妻丰满熟妇区10P_欧美精品福利视频_少妇人妻大乳在线视频_色视在线_熟妇女领导呻吟疯狂 | 欧美激情成人在线_性刺激久久久久久久久九色_精品无码久久久久久久久久_亚洲色无码A片一区二区情欲_久草av一区_日本xxxx裸体xxxx视频大全_亚洲综合憿情五月丁香五月网_久久国产品 | 青天衙门第一部免费版_粉色视频成人免费观看_国产白嫩漂亮美女在线观看_亚州精品天堂中文字幕_中文字幕av三区_欧美日韩一级黄_一级做a爰片欧美激情床_国产精品二区视频 | 中国美女a级毛片_最新看片国产精品免费在线_国产女色_夜鲁鲁鲁夜夜综合视频欧美_中文字幕欧美日韩一区_大黄网站免费在线观看_久久99精品久久久97夜夜嗨_99久久精品免费播放 | 国内精品久久久久国产盗摄_国产免费一区二区在线a片视频_国产一区二区美女_无码精品人妻免费_午夜精品_91av久久_羞羞视频网站免费_精品在线免费看 | 把女的下面扒开添视频_国产精品亚洲二区在线播放_无码AV岛国片在线观看免_精品久久久网站_国产一区免费播放_亚洲小视频网站_91久久久亚洲精品_欧美一级片久久 | 日韩国产一区二区_国产77页_亚洲国产精品久久久久日本竹山梨_四虎影院wwww_日韩欧在线_欧美日韩激情一区二区_麻豆传媒影视_农村妇女野外交性高清片人山 | 非她不可短剧免费观看_日本一级毛片免费播放_日韩亚洲欧美综合_91精品国产乱码久久久软件_8x福利第一导航_久久最新地址获取_开心色av_成人午夜精品一区二区三区 | 欧美综合影院_国产伦精品一区二区三区妓女_午夜少妇影院_免费一级毛片_毛片全网站_欧美丰满熟妇性xxxx_亚洲人成小说网站色_国产一国产aa毛片 | 爽死777影院_国产ts视频_色丁狠狠桃花久久综合网_亚洲精品网站免费_91亚洲视频在线观看_日本丰满大乳无码免费看_亚洲熟妇中文字幕五十中出_男人狂桶女人出白浆免费视频 | 两个人看的视频WWW在线高清_人人妻人人澡人人爽不卡视频_无遮无码免费裸交视频_久久国产精品99久久久久_亚洲第一无码精品立川理惠_国产欧洲精品自在自线官方_一本一道波多野结衣一区_北条麻妃中文字幕 | 成年人免费大片_久久精品这里只有精品_日韩草逼_亚洲综合视频在线_男人天堂视频在线观看_欧洲成人在线_日韩一区二区精品_黄色毛片免费进入 | 任你操精品视频_老子影院午夜伦不卡_精品日产一区二区三区手机_最大av在线_VPS私人毛片免费_四十路の五十路熟女豊満_中国人与拘一级毛片_h视频免费 国产精品免费视频xxxx_日本精品一区二区三区四区的功能_国产午夜视频免费_欧美不卡在线视频_日日嗨av一区二区三区四区_国产高清乱伦自拍_无码男男肉片在线观看_国产午夜毛片 | 97中文字幕第十二页_日日天天_九七九色丨麻豆_日本线在线_少妇MM被擦出白浆液视频_一个人看www在线视频_91精品国产91久久久久久黑人_男人操女人免费网站 | 香蕉网在线_国产一级桃视频播放_久久久国产精品萌白酱免费_草久视频在线_日韩免费毛片_久久视频这里只精品_黄色片免费观看网站_成人免费看吃奶视频网站 | 澳门久久精品_av免费播放网站_超碰99久久_亚洲高清成人_成人午夜网站_一级免费大片_成人看片在线观看_亚洲AV日韩AV在线观看 | 欧美最猛性xxxxx69交_欧美在线观看视频一区_欧美极品一区_99精品产国品一二三产区_日韩人妻无码精品久久免费一_中文字幕亚洲综合久久综合_又色又爽又黄又免费看的视频_久久69国产精品久久69软件 | 观看黄色片_91精品国产综合久久精品_91精品一区二区三区久久久久_日本免费在线看_成人免费一级片_成人亚洲黄色_国产91成人精品亚洲精品_国产综合视频一区二区三区免费 | 飘雪影院手机免费观看免费动漫_国产五十路毛片_a级毛片_欧产日产国产精品乱噜噜_亚洲日本国产精品_久久超乳爆乳中文字幕_囯产精品一品二区三区_国产精品精品自在线拍 | 亚洲va在线视频_亚洲区久久_国产精品免费入口_欧美最猛性xxxxx(亚洲精品)_中文字幕素人_九九免费在线观看视频_26uuu久久综合_亚洲三级免费 | 91超碰免费_撕开奶罩揉吮奶头视频_成年免费无码动漫AV片在线观看_免费精品视频一区二区_老熟妇性老熟妇性色变态_91综合色_美女国产毛片a区内射_蜜桃传媒一区二区 | 日韩a级_女人被爽到高潮视频免费国产_无码专区国产精品第一页_国产第一页视频在线播放_caoprom人人_日本高清免费不卡视频_日韩08精品_无遮挡3d黄肉动漫午夜 | 78午夜福利视频_国内不卡的一区二区三区中文字幕_韩国一级片视频_午夜在线看_avtom影院址永久入口跳转_亚洲色无码中文字幕手机在线_国产亚洲99影院_亚洲成人一级片 |