ms-dos頭
標準pe頭
擴充套件pe頭
資料目錄
節表各個欄位的含義
第乙個字段(mz標誌位):e_magic 是乙個常量,一般都是0x4d5a
最後乙個字段(pe頭偏移):e_ifanew 指向新的pe頭,偏移量為0x0138
位於0x0138
typedef
struct _image_nt_headers64 image_nt_headers64,
*pimage_nt_headers64;
typedef
struct _image_nt_headers image_nt_headers32,
*pimage_nt_headers32;
分為32位版本和64位版本
各個字段及其含義:
signature:pe檔案標識,0x5045 0000 dword型別,佔四位元組
fileheader:檔案頭
optional header:擴充套件pe頭
typedef
struct _image_file_header image_file_header,
*pimage_file_header;
一共有七個字段,分別為:
machine
執行的平台,可以執行到不同的cpu上,可以用巨集代表,用巨集與值對比可知執行平台
區段數量
常用區段:
timedatestamp
檔案的建立時間(採用格林尼治時間)
pointertosymboltable
指向符號表的乙個指標,現已不常用
numberofsymbols
符號表中符號的數量
sizeofoptionalheader
檔案頭後的擴充套件頭的大小
characteristics
pe檔案的乙個屬性,可以通過計算得到,一般情況下,普通的exe檔案的值為0x010f,普通dll檔案的值為0x0210
常見的pe屬性:
首先了解相關的一些概念:
va: virtual address 虛擬位址,範圍在00000000到fffffff之間 程序的基位址+相對虛擬記憶體位址
rva: reversc virtual address 相對虛擬位址
foa: file offset address 檔案偏移位址,從檔案頭計算的位址
PE頭結構學習 PE頭移位
剛開始學pe結構的時候,是為了搞 xx的,那時瑞星和江民還有希望,那時卡飯論壇還常駐各個防毒軟體廠商的工程師,想想還有些懷念,初中基本啥也不懂,就上論壇看別人是怎麼搞的,有一次看到乙個免殺技術叫pe頭移位,後來這個技術也用了蠻久。剛好現在上了作業系統這門課,作業就是要研究下pe結構,所以就以pe頭移...
PE檔案結構 NT頭學習
pe檔案基本結構如下 學習一下nt頭 nt頭,包含乙個4位元組的signature,以及兩個結構體image file header 檔案頭 和image optional header 擴充套件頭 nt頭 signature,檔案頭,擴充套件頭 其定義如下 這個是微軟定義的 typedef str...
PE檔案結構(一)
pe portable execute 檔案是windows下可執行檔案的總稱,常見的有dll,exe,ocx,sys等,事實上,乙個檔案是否是pe檔案與其副檔名無關,pe檔案可以是任何副檔名。pe檔案是指32位可執行檔案,也稱pe32。64位可執行檔案稱為pe 或pe32 是pe pe32 的一種...