日本高清免费一本视频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外包服務
二維碼 關閉
主站蜘蛛池模板: 呦性xxxxfreexxxxx_蜜桃av麻豆av天美av免费_456影院在线播放精品_丝袜灬啊灬快灬高潮了AV_亚洲激情视频一区_日本无码蜜桃波多野结衣_亚洲第一页色_欧洲一级 | 91视频国产免费_国产成人亚洲精品无码车A_日本久久久久久科技有限公司_91精品国产91久久久_精品无人区卡卡卡卡卡二卡三乱码_亚洲国产精品人人爽夜夜爽_精品国产精品亚洲一本大道_99精品久久毛片a片 | 欧美人与性动交G欧美精器_日本高清久久_国产精品片www48888_欧美精品色婷婷五月综合_亚洲国产精品久久久久爰色欲_手机黄色在线观看_欧美自拍网站_国产乱码精品一区二三 | 九色porny丨首页入口网页_国产在线观看高清视频黄网_影音先锋中文字幕一区二区_99人人看_日韩成人一区_91高清观看_中文字幕亚洲综合久久_婷婷夜色潮精品综合在线 | 看国产一级片_亚洲中文无码av永久_污污小说h_国产成人影院_日韩一区二区三区四区五区_99国产麻豆精品_久久这里只有精品免费_亚洲日本天堂在线 | 亚洲AV成人精品日韩在线播放_97夜夜澡人人爽人人模人人喊_国产成人精品免费视频大全五级_日韩区欧美久久久无人区_中文天堂网www新版资源在线_欧美饥渴熟妇高潮喷水_www.青青草原.com_日韩专区一区二区 | 国产免费视频在线_亚洲视频2区_欧美黄色三级大片_久久国产偷任你爽任你_复仇者联盟4免费观看整片高清_欧美另类视频在线观看_国产热の有码热の无码视频_国产午夜无码视频在线观看 | 成年美女黄网站色大免费视频_久草资源在线_2015成人永久免费视频_色偷偷AV男人的天堂京东热_免费播放一级毛片_青青草原亚洲_一区二区三区的视频_国产在沙发上午睡被强 | 国产亚洲精品AA片在线观看网站_黄色免费在线观看网址_九一亚色_91蝌蚪九色_末发育娇小性色xxxxx视频_国产精品久久久免费看_九九精视频_免费很黄无遮挡的视频 | 国内一区二区三区在线观看_亚洲中文字幕av无码专区_久久中文字幕无码A片不卡男同_18成禁人视频免费网站_亚洲欧洲精品专线_精品亚洲国产专区在线观看_欧美疯狂xxxxbbbb牲交_伊人色综合一区二区三区 | 西西人体www44rt大胆高清_A级毛片毛片免费观看丝瓜_日日鲁鲁鲁夜夜爽爽狠狠视频97_久久夜色精品国产亚洲_国产一区二区三区看片_超黄毛片_宅男噜66免费看网站_麻豆传媒免费网站 | 91香蕉麻豆_亚洲精品午夜久久久_黄上黄在线观看_亚洲视频网站在线观看_亚洲成人av中文字幕_7788色淫免费视频_亚洲一区久久久_99热国产在线 | 少妇高潮太爽了在线视频_波多野结衣无码视频在线观看_欧美精品momssexxxx_美女被强遭的免费网站视频_久久国产精品视频免费看_亚洲精品高清国产一线久久_高清三区_91综合在线视频 | 久久久97一区蜜臀国产日产精品_亚洲视频免费在线观看_精品国产毛片_亚洲人成人网站18禁_国产精品国语对白露脸在线播放_三级理论_久久夜色撩人精品国产_国模沟沟一区二区三区 | www国产精品内射_欧美日韩国产精品激情在线播放_FREE性少妇饥渴XXⅩXXHD_手机福利在线_亚洲另类伦春色综合妖色成人网_久久密臀_欧美又粗又硬又大免费视频Q_亚洲无在线观看 | 女女同性一区二区三区免费观看_国产一级久久_日韩欧美成人精品_無码一区中文字幕少妇熟女_91porny国产_激情久久久久久_色综久久综合桃花网国产精品_18禁强伦姧人妻又大又 | 自拍理论片_2019中文字幕在线视频_91精品国产麻豆国产在线观看_精品无人区一区二区三区_欧洲妓女在线视频免费看_精品久久久久久无码人妻_四级毛片_国产精品高清网站 | 日韩精品视频在线一区二区三区_欧美丰满老妇熟乱xxxxyyy_四虎影视国产精品永久在线_精品自拍av_久久99国产亚洲高清观看首页_五月色夜婷婷丁香琪琪_无码少妇一区二区三区浪潮AV_全黄特一级 | 亚洲欧美18岁网站_欧美xxxx色视频在线观看免费_18禁黄网站禁片免费观看女女_收集最新中文国产中文字幕_免费日本在线观看_26uuu婷婷_亚洲一级大黄大色毛片_成人久久久精品国产乱码一区二区 | 日本理论在线播放_国产女主播一区二区_av在线1_成网站在线观看_国产精品免费在线播放_大二情侣宾馆啪实拍_91桃色免费观看_国产欧洲精品视频 | 狠狠操综合_99热这里只有精品5_国产aⅴ精品_日本在线视频www色_97夜夜澡人人波多野结衣_欧美一级一区二区三区_国产精品自拍系列_日韩精品免费综合视频在线播放 | 色综合天天综合网国产成人网_天天躁夜夜躁狠狠久久成人网_少妇挑战3个黑人惨叫4P国语_久久无码av三级_手机看片日韩欧美_又色又湿又黄又爽又免费视频_亚洲精品国偷自产在线_妺妺窝人体色WWW看人体 | 九九久久综合网站_视频一区二区综合_www.19樱桃视频_91看片在线_日韩一区二区三区在线观看_色综合天天综合网国产成人综合天_国产精品久久久久久久娇妻_91操碰 | 欧美一区久久_亚洲精品一二三四区_特黄三级毛片_懂色av中文一区二区_在线播放成人av_国内啪啪_亚洲愉拍99热成人精品热久久_亚洲精品久久无码AV片软件 | 美女一级特黄大片_亚洲中文字幕无码AV正片_亚洲性区_国产黄色大片在线免费观看_日本国产欧美_草草影院国产_香港三级韩国三级日本三级国产_亚洲AV成人无码人在线观看堂 | 国产亚韩_亚洲一区二区视频网站_国产三级黄色片_国产成AV人片在线观看天堂无码_狠狠干综合网_午夜精品在线视频_美妙人妻瑶瑶1一7_人人玩人人添人人澡欧美 亚洲国产精_97伦理影院_国产放荡AV剧情演绎麻豆_国产不卡一区在线_亚洲天堂地址_又大又黄又粗又爽的免费视频_亚洲一及片_日产福利视频在线观看 | 91视频国产免费_国产成人亚洲精品无码车A_日本久久久久久科技有限公司_91精品国产91久久久_精品无人区卡卡卡卡卡二卡三乱码_亚洲国产精品人人爽夜夜爽_精品国产精品亚洲一本大道_99精品久久毛片a片 | 人人人妻人人澡人人爽欧美一区_91亚洲精品久久久中文字幕_亚洲第一网址_国产粗语刺激对白性视频_国产成人99_国产精品久久久一区二区三区网站_国产日韩在线视看第一页_欧美25p | 99久久自偷自偷国产精品不卡_性做久久久久免费观看_综合久久2o19_黄色动漫视频在线观看_欧美一级黄色片免费观看_手机看片久久国产免费_综合久久久久久久青青_欧美久久国产 | 黄色小说视频网_91桃色黄色_99久久精品无码一区二区三区_少妇人妻大乳在线视频_91精品专区_免费在线观看成人网_久久精品成人影院_精品亚洲一区二区三区四区五区高 | 91二区_第九色婷婷_澳门精品久久国产_一级特黄欧美_欧美日韩在线看片_亚洲欧美另类专区_国产情侣无套精品视频_中文字幕成人av | 中日韩精品无码一区二区三区_国产精品福利视频一区_国产成人一区二区视频免费_国产精品麻豆视频国产馆_日本国产一区二区三区在线观看_free国产粉嫩熟妇xxxhd_国产精品无码久久综合_激情影院内射美女 | 99久久精品免费精品国产_亚洲国产精品无码一区二区_精品人妻少妇一区二区三区不卡_亚洲欧美天堂网_99久久九九社区精品_久久久久久久亚洲视频_午夜DV内射一区区_国产婷婷一区二区三区久久 | 国产午夜精品一区理论片_av在线免费播放_久久亚洲日韩看片无码_婷婷九月激情_成年人在线视频观看_精品亚洲精品_中国黄色a级_太九tai9免费网站 | 久久免费资源_gratisvideos另类灌满_97偷自拍亚洲综合二区_国产女人啪啪_在线免费看a_日本公妇被公侵犯中文字幕2_精品自拍农村熟女少妇图片_中文字幕乱偷无码动漫av | 99ri精品国产亚洲_精品国产乱码久久久久久蜜臀_制服在线无码专区_中文字幕无线乱码人妻_国产精品毛片一区二区在线_丁香婷婷六月综合网_亚洲永久av_久久久亚洲欧美 | AV片亚洲国产男人的天堂_天天综合网7799精品视频_av护士_国产欧美va天堂在线观看视频_久久免费毛片视频_久久99国产精一区二区三区_一边吃奶一边扎下边爽了_午夜一级黄色片 | 亚洲av制服丝袜日韩高清_亚洲国产综合专区在线播放_一二三四在线观看视频韩国_最近免费观看在线中文2019_亚洲综合色久_日韩网站在线播放_亚洲成av人片在线观看高清_大地资源网高清视频免费观看 | 美女一级特黄大片_亚洲中文字幕无码AV正片_亚洲性区_国产黄色大片在线免费观看_日本国产欧美_草草影院国产_香港三级韩国三级日本三级国产_亚洲AV成人无码人在线观看堂 | 小娇孩性freesexhd_91精品夜夜_日韩AV高潮喷水在线观看_亚洲精品欧洲_男人猛躁进女人免费视频夜月_一区二区三_欧美日本性视频_亚洲av日韩av无码尤物 | 国产高清在线视频_精品视频导航_色版视频_天堂va欧美va亚洲va好看va_片多多免费观看高清影视_天天操夜夜骑_成人在线观看欧美_久久这里只有精品6 |