typedef struct _image_nt_headers image_nt_headers32, *pimage_nt_headers32;
成員
大小(十進位制)
signature
4位元組image_file_header
20位元組
image_optional_header32
224位元組
pe標識不能被破壞,作業系統在啟動乙個程式的時候會檢測這個標識。
typedef struct _image_file_header image_file_header, *pimage_file_header;
成員
大小(十進位制)
machine
2位元組numberofsections
2位元組timedatestamp
4位元組pointertosymboltable
4位元組numberofsymbols
4位元組sizeofoptionalheader
2位元組characteristics
2位元組image_file_header->characteristics(檔案屬性)
資料位常量符號
為1時的含義
0image_file_relocs_stripped
檔案中不存在重定位資訊
1image_file_executable_image
檔案是可執行的
2image_file_line_nums_stripped
不存在行資訊
3image_file_local_syms_stripped
不存在符號資訊
4image_file_aggressvie_ws_trim
調整工作集
5image_file_large_address_aware
應用程式可處理大於2gb的位址
6此標誌保留
7image_file_bytes_reversed_lo
小尾方式
8image_file_32bit_machine
只在32位平台執行
9image_file_debug_stripped
不包含除錯資訊
10image_file_removable_run_from_swap
不能從可移動磁碟執行
11image_file_net_run_from_swap
不能從網路執行
12image_file_system
系統檔案(如驅動程式),不能直接執行
13image_file_dll
dll檔案
14image_file_up_system_only
檔案不能在多處理器計算機上執行
15image_file_bytes_reversed_hi
大尾方式
如上圖所示,characteristics 為 0f 01,由於是小端儲存所以是 01 0f。
01 0f 轉換為二進位制:0000 0001 0000 1111。
轉換為二進位制後總共16位,對比上面的**可以知道代表了什麼含義,表示了哪些檔案屬性。
對比如下:
2021 01 13 擴充套件PE頭屬性說明
32位和64位pe頭結構體有點差異,但是差異不是很大。typedef struct image nt headers image nt headers32,pimage nt headers32 typedef struct image nt headers64 image nt headers64...
PE頭結構學習 PE頭移位
剛開始學pe結構的時候,是為了搞 xx的,那時瑞星和江民還有希望,那時卡飯論壇還常駐各個防毒軟體廠商的工程師,想想還有些懷念,初中基本啥也不懂,就上論壇看別人是怎麼搞的,有一次看到乙個免殺技術叫pe頭移位,後來這個技術也用了蠻久。剛好現在上了作業系統這門課,作業就是要研究下pe結構,所以就以pe頭移...
PE檔案結構(一) MS DOS頭 ,PE頭
ms dos頭 標準pe頭 擴充套件pe頭 資料目錄 節表各個欄位的含義 第乙個字段 mz標誌位 e magic 是乙個常量,一般都是0x4d5a 最後乙個字段 pe頭偏移 e ifanew 指向新的pe頭,偏移量為0x0138 位於0x0138 typedef struct image nt he...