資料目錄表的具體資訊例項:
資料目錄的各種表的資訊,所代表的含義,以及部分表的說明
typedef
struct _image_data_directory image_data_directory,
*pimage_data_directory;
資料目錄表的結構非常簡單,就只有起始位置和長度大小這兩個引數組成,由此可以知道這個表的開始位置和結束位置,雖然在結構體中沒有指明哪一部分是什麼型別的表,但是在目錄表中的其他表,如匯入表匯出表;是有一定的順序的,類似陣列排列,排列方式以及各個表的作用與含義如下:
// directory entries
// 按順序排列的資料目錄表
#define image_directory_entry_export 0
// export directory 匯出表:動態鏈結庫匯出的函式會顯示在這裡
#define image_directory_entry_import 1
// import directory 匯入表:寫程式時呼叫的動態鏈結庫會顯示在這裡
#define image_directory_entry_resource 2
// resource directory 資源表:,圖示,字串,嵌入的程式都在這裡
#define image_directory_entry_exception 3
// exception directory 異常目錄表:儲存檔案中異常處理相關的資料
#define image_directory_entry_security 4
// security directory 安全目錄:存放數字簽名和安全證書之類的東西
#define image_directory_entry_basereloc 5
// base relocation table 基礎重定位表:儲存需要執行重定位的**偏移
#define image_directory_entry_debug 6
// debug directory 除錯表
#define image_directory_entry_architecture 7
// architecture specific data 快取資訊表:有一些保留字段必須是0
#define image_directory_entry_globalptr 8
// rva of gp 全域性指標偏移目錄
#define image_directory_entry_tls 9
// tls directory 執行緒區域性儲存(暫時未知)
#define image_directory_entry_load_config 10
// load configuration directory 載入配置
#define image_directory_entry_bound_import 11
// bound import directory in headers 儲存一些api的繫結輸入資訊
#define image_directory_entry_iat 12
#define image_directory_entry_delay_import 13
// delay load import descriptors
#define image_directory_entry_com_descriptor 14
// com runtime descriptor com執行時的目錄
//dwrva是某個資料目錄表的virtualaddress
//buffer是讀取到的pe檔案緩衝區
dword rvatooffset
(dword dwrva,
char
* buffer)
// 計算偏移的函式,將rva轉化成偏移
for(
int i =
0; i < pnt->fileheader.numberofsections; i++)}
}
PE檔案結構
pe檔案結構 a,dos header timagedosheader 其中 lfanew 指向 c e magic 為 mz b,dos stub 用於不支援pe的作業系統,顯示錯誤提示如 this program requires windows 不定長 c,pe header timagent...
元資料與PE檔案結構
元資料被儲存在pe檔案的乙個區域,msil則被儲存在pe檔案的另乙個區域。元資料部分包含一系列的表和堆。msil部分則包含il語言和元資料標記,這些元資料標記指向元資料部分的某個表的某行或者指向某個堆。元資料表和堆 元資料表中包含程式的各種資訊,比如,某個表描述程式中的各個類,另外乙個表描述各個類中...
PE檔案頭結構
typedef struct image file header image file header,pimage file header 1.machine 每個cpu都有唯一的machine碼,用來指定檔案的執行平台 define image file machine unknown 0 def...