国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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)的評論 (共 條)

分享到微博請遵守國家法律
开鲁县| 屏东市| 大庆市| 万源市| 巴林右旗| 忻城县| 河曲县| 双柏县| 凉城县| 杂多县| 自贡市| 白朗县| 巩义市| 沾化县| 密云县| 临漳县| 游戏| 乐亭县| 色达县| 青神县| 正宁县| 龙里县| 剑河县| 莱阳市| 行唐县| 沁水县| 大田县| 长葛市| 高邮市| 海原县| 盐源县| 东城区| 贵港市| 凤山市| 淮阳县| 迁西县| 都匀市| 安阳市| 南丰县| 高碑店市| 阳新县|