无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

「winds平臺」IATHook&原理與實現(xiàn)(4)

2021-12-28 15:59 作者:rkvir逆向工程學院  | 我要投稿




作者?| 榴蓮

編輯?| 楌橪


IAT(Import Address Table) HOOK與我們以往學習過的HOOK有著較大的區(qū)別。無論是InlineHook還是HotFixHook,都是基于指令的修改,劫持流程來實現(xiàn)HOOK的。而IATHOOK則是采取另一種劫持思路。這里就不得不提到一個Windows系統(tǒng)的文件格式,PE(Portable Executable)文件格式。

在我們編寫一個Windows程序的時候,通常需要調(diào)用許多系統(tǒng)或第三方的函數(shù)。而需要調(diào)用這些函數(shù),就必須要加載導出這些函數(shù)的動態(tài)鏈接庫。對于動態(tài)鏈接庫來說,這些函數(shù)是導出函數(shù)。而對于調(diào)用者,也就是我們而言,這些函數(shù)就是導入函數(shù)。而導入函數(shù)的相關信息就存儲在PE文件格式的數(shù)據(jù)目錄表中的導入表中。導入表內(nèi)有三個表,分別是序號,地址以及函數(shù)名,進行分別存儲。當調(diào)用者調(diào)用一個函數(shù)的時候,就會去導入表中尋找對應函數(shù)名的函數(shù)地址。那么我們在這個位置就可以做一些事情了。只要將導入地址表(Import Address Table)中我們想要HOOK的函數(shù)的地址,替換成我們自己的函數(shù)的地址。那么當調(diào)用者再次調(diào)用函數(shù)的時候,因為地址被我們替換。被調(diào)用的將是我們提供的HOOK函數(shù),而不是原來的函數(shù)。

那么以MessageBoxA為例,我們實際上來體驗一下IATHOOK的實現(xiàn)方式。

首先,我們需要一個目標程序,代碼如下:

然后我們來看一下HOOK后的效果:

正常情況下:

HOOK后:

?

接下來,我們將使用代碼實現(xiàn)IAT Hook,我這里采用的操作系統(tǒng)是Windows 10 20H2(19042.1288),集成開發(fā)環(huán)境采用的是Visual Studio 2017。


閱讀全文


??公眾號:極安御信安全研究院(即可獲得文章全部內(nèi)容)

「winds平臺」IATHook&原理與實現(xiàn)(4)的評論 (共 條)

分享到微博請遵守國家法律
保山市| 开封市| 柯坪县| 罗平县| 闽侯县| 方正县| 汕头市| 安乡县| 嘉祥县| 临海市| 宾川县| 且末县| 江北区| 和顺县| 收藏| 湛江市| 石河子市| 新昌县| 阿瓦提县| 陇南市| 丰台区| 襄汾县| 杭州市| 赣州市| 肇源县| 孝昌县| 龙岩市| 德庆县| 阿克陶县| 沂水县| 彭泽县| 固阳县| 阿坝| 桃江县| 临漳县| 平利县| 广东省| 灵川县| 西盟| 进贤县| 资阳市|