微軟為了照顧相容性,在以後的pe檔案中也加入了dos頭
在dos頭有兩個部分
1 dos mz頭
結構體為
image_dos_header struct
+0h word e_magic // magic dos signature mz(4dh5ah) dos可執行檔案標記
+2h word e_cblp // bytes on last pageof file
+4h word e_cp // pages in file
+6h word e_crlc // relocations
+8h word e_cparhdr // size of header in paragraphs
+0ah word e_minalloc // minimun extra paragraphsneeds
+0ch word e_maxalloc // maximun extra paragraphsneeds
+0eh word e_ss //intial(relative)ss value dos**的初始化堆疊ss
+10h word e_sp // intial sp value dos**的初始化堆疊指標sp
+12h word e_csum // checksum
+14h word e_ip // intial ip value dos**的初始化指令入口[指標ip]
+16h word e_cs // intial(relative)csvalue dos**的初始堆疊入口
+18h word e_lfarlc // file address ofrelocation table
+1ah word e_ovno // overlaynumber
+1ch word e_res[4] // reservedwords
+24h word e_oemid // oem identifier(fore_oeminfo)
+26h word e_oeminfo // oeminformation;e_oemid specific
+29h word e_res2[10] // reserved words
+3ch dword e_lfanew // offset tostart of pe header 指向pe檔案頭
} image_dos_header ends
其中比較重要的是
e_magic 是dos頭的標誌 是:「mz」
還有就是 e_ifanew pe頭相對於檔案的偏移位址
這個還是挺重要的,是pe頭的入口位址
接下來到e_ifanew所指的位址部分都是 dos stup
也就是dos檔案的執行**,現在16位的程式已經很少出現了,有興趣的可以再cmd的debug下改一下**,嘗試一下,也挺好玩的
PE檔案結構(一) MS DOS頭 ,PE頭
ms dos頭 標準pe頭 擴充套件pe頭 資料目錄 節表各個欄位的含義 第乙個字段 mz標誌位 e magic 是乙個常量,一般都是0x4d5a 最後乙個字段 pe頭偏移 e ifanew 指向新的pe頭,偏移量為0x0138 位於0x0138 typedef struct image nt he...
PE檔案學習 Dos頭部
pe portable executeable file format 可移植的執行文體格式,我們平時常見的exe dll sys等都是pe檔案的一種。pe檔案的組成可以被分為pe head和pe body,我們先從pe檔案頭的dos頭部說起。dos頭部分為兩部分 第一部分是dos mz頭第二部分是...
PE檔案的基本結構 1 總體介紹和dos頭
1 概論 看歷史 com檔案,exe檔案,le格式的可執行檔案 linear executable 線性可執行檔案 windows 9x中的vxd驅動程式也使用le格式,因為這些驅動程式中也同時包括16位和32位 而在windows 9x,windows nt,windows 2000下,純32位的...