阿π
專注于網絡協議,系統底層,服務器軟件
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
阿π
閱讀(1176)
評論(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
<
2010年8月
>
日
一
二
三
四
五
六
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
31
1
2
3
4
留言簿
(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.?網絡通訊協議圖(18028)
2.?linux makefile編寫(13999)
3.?C++中的四種強制類型轉換的區別 [轉](10853)
4.?分享以前收藏的TCP狀態轉換圖(9970)
5.? Socket粘包問題(8839)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 阿π
无遮挡粉嫩小泬久久久久久久
|
久久精品无码一区二区app
|
精品国产一区二区三区久久
|
丰满少妇高潮惨叫久久久
|
欧美久久综合性欧美
|
久久久久无码专区亚洲av
|
亚洲午夜久久久久久久久久
|
久久综合九色综合欧美狠狠
|
久久99热这里只频精品6
|
99久久超碰中文字幕伊人
|
久久久久亚洲av成人无码电影
|
精品国产乱码久久久久久人妻
|
国产精品久久国产精品99盘
|
久久精品人成免费
|
欧美国产精品久久高清
|
国产精品18久久久久久vr
|
国产成人精品白浆久久69
|
久久这里都是精品
|
精品久久久久久久中文字幕
|
久久婷婷五月综合97色一本一本
|
久久久网中文字幕
|
色综合久久88色综合天天
|
久久夜色精品国产噜噜噜亚洲AV
|
国产精品久久久久久久久
|
亚洲国产另类久久久精品小说
|
狠狠色综合久久久久尤物
|
久久91精品久久91综合
|
久久久无码精品亚洲日韩按摩
|
97视频久久久
|
国产香蕉久久精品综合网
|
亚洲国产精品一区二区三区久久
|
一本大道加勒比久久综合
|
久久综合88熟人妻
|
亚洲色大成网站WWW久久九九
|
国内精品久久国产
|
久久精品国产男包
|
伊人久久综合精品无码AV专区
|
怡红院日本一道日本久久
|
中文精品久久久久国产网址
|
国产精品久久久久久影院
|
99久久精品无码一区二区毛片
|