pe檔案是指windows作業系統下使用的可執行檔案格式。
pe檔案包括:
種類主副檔名
可執行檔案
exe、scr
庫系列dll、ocx、cpl、drv
驅動程式
sys、vxd
物件檔案系列
obj註解:
va=程序虛擬記憶體的絕對位址。
rva(relative virtual address)=相對虛擬位址,是指從某個基準位置(imagebase)開始的相對位置。
這是乙個結構體,其中最重要的是兩個:
e_magic:dos簽名(4d 5a=>ascii「mz」)
e_lfanew:指示nt頭的偏移
所有pe檔案在開始部分都會有dos簽名(「mz」)
nt頭第乙個成員也是簽名:50450000h(「pe」00)
nt檔案頭中有四個重要的:
每個cpu都有唯一的machine碼。
用於指出檔案中存在的節區數量。
用來指出image_optional_header32結構體的長度。
用於標識檔案的屬性,檔案是否是可執行的狀態、是否是dll檔案等資訊。
nt可選頭以下的較為重要:
當位32結構體時,magic為18b,當位64結構體時,magic為20b.
持有ep的rva值,該值值出程式最先執行的**起始位址。
它指出檔案優先裝入位址。
pe 檔案的body部分劃分為若干節區,用於存放不同類別的資料。
pe檔案載入到記憶體時,它制定了pe image再虛擬記憶體中所佔空間大小
用來指出整個pe頭的大小。
用來區分系統驅動檔案和普通可執行檔案。
用來指定datadirectory
由image_data_directory結構體組成的陣列。
節選頭中定義了各個節區的屬性,比如我們前面提到的.code、.data、.res。
raw = tva - virtualaddress + pointertorawdata
iat就是匯入表
動態鏈結庫
逆向工程核心原理 第十三章 PE檔案格式
在沒有接觸殼之前,也不著急著做什麼練習,pe檔案格式還是要學一學的。公式 rva imagebase va ps 32位windows中,程序分配有4gb虛擬記憶體,因此程序中的va範圍是00000000 ffffffff image dos header 在微軟建立pe檔案格式的時候,正在廣泛使用...
第十三章 併發
13.1 動機 13.2 基本執行緒 如果必須要控制現成的執行順序,最好是根本不用執行緒,而是自己編寫特定順序彼此控制的協作子程式。繼承thread類或者實現runnable介面。內部類實現。13.3 共享受限資源 1 如果要對類中的某個方法進行同步控制,最好同步所有方法。如果忽略了其中乙個,通常很...
第十三章 類
1.類簡單地說是乙個性的資料型別。類當中有資料成員,和成員函式。類的基本思想就是體現出資料的抽象和封裝。2.這裡只需要說明乙個問題即可 就是類成員函式的const型別 class screen public const int get const int i const int j const 這裡...