2021 01 13 擴充套件PE頭屬性說明

2021-10-14 16:21:28 字數 2890 閱讀 7630

32位和64位pe頭結構體有點差異,但是差異不是很大。

typedef struct _image_nt_headers  image_nt_headers32, *pimage_nt_headers32;

typedef struct _image_nt_headers64 image_nt_headers64, *pimage_nt_headers64;

typedef struct _image_optional_header  image_optional_header32, *pimage_optional_header32;
成員

大小(十進位制)

說明magic

2位元組pe32:10b、pe32+(64):20b,可以用來確認是32位還是64位程式

majorlinkerversion

1位元組鏈結器版本號

minorlinkerversion

1位元組鏈結器版本號

sizeofcode

4位元組所有**節的總和,檔案對齊後的大小,由編譯器填寫

sizeofinitializeddata

4位元組包含所有已經初始化資料的節的總大小,檔案對齊後的大小,由編譯器填寫

sizeofuninitializeddata

4位元組包含未初始化資料的節的總大小,檔案對齊後的大小,由編譯器填寫

addressofentrypoint

4位元組程式入口,當前pe檔案從哪個位置開始執行,配合imagebase(記憶體映象基址)來看

baseofcode

4位元組**開始的基址,由編譯器填寫

baseofdata

4位元組資料開始的基址,由編譯器填寫

imagebase

4位元組記憶體映象基址,當前pe檔案執行時從哪個記憶體位置展開

sectionalignment

4位元組記憶體對齊

filealignment

4位元組檔案對齊

majoroperatingsystemversion

2位元組標識作業系統版本號,主版本號

minoroperatingsystemversion

2位元組標識作業系統版本號,次版本號

majorimageversion

2位元組pe檔案自身的版本號

minorimageversion

2位元組pe檔案自身的版本號

majorsubsystemversion

2位元組執行所需子系統版本號

minorsubsystemversion

2位元組執行所需子系統版本號

win32versionvalue

4位元組子系統版本的值,必須為0

sizeofimage

4位元組記憶體中整個pe檔案的對映尺寸,可以比實際的值大,必須是sectionalignment(記憶體對齊)的整數倍

sizeofheaders

4位元組所有頭+節表按照檔案對齊後的大小,否則載入會出錯

checksum

4位元組校驗和,一些系統檔案由要求用來判斷檔案是否被修改,不是所有程式都有。

整個pe檔案以2個位元組相加,加完以後如果溢位不管,得到的結果+檔案長度=校驗和

subsystem

2位元組子系統,驅動程式:1、圖形介面:2、控制台或者dll:3

dllcharacteristics

2位元組檔案特徵,不是針對dll檔案的

sizeofstackreserve

4位元組初始化時保留的棧大小

sizeofstackcommit

4位元組初始化時實際提交的棧的大小(初始化時真正使用的棧的大小)

sizeofheapreserve

4位元組初始化時保留的堆大小

sizeofheapcommit

4位元組初始化時實踐提交的堆的大小(初始化時真正使用的堆的大小)

loaderflags

4位元組除錯相關

numberofrvaandsizes

4位元組目錄專案數量,當前程式會用到各種表,如匯入表匯出表等,描述有多少個這種表

datadirector

不確定結構體陣列,numberofrvaandsizes的長度是多少它的長度就是多少

注意:

addressofentrypoint(程式入口)是相對的位址,也就是imagebase(記憶體映象基址) + addressofentrypoint(程式入口)。

資料位常量符號

為1時的含義

0保留,必須為0

1保留,必須為0

2保留,必須為0

3保留,必須為0

6image_dllcharacteristics_dynamic_base

dll可以在載入時被重定位

7image_dllcharacteristics_force_integrity

強制**實施完整性驗證

8image_dllcharacteristics_nx_compat

該映像相容dep(intel的硬體層面修復漏洞的東西)

9image_dllcharacteristics_no_isolation

可以隔離,但並不隔離此映像

10image_dllcharacteristics_no_seh

映像不適用seh

11image_dllcharacteristics_no_bind

不繫結映像

12保留,必須為0

13image_dllcharacteristics_wdm_driver

該映像為乙個wdm driver

14保留,必須為0

15image_dllcharacteristics_terminal_server_awar

可用於終端伺服器

2021 01 12 標準PE頭屬性說明

typedef struct image nt headers image nt headers32,pimage nt headers32 成員 大小 十進位制 signature 4位元組image file header 20位元組 image optional header32 224位元組...

PE頭結構學習 PE頭移位

剛開始學pe結構的時候,是為了搞 xx的,那時瑞星和江民還有希望,那時卡飯論壇還常駐各個防毒軟體廠商的工程師,想想還有些懷念,初中基本啥也不懂,就上論壇看別人是怎麼搞的,有一次看到乙個免殺技術叫pe頭移位,後來這個技術也用了蠻久。剛好現在上了作業系統這門課,作業就是要研究下pe結構,所以就以pe頭移...

PE檔案結構(一) MS DOS頭 ,PE頭

ms dos頭 標準pe頭 擴充套件pe頭 資料目錄 節表各個欄位的含義 第乙個字段 mz標誌位 e magic 是乙個常量,一般都是0x4d5a 最後乙個字段 pe頭偏移 e ifanew 指向新的pe頭,偏移量為0x0138 位於0x0138 typedef struct image nt he...