PE格式:Portable Executable File Format(可移植的執行體)是在windows 9x、NT、2000下,所有的執行檔都是基於Microsoft設計的一種新的檔案格式。以下給出PE檔案裝載流程的簡述。
PE檔案框架構成:
DOS MZ header
DOS stub
PE header
Section table
Section 1
Section 2
Section ...
Section n
上表是PE檔案結構的總體層次分布。所有 PE檔案(甚至32位的 DLLs) 必須以一個簡單的 DOS MZ header 開始,在偏移0處有DOS下執行檔的“MZ標誌”,有了它,一旦程式在DOS下執行,DOS就能識別出這是有效的執行體,然後運行緊隨 MZ header 之後的 DOS stub。DOS stub實際上是個有效的EXE,在不支持 PE檔案格式的作業系統中,它將簡單顯示一個錯誤提示,類似於字元串 " This program cannot run in DOS mode " 或者程式設計師可根據自己的意圖實現完整的 DOS代碼。通常DOS stub由彙編器/編譯器自動生成,對我們的用處不是很大,它簡單調用中斷21h服務9來顯示字元串"This program cannot run in DOS mode"。
緊接著 DOS stub 的是 PE header。 PE header 是PE相關結構 IMAGE_NT_HEADERS 的簡稱,其中包含了許多PE裝載器用到的重要域。執行檔在支持PE檔案結構的作業系統中執行時,PE裝載器將從 DOS MZ header的偏移3CH處找到 PE header 的起始偏移量。因而跳過了 DOS stub 直接定位到真正的檔案頭 PE header。
PE檔案的真正內容劃分成塊,稱之為sections(節)。每節是一塊擁有共同屬性的數據,比如“.text”節等,那么,每一節的內容都是什麼呢?實際上PE格式的檔案把具有相同屬性的內容放入同一個節中,而不必關心類似“.text”、“.data”的命名,其命名只是為了便於識別,所有,我們如果對PE格式的檔案進行修改,理論上講可以寫入任何一個節內,並調整此節的屬性就可以了。
PE header 接下來的數組結構 section table(節表)。 每個結構包含對應節的屬性、檔案偏移量、虛擬偏移量等。如果PE檔案里有5個節,那么此結構數組內就有5個成員。
以上就是PE檔案格式的物理分布,下面將總結一下裝載一PE檔案的主要步驟:
1、PE檔案被執行,PE裝載器為檔案在記憶體分配一個空的位置。創建進程和主執行緒。
2、PE裝載器檢查 DOS MZ header 里的 PE header 偏移量。如果找到,則跳轉到 PE header。
3、PE裝載器檢查 PE header 的有效性。如果有效,就跳轉到PE header的尾部。
4、緊跟 PE header 的是節表。PE裝載器讀取其中的節信息,並採用檔案映射方法將這些節映射到記憶體,同時付上節表里指定的節屬性。
5、PE檔案映射入記憶體後,PE裝載器將處理PE檔案中類似 import table(引入表)邏輯部分。
相關詞條
-
PE.EXE
PE即 Portable Executable(可移植的執行體)。它是 Win32環境自身所帶的執行體檔案格式。它的一些特性繼承自 Unix的 Coff...
-
《WINDOWS應用程式捆綁核心編程》
再談PE檔案結構 282.1 引言 282.2 PE檔案格式概述 282.2.1 PE檔案結構布局 282.2.2 PE檔案記憶體映射... 312.2.4 3種不同的地址 312.3 PE檔案結構 322.3.1...
內容簡介 目錄介紹 參考資料 -
Windows應用程式捆綁核心編程
27 第2章 再談PE檔案結構 28 2.1 引言 28 2.2 PE檔案格式概述 28 2.2.1 PE檔案結構布局 28 2.2.2 PE檔案記憶體映射 30 2.2.3 Big...
圖書信息 圖書概述 圖書目錄 -
網際網路時代背景下的全球旅遊整合行銷
947.4.1 實踐流程與方法 947.4.2 硬體實驗室:系統檔案丟失... 211.2.2 電腦硬體啟動的最初過程 231.2.3 BIOS如何找到並裝載... 圖解製作Windows PE啟動光碟 272.1.3 圖解製作隨身碟...
基本信息 作者簡介 目錄 -
Meta Data
以對存儲在公共語言運行庫可移植執行檔 (PE) 檔案或存儲在記憶體中的程式進行描述。將您的代碼編譯為 PE 檔案時,便會將元數據插入到該檔案...提供所有必需的有關已編譯代碼的信息,以供您從用不同語言編寫的 PE 檔案中...
-
元數據標準
,用以對存儲在公共語言運行庫可移植執行檔 (PE) 檔案或存儲在記憶體中的程式進行描述。將您的代碼編譯為 PE 檔案時,便會將元數據插入到該...的信息,以供您從用不同語言編寫的 PE 檔案中繼承類。您可以創建用任何...
簡介 存儲的信息 優點 屬性 意義 -
元數據
所有必需的有關已編譯代碼的信息,以供您從用不同語言編寫的 PE 檔案中...模型來說,元數據是關鍵,該模型不再需要接口定義語言 (IDL) 檔案...。元數據自動提供 COM 中 IDL 的功能,允許將一個檔案同時用於定義...
定義 特點 屬性 意義 列舉 -
核心模式驅動
。從檔案結構上講,設備驅動程式就是一個普普通通的PE格式檔案,就像其他EXE或者DLL檔案一樣。設備驅動程式是一個可裝載的核心模式模組,一般以SYS...被裝載運行後,驅動程式就是系統的一部分,可以無限制地做任何事情。總的來說...
定義 主要組成部分 分類 驅動程式 -
pc logo
的X,Y坐標HEADING - 顯示海龜指向角度檔案管理POTS...檔案目錄DISK - 顯示當前盤SETDISK - 設定當前盤SAVE - 把程式存檔LOAD - 讀程式檔案SAVEPIC - 圖形存檔...
功能 語言 優秀作品 基本命令 特點