pe檔案到記憶體的對映,說白了就是將磁碟上的檔案放到記憶體中,但事實上並不是這樣。在執行乙個pe檔案的時候,windows並不是一開始就將整個檔案對映到記憶體,而是採用與記憶體對映檔案類似的機制。windows裝載器在裝載的時候建立好虛擬位址和pe檔案之間的對映關係。真正執行某個記憶體頁中的指令或者訪問某一頁中的資料時,這個頁面才會被從磁碟提交到物理記憶體。
windows裝載器在裝載dos部分、pe檔案頭部分和區表部分是不進行任何特殊處理的,而在裝載區塊的時候則會自動按區塊的屬性做不同的處理。
一般來說有以下幾個方面的內容:
1.記憶體頁的屬性;
2.節的偏移位址
3.節的尺寸;
4.不進行對映的節。
例如說記憶體頁的屬性:對於磁碟對映檔案來說,所有的頁都是按照磁碟對映檔案函式指定的屬性設定的。(唯讀/只寫/讀寫)但是在裝載可執行檔案時,與節對應的記憶體頁屬性要按照節的屬性來設定。
節表事實上乙個地圖,它儲存著後面各個區塊的位址,起到了索引的作用,起規定了區塊的一些屬性。要學習節表就要學習image_section_header結構排列而成,每個結構用來描述乙個節。
typedef struct _image_section_header
misc;
dword virtualaddress; //節區的rva
dword sizeofrawdata; //在檔案中對齊後的尺寸
dword pointertorawdata; //在檔案中的偏移量
dword pointertorelocations; //在obj檔案中使用,重定位的偏移
dword pointertolinenumbers; //行號表的偏移
word numberofrelocations; //在obj檔案中使用,重定位項數目
word numberoflinenumbers; //行號表中行號的數目
dword characteristics; //節屬性
} image_section_header, *pimage_section_header;
解密 系統 PE詳解
1.序言 pe可執行檔案格式是作業系統本身執行機制的反映,助於對底層的理解。在彈幕裡看到很多學外掛程式的 目的 掌握可執行檔案的資料結構和執行機制 exe 和dll使用完全相同的pe格式 只是在乙個字段標識出是哪種 64位pe並沒有新增結構,也叫pe32 pe位於winnt.h標頭檔案中,可找到pe...
解密系列(基礎篇 必備知識)
教程 魚c解密系列 教材 加密與解密 多位元組資料存放順序與cpu有關,微處理器的儲存順序有正序和逆序 即大端儲存和小端儲存 常見的intel系列使用的編碼方式為逆序,某些risc架構的cpu 例如ibm的power pc 屬於正序。例如將12345678h寫入以1000h開始的記憶體中 littl...
linux系統目錄結構介紹篇
linux 系統有其特定的檔案系統的目錄組織結構,了解這些目錄結構是學習基本知識的基本。下面我以 redhatlinux 為藍本介紹一下這些目錄結構。目錄名 簡介 bin 這個目錄是系統中最主要的可執行檔案的存放地 這些可執行檔案大都是 linux 系統裡最常用的命令了,一般使用者和超級使用者都會經...