解密 系統 PE詳解

2021-10-08 03:21:20 字數 1903 閱讀 8017

1.序言

pe可執行檔案格式是作業系統本身執行機制的反映,助於對底層的理解。(在彈幕裡看到很多學外掛程式的…)

目的:掌握可執行檔案的資料結構和執行機制

exe 和dll使用完全相同的pe格式 只是在乙個字段標識出是哪種

64位pe並沒有新增結構,也叫pe32+

pe位於winnt.h標頭檔案中,可找到pe所有定義,可在計算機直接搜

pe中有32和64位之分,會在名稱中表現出來

更有詳盡圖在魚c論壇

2.pe的基本概念

pe是平面位址空間,被劃分為不同區塊,每個區塊按頁分邊界來對齊,像書一樣,可以方便查詢。

pe不是作為單一記憶體對映檔案被裝入記憶體

windows載入器又叫pe裝載器,將遍歷pe並決定哪一部分被對映

裝入記憶體時的資料結構和在檔案中是一樣的,頭是頭,屁股是屁股

但資料之間的相對位置可能有些改變,整體比例的縮小或者擴大

階梯向上移,但區塊比例一樣

1.ms-dos頭部

每乙個pe檔案都是由乙個dos開始,pe的第乙個位元組:image_dos_header(乙個傳統的ms_dos頭部,乙個結構體)(了解pe感染,pe變味)

2.image_dos_header結構

有n個成員,只有兩個很重要:

①e_magic dos可執行檔案的標記

②e_lfanew32位的指標,指向pe檔案頭 相對於dos頭的偏移量永遠是3ch

(下乙個loadpe,我最討厭的就是下軟體…)

3.pe檔案頭(pe head結構 )

緊挨著dos stub,是pe相關結構nt映像頭image_nt_header的簡稱,包含很多pe裝袋器用到的重要字段,從image_dos_header中的e_lfanew中找到相對於pe header的起始偏移位址(滷蛋真好吃…)

4.image_nt_header

①signature標誌 標誌有效pe檔案004500h

②image_file_header結構裡的結構

裡面有(比較重要):

(1)執行平台:可執行檔案cpu型別

(2)檔案區塊數目

(3)建立時間(何時建立,存放秒)

(4)符號表 除錯用

(5)符號表的符號數 除錯用

(6)下面乙個結構(image_optional_header)的大小

32 一般是00e0 64一般是00f0

(7)檔案的屬性 0x0001:檔案重定位

0x0002:正在被執行

…(同時使用進行or運算)

(俺回來了 困了)

1.image_optional_header32

增加的結構 和image_file_header一起才是完整的「pe結構體」

事實上,這個結構的大部分欄位都是不重要的,但是很多病毒喜歡在這些欄位上感染。

比較重要的字段:

①addressofentrypoint是乙個rva位址,是檔案被執行時的入口位址 dword型

②imagebase程式首選裝載位址

③sectionalignment和filealignment(預設200hb)依次是被裝入記憶體和被裝入磁碟後的對齊大小

(困困困困 打雷了 開心 之前聽到乙個冷笑話,姐姐叫徐因,弟弟叫徐困…真冷)

④subsystem指定介面的子系統

⑤datairectory***重要!!!

實際上是乙個陣列,有16個元素,有兩個dword,乙個是起始rva,乙個是資料長度

詳解PE檔案

筆者在某安全公司實習,第一天被要求了解pe結構,好吧,因為基礎不紮實,經過一天的時間了解的啥都不是,受到了導師的特殊關照,推薦了我一本沒推薦給別人的書 windows32位匯程式設計序 羅雲彬著 嘿嘿,匿名感謝導師,清明三天的pe之旅。1.1pe檔案的結構 pe就是在windows下最常用的可執行檔...

PE檔案詳解

pe 檔案是一種格式 dos頭 pe頭 區塊 這些組成了pe檔案 傳送門 c 解析dos頭和nt頭 指某一種格式的檔案,可執行檔案 exe 動態鏈結庫 dll 驅動檔案 sys 都是pe檔案格式 dos頭部 為了相容dos程式設計 nt頭部 儲存pe檔案的全部屬性,初始資訊化等 區段頭表 對於pe檔...

解密系列(系統篇 PE結構詳講筆記4)

pe檔案到記憶體的對映,說白了就是將磁碟上的檔案放到記憶體中,但事實上並不是這樣。在執行乙個pe檔案的時候,windows並不是一開始就將整個檔案對映到記憶體,而是採用與記憶體對映檔案類似的機制。windows裝載器在裝載的時候建立好虛擬位址和pe檔案之間的對映關係。真正執行某個記憶體頁中的指令或者...