阿π
專注于網絡協議,系統底層,服務器軟件
C++博客
|
首頁
|
發新隨筆
|
發新文章
| | |
管理
定位IAT并輸出導入函數名稱和對應的函數地址
?1
#include?
<
stdio.h
>
?2
#include?
<
windows.h
>
?3
?4
void
?main()
?5
{
?6
//
取得主模塊的模塊句柄(即進程模塊基地址)
?7
HMODULE?hMod?
=
?GetModuleHandle(NULL);
?8
?9
//
把進程基址賦給pDosHeader,即起始基址就是PE的IMAGE_DOS_HEADER
10
IMAGE_DOS_HEADER
*
?pDosHeader?
=
?(IMAGE_DOS_HEADER
*
)hMod;
11
12
//
定位到PE?HEADER
13
//
基址hMod加上IMAGE_DOS_HEADER結構的e_lfanew成員到達IMAGE_NT_HEADERS
14
//
NT文件頭的前4字節是文件簽名("PE00"?字符串),然后是20字節的IMAGE_FILE_HEADER結構
15
//
即到達IMAGE_OPTIONAL_HEADER結構的地址,獲取了一個指向IMAGE_OPTIONAL_HEADER結構體的指針
16
IMAGE_OPTIONAL_HEADER?
*
?pOptHeader?
=
17
(IMAGE_OPTIONAL_HEADER?
*
)((BYTE
*
)hMod?
+
?pDosHeader
->
e_lfanew?
+
?
24
);
18
19
//
定位到導入表
20
//
通過IMAGE_OPTIONAL_HEADER結構中的DataDirectory結構數組中的第二個成員中的
21
//
VirturalAddress字段定位到IMAGE_IMPORT_DESCRIPTOR結構的起始地址
22
//
即獲得導入表中第一個IMAGE_IMPORT_DESCRIPTOR結構的指針(導入表首地址)
23
IMAGE_IMPORT_DESCRIPTOR
*
?pImportDesc?
=
?(IMAGE_IMPORT_DESCRIPTOR
*
)
24
((BYTE
*
)hMod?
+
?pOptHeader
->
DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress);
25
26
while
(pImportDesc
->
FirstThunk)
27
{
28
//
遍歷結構的OriginalFirstThunk字段所指向的IMAGE_IMPORT_BY_NAME結構得到導出函數名
29
//
遍歷IMAGE_IMPORT_DESCRIPTOR結構的FirstThunk數組得到每個函數的地址
30
31
//
導出模塊的名稱
32
char
*
?pszDllName?
=
?(
char
*
)((BYTE
*
)hMod?
+
pImportDesc
->
Name);
33
printf(
"
\n模塊名稱:%s?\n
"
,?pszDllName);
34
35
//
?一個IMAGE_THUNK_DATA就是一個雙字,它指定了一個導入函數
36
IMAGE_THUNK_DATA
*
?pThunk?
=
?(IMAGE_THUNK_DATA
*
)
37
((BYTE
*
)hMod?
+
?pImportDesc
->
OriginalFirstThunk);
38
int
?n?
=
?
0
;
39
while
(pThunk
->
u1.Function)
40
{
41
//
?取得函數名稱。hint/name表前兩個字節是函數的序號,后4個字節是函數名稱字符串的地址
42
char
*
?pszFunName?
=
?(
char
*
)
43
((BYTE
*
)hMod?
+
?(DWORD)pThunk
->
u1.AddressOfData?
+
?
2
);
44
//
?取得函數地址。IAT表就是一個DWORD類型的數組,每個成員記錄一個函數的地址
45
PDWORD?lpAddr?
=
?(DWORD
*
)((BYTE
*
)hMod?
+
?pImportDesc
->
FirstThunk)?
+
?n;
46
47
//
?打印出函數名稱和地址
48
printf(
"
???從此模塊導入的函數:%-25s,
"
,?pszFunName);
49
printf(
"
函數地址:%X?\n
"
,?lpAddr);
50
n
++
;?pThunk
++
;
51
}
52
53
pImportDesc
++
;
54
}
55
MessageBox(NULL,
"
Test
"
,
"
Test
"
,
0
);
56
}
發表于 2010-08-23 13:22
阿π
閱讀(1168)
評論(0)
編輯
收藏
引用
所屬分類:
其它
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
Linux下makefile教程
c++ 中關于int,unsigned int , short的跨平臺移植
C++中的四種強制類型轉換的區別 [轉]
c++ 枚舉網頁
[收藏]QQ_dll Function
[分享收藏]IP協議族協議頭結構
atoi,atof實現
c++ web Kit簡介
PE文件頭的結構圖
DLL在應用程序間共享數據
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
隨筆:64 文章:15 評論:65 引用:0
<
2025年6月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
留言簿
(14)
給我留言
查看公開留言
查看私人留言
隨筆分類
非技術(13)
(rss)
服務器開發(3)
(rss)
流媒體
(rss)
其它(25)
(rss)
驅動編程
(rss)
圖形開發
(rss)
網絡編程(14)
(rss)
隨筆檔案
2012年6月 (1)
2012年3月 (1)
2011年4月 (1)
2010年12月 (1)
2010年11月 (13)
2010年10月 (1)
2010年9月 (10)
2010年8月 (7)
2010年7月 (5)
2010年6月 (6)
2010年5月 (9)
2010年4月 (3)
2010年2月 (1)
2010年1月 (5)
收藏夾
收藏(1)
(rss)
最新隨筆
1.?Linux下makefile教程
2.?Delete Gmail account
3.?c++ 中關于int,unsigned int , short的跨平臺移植
4.?【轉帖】青年買不起房欲自殺折射四大悲哀
5.?C++中的四種強制類型轉換的區別 [轉]
6.?成都地鐵規劃[圖]
7.?linux makefile編寫
8.?c++ 枚舉網頁
9.?設計winsock服務器需要注意的幾個問題
10.?CVC內部雜志
最新評論
1.?re: UNICODE與ANSI的區別
內容簡明扼要,適合我的理解,謝謝
--欣豆兒
2.?re: c++ 中關于int,unsigned int , short的跨平臺移植
跨平臺移植寫的很全面,學習了。
--poker
3.?re: 網絡通訊協議圖
太好了!謝謝!
--雨
4.?re: 我常去的編程技術網站
評論內容較長,點擊標題查看
--home loans
5.?re: 我常去的編程技術網站
評論內容較長,點擊標題查看
--forum profile service
閱讀排行榜
1.?網絡通訊協議圖(18017)
2.?linux makefile編寫(13992)
3.?C++中的四種強制類型轉換的區別 [轉](10840)
4.?分享以前收藏的TCP狀態轉換圖(9963)
5.? Socket粘包問題(8828)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 阿π
人妻无码久久精品
|
伊人久久大香线蕉综合5g
|
国产精品久久国产精品99盘
|
久久99亚洲综合精品首页
|
日韩精品无码久久一区二区三
|
亚洲午夜无码久久久久
|
91麻豆精品国产91久久久久久
|
少妇人妻综合久久中文字幕
|
国产一区二区精品久久
|
免费精品久久天干天干
|
国产高清国内精品福利99久久
|
亚洲熟妇无码另类久久久
|
久久久久亚洲av成人无码电影
|
欧美与黑人午夜性猛交久久久
|
日产精品久久久久久久性色
|
欧美久久久久久精选9999
|
久久久无码精品亚洲日韩按摩
|
精品无码人妻久久久久久
|
91精品国产综合久久久久久
|
中文无码久久精品
|
中文字幕久久精品
|
国产成人精品久久一区二区三区av
|
久久中文骚妇内射
|
久久综合给合久久狠狠狠97色
|
精品国产一区二区三区久久蜜臀
|
久久亚洲日韩精品一区二区三区
|
久久不见久久见免费影院www日本
|
国产成人久久精品激情
|
精品久久久噜噜噜久久久
|
亚洲第一极品精品无码久久
|
奇米影视7777久久精品人人爽
|
久久这里有精品视频
|
久久久久女教师免费一区
|
久久精品国产只有精品66
|
亚洲日韩中文无码久久
|
国产欧美久久久精品影院
|
伊人久久五月天
|
97久久婷婷五月综合色d啪蜜芽
|
久久久久久国产精品美女
|
亚洲va久久久噜噜噜久久狠狠
|
A级毛片无码久久精品免费
|