PE文件格式解析學(xué)習(xí)筆記(2)---PE Header(IMAGE_FILE_HEADER部分)

NT Header

NT Header是緊挨DOS MZ Header 與 DOS sub部分 ,主要包含三大部分內(nèi)容PE標(biāo)志,PE文件頭矛纹,PE可選頭

PE文件格式概覽

圖片轉(zhuǎn)自:https://blog.csdn.net/evileagle/article/details/11693499

PE 標(biāo)志

PE標(biāo)志又稱PE簽名话原,即是PE入口標(biāo)志,共占4Byte螃诅。此部分可以通過(guò)該標(biāo)志來(lái)確定PE文件入口,此部分為固定內(nèi)容[50 45 00 00]小端存儲(chǔ)方式,同時(shí)也是NT頭的第一大部分

PE 標(biāo)準(zhǔn)文件頭

typedef struct _IMAGE_FILE_HEADER {
+0x00 WORD Machine;
+0x02 WORD NumberOfSections;
+0x04 DWORD TimeDateStamp;
+0x08 DWORD PointerToSymbolTable;
+0x0c DWORD NumberOfSymbols;
+0x10 WORD SizeOfOptionalHeader;
+0x12 WORD Characteristics;
} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;

代碼部分中+代表相對(duì)偏移量(offset)

PE-Header定義重要關(guān)鍵字段詳解(共計(jì)20Byte)
字段 含義 大小 成員位置
Machine 可以運(yùn)行在什么樣CPU上 2Byte 1
NumberOfSections 表示段的數(shù)量 2Byte 2
TimeDateStamp 編譯器寫入的時(shí)間戳术裸,與文件的創(chuàng)建時(shí)間倘是,修改時(shí)間這些無(wú)關(guān) 4Byte 3
SizeOfOptionalHeader 指定PE擴(kuò)展頭大小 2Byte 6
Characteristics 文件屬性,信息標(biāo)記等 2Byte 7
Machine字段補(bǔ)充說(shuō)明

常見(jiàn)的一些Machine字段取值說(shuō)明,均為小端存儲(chǔ)

  1. [4C 01]<14C:Intel 386以及后續(xù)>
  2. [64 86]<8664 x64框架>
  3. [00 00]<任意>
NumberOfSections字段補(bǔ)充說(shuō)明

指明PE文件包含段的個(gè)數(shù)袭艺,例如 .text(代碼段)搀崭、.rdata(只讀數(shù)據(jù)段)、 .data(全局變量數(shù)據(jù)段)等

TimeDateStamp字段補(bǔ)充說(shuō)明

從1970.1.1 00:00:00以來(lái)的秒數(shù)猾编,他與文件的創(chuàng)建時(shí)間瘤睹,修改時(shí)間這些無(wú)關(guān)

SizeOfOptionalHeader字段補(bǔ)充說(shuō)明

默認(rèn)32位PE文件則是224Byte [E0 00], 64位PE文件位240Byte [F0 00]

Characteristics字段補(bǔ)充說(shuō)明

轉(zhuǎn)為二進(jìn)制,通過(guò)每一位組合后來(lái)查看含義,比如可以區(qū)分文件是exe還是dll等

綜上所述PE標(biāo)準(zhǔn)文件頭大小固定答倡,且為20Byte轰传,共7大成員字段。其中關(guān)鍵字段成員為以上5大字段成員內(nèi)容瘪撇。

繼續(xù)以Kernel32.dll進(jìn)行分析


PE標(biāo)準(zhǔn)頭部

根據(jù)圖中數(shù)據(jù)可以進(jìn)行分析

字段 含義 數(shù)值(小端存儲(chǔ))
Machine Intel 386以及后續(xù)CPU運(yùn)行 4C01
NumberOfSections 表示段的數(shù)量為5 0500
TimeDateStamp 編譯器寫入的時(shí)間戳 871FB759
SizeOfOptionalHeader 指定PE擴(kuò)展頭大小為224Byte E000
Characteristics 文件屬性信息標(biāo)記二進(jìn)制位為 0221

從分析中可以得出關(guān)鍵信息:此Kernel32.dll運(yùn)行在的CPU環(huán)境以及使用是屬于的32位PE文件
關(guān)于Characteristics的分析 由于小端存儲(chǔ)位0221實(shí)際存儲(chǔ)位2102即二進(jìn)制位0010 0001 0000 0010 拼接的數(shù)據(jù)获茬,可根據(jù)查詢各個(gè)位代表含義為:
第1位:文件是可執(zhí)行的
第8位:只在32位平臺(tái)上運(yùn)行
第13位:這是一個(gè)DLL文件
通過(guò)分析3個(gè)1的位置得出文件屬性結(jié)論:分析的kernel32.dll是一個(gè)可以在32位平臺(tái)執(zhí)行的dll文件

補(bǔ)充 關(guān)于Characteristics字段詳解

位置 符號(hào) 含義
0 IMAGE_ FILE_ RELOCS STRIPPED 文件中不存在重定位信息
1 IMAGE_ FILE_ EXECUTABLE_ IMAGE 文件是可執(zhí)行的
2 IMAGE_ FILE_ LINE NUMS_STRIPPED 不存在行信息
3 IMAGE_ FILE_ LOCAL. SYMS_ STRIPPED 不存在符號(hào)信息
4 IMAGE_ FILE_ AGGRESSIVE_ Ws_ TRIM 調(diào)整工作集
5 IMAGE_ FILE_ LARGE_ ADDRESS _AWARE 應(yīng)用程序可處理大于2GB的地址
6 此標(biāo)志保留
7 IMAGE_ FILE_ BYTES_REVERSED_LO 小尾方式
8 IMAGE_ FILE_ 32BIT _MACHINE 只在32位平臺(tái)上運(yùn)行
9 IMAGE_ FILE_ DEBUG STRIPPED 不包含調(diào)試信息
10 IMAGE_ FILE_ REMOVABLE RUN_ FROM_ SWAP 不能從可移動(dòng)盤運(yùn)行
11 IMAGE_ FILE NET_ RUN_ FROM_SWAP 不能從網(wǎng)絡(luò)運(yùn)行
12 IMAGE_ FILE_ SYSTEM 系統(tǒng)文件(如驅(qū)動(dòng)程序),不能直接運(yùn)行
13 IMAGE_ FILE_ DLL 這是一個(gè)DLL文件
14 IMAGE_ FILE_ UP_ SYSTEM_ONLY 文件不能在多處理器計(jì)算機(jī)上運(yùn)行
15 IMAGE_ FILE_BYTES_ REVERSED_ HI 大尾方式
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末倔既,一起剝皮案震驚了整個(gè)濱河市恕曲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌渤涌,老刑警劉巖佩谣,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異实蓬,居然都是意外死亡稿存,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門瞳秽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)瓣履,“玉大人,你說(shuō)我怎么就攤上這事练俐⌒溆” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵腺晾,是天一觀的道長(zhǎng)燕锥。 經(jīng)常有香客問(wèn)我,道長(zhǎng)悯蝉,這世上最難降的妖魔是什么归形? 我笑而不...
    開(kāi)封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮鼻由,結(jié)果婚禮上暇榴,老公的妹妹穿的比我還像新娘厚棵。我一直安慰自己,他們只是感情好蔼紧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布婆硬。 她就那樣靜靜地躺著,像睡著了一般奸例。 火紅的嫁衣襯著肌膚如雪彬犯。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天查吊,我揣著相機(jī)與錄音谐区,去河邊找鬼。 笑死逻卖,一個(gè)胖子當(dāng)著我的面吹牛卢佣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播箭阶,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼虚茶,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了仇参?” 一聲冷哼從身側(cè)響起嘹叫,我...
    開(kāi)封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎诈乒,沒(méi)想到半個(gè)月后罩扇,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡怕磨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年喂饥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肠鲫。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡员帮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出导饲,到底是詐尸還是另有隱情捞高,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布渣锦,位于F島的核電站硝岗,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏袋毙。R本人自食惡果不足惜型檀,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望听盖。 院中可真熱鬧胀溺,春花似錦裂七、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)悬蔽。三九已至扯躺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蝎困,已是汗流浹背录语。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留禾乘,地道東北人澎埠。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像始藕,于是被迫代替她去往敵國(guó)和親蒲稳。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容