這裡的PE檔案指的是PE(Portable Executable)檔案,即可移植的可執行檔案,是 Windows 作業系統上主流的可執行檔案。
常見的 EXE、DLL、OCX、SYS、COM 等檔案格式都屬于 PE 檔案。
小結:PE檔案是一種檔案架構。
本次我們隻是大概了解下PE結構檔案。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsQTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yN0IDM5YjMmdDM4gzM4AjYyYzX2EjNyIjMwIzLcZDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
PE可執行檔案
可以由作業系統進行加載并執行的檔案稱為可執行檔案。
在不同的作業系統環境下可執行檔案的呈現方式不一樣:
1、windows:采用 PE(Portable Executable)檔案結構。
2、Linux:采用 ELF(Executable and Linking Format)檔案結構。
幾大區塊
1、DOS頭
DOS頭分為兩部分,分别是“MZ頭部”和“DOS存根”。MZ頭部是真正的DOS頭部,由于其開始處的兩個位元組為“MZ”,是以DOS頭也可以叫作MZ頭。該部分用于程式在DOS系統下加載,它的結構被定義為IMAGE_DOS_HEADER。
2、PE頭
PE頭部儲存着Windows系統加載可執行檔案的重要資訊。
3、節表
節表中存儲了各個節的屬性、檔案位置、記憶體位置等相關的資訊。
4、節表資料
PE檔案的真正程式部分就儲存在節資料中。在PE結構中,有幾個節表,就對應有幾個節表的資料。根據節表的屬性、位址等資訊,程式的資料就分布在節表指定的位置中。