在前面的文章裡,學習pe結構都是通過手動的方式去計算pe結構的nt映象頭,nt可選頭之類的,手動計算確實有利於加深對pe結構的熟悉程度,但是,在實際程式設計的時候,利用一些資料結構會讓程式更高效,更簡潔..於是,順便記錄了下通過winnt.h自定義的結構體,來獲取本程序的iat表
開啟winnt.h檔案可以看到裡面定義了大量的結構體,正是這些已定義好的結構體,讓我們能更方便的去獲取pe檔案的結構資訊
1) 獲取模組資訊
2) 獲取dos頭
3) 獲取nt映象頭
4) 獲取nt可選映象頭
5) 獲取iat表位址
6) 迴圈遍歷iat表,獲取匯入函式資訊
具體解釋請看**的注釋
///
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
////////
// 檔名 : test.c
// 工程 : test
// 作者 : enjoy5512 修改者 : enjoy5512 最後優化注釋者 : enjoy5512
// 個人技術部落格 : blog.csdn.net/enjoy5512
// 個人github : github.com/whu-enjoy
// csdn code : code.csdn.net/enjoy5512
// 描述 : 使用winnt.h中自帶的pe檔案結構體,獲取本程序的iat表
// 主要函式 :
// 版本 : 最終確定版 完成日期 : 2023年6月2日 19:06:21
// 修改 :
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
/////
#include
#include
int main()
; getchar();
//指向下乙個dll
pimportdescriptor++;
};return
0;}
結構體的定義
關於c語言中結構體的幾種定義方式和它們之間的不同。1 先定義結構體型別,再定義結構體型別變數 struct 結構體名稱 struct 結構體名稱 結構體變數1,結構體變數2 struct 結構體名稱 結構體變數3,結構體變數4 用此結構體型別,可以定義更多的該結構體型別變數。2 定義結構體型別同時定...
結構體的定義
在c語言中,結構體 struct 指的是一種資料結構,是c語言中聚合資料型別 aggregate data type 的一類。結構體可以被宣告為變數 指標或陣列等,用以實現較複雜的資料結構。結構體同時也是一些元素的集合,這些元素稱為結構體的成員 member 且這些成員可以為不同的型別,成員一般用名...
結構體定義
struct在c語言中是乙個關鍵字,用於定義結構資料型別。問題中的兩種定義的區別在於第一種是給student資料型別,重新定義了乙個型別別名,而第二種則單純的表示一種叫做student的資料結構型別。兩者的主要區別在於後面直接定義變數時。如下 則可以直接在結構體後面定義乙個zhang san的結構體...