LordPE

LordPE

LordPE,是一款功能強大的PE檔案分析、修改、脫殼軟體。LordPE是查看PE格式檔案信息的首選工具,並且可以修改相關信息。

基本介紹

  • 中文名:LordPE
  • 性質:一款功能強大的PE檔案分析軟體
  • 改進:PE 編輯器的功能更加強大
  • 適用:學習調試手動脫殼必備的工具
簡介,PE檔案,

簡介

LordPE的最新版本,改進了許多東東,PE 編輯器的功能更加強大,加入了各項目的16進制編輯和列表,除了修補了LDS(LordPE Dumper Server)的一些bugs,還增加了一個LDE(LordPE Dumper Engine),支持新的外掛程式格式,功能增加了,還加入了一些yoda自己寫的軟體,對了,還有一項新的功能,就是:全球首先支持新的 pe 檔案格式---pe+,但是只是支持編輯,還不支持脫殼等別的操作。配合手動脫殼工具(Ollydbg等)、ImportREC 等,學習調試手動脫殼必備的工具!

PE檔案

PE 的意思就是 Portable Executable(可移植的執行體)。它是 Win32環境自身所帶的執行體檔案格式。它的一些特性繼承自 Unix的 Coff (common object file format)檔案格式。"portable executable"(可移植的執行體)意味著此檔案格式是跨win32平台的 : 即使Windows運行在非Intel的CPU上,任何win32平台的PE裝載器都能識別和使用該檔案格式。當然,移植到不同的CPU上PE執行體必然得有一些改變。所有 win32執行體 (除了VxD和16位的Dll)都使用PE檔案格式,包括NT的核心模式驅動程式(kernel mode drivers)。因而研究PE檔案格式給了我們洞悉Windows結構的良機。
所有 PE檔案(甚至32位的 DLLs) 必須以一個簡單的 DOS MZ header 開始。我們通常對此結構沒有太大興趣。有了它,一旦程式在DOS下執行,DOS就能識別出這是有效的執行體,然後運行緊隨 MZ header 之後的 DOS stub。DOS stub實際上是個有效的 EXE,在不支持 PE檔案格式的作業系統中,它將簡單顯示一個錯誤提示,類似於字元串 "This program requires Windows" 或者程式設計師可根據自己的意圖實現完整的 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檔案結構的作業系統中執行時,PE裝載器將從 DOS MZ header 中找到 PE header 的起始偏移量。因而跳過了 DOS stub 直接定位到真正的檔案頭 PE header。
PE檔案的真正內容劃分成塊,稱之為sections(節)。每節是一塊擁有共同屬性的數據,比如代碼/數據、讀/寫等。我們可以把PE檔案想像成一邏輯磁碟,PE header 是磁碟的boot扇區,而sections就是各種檔案,每種檔案自然就有不同屬性如唯讀、系統、隱藏、文檔等等。 值得我們注意的是 ---- 節的劃分是基於各組數據的共同屬性: 而不是邏輯概念。重要的不是數據/代碼是如何使用的,如果PE檔案中的數據/代碼擁有相同屬性,它們就能被歸入同一節中。不必關心節中類似於"data", "code"或其他的邏輯概念: 如果數據和代碼擁有相同屬性,它們就可以被歸入同一個節中。(譯者註:節名稱僅僅是個區別不同節的符號而已,類似"data", "code"的命名只為了便於識別,惟有節的屬性設定決定了節的特性和功能)如果某塊數據想付為唯讀屬性,就可以將該塊數據放入置為唯讀的節中,當PE裝載器映射節內容時,它會檢查相關節屬性並置對應記憶體塊為指定屬性。
如果我們將PE檔案格式視為一邏輯磁碟,PE header是boot扇區而sections是各種檔案,但我們仍缺乏足夠信息來定位磁碟上的不同檔案,譬如,什麼是PE檔案格式中等價於目錄的東東?別急,那就是 PE header 接下來的數組結構 section table(節表)。 每個結構包含對應節的屬性、檔案偏移量、虛擬偏移量等。如果PE檔案里有5個節,那么此結構數組內就有5個成員。因此,我們便可以把節表視為邏輯磁碟中的根目錄,每個數組成員等價於根目錄中目錄項。

相關詞條

熱門詞條

聯絡我們