通過WINNT H定義的結構體,獲取程序IAT表

2021-07-12 07:44:28 字數 1347 閱讀 9746

在前面的文章裡,學習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的結構體...