逆向工程核心原理 第十三章

2022-08-23 23:45:14 字數 1364 閱讀 1973

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 這裡...