關於應用程序加殼後,IAT鉤子失效問題的破解

IAT鉤子主要使用的IAT表進行API HOOK

加殼會使原有的導入表被加密,導致無法直接通過修改導入表來Hook API,如下圖, 使用UPX加殼後,計事本程序,的很多項導入表不見了.



此類軟件加殼後將導至IAT鉤子失效,導致無法完成相應的API HOOK

解決方法一, 強行搜索進行空間,進行比對,發現是自己所要鉤取的API地址進行替換(穩定性極差)

解決方法二 , 看官繼續往下看


UPX加殼後程序調用API的過程,看圖


看對應的地址:0x271128


看左下角數據的地址中的東西,有沒有感覺,這就像是一個地址列表.沒錯這個就是所有的API地址, 我把它叫做私有導入表


私有導入表的結構,就像是一個數據,裏面記錄着API函數的地址,每個地址佔一個DWORD,


即然爲私有導入表,意思就是說,替換掉這個私有導入表後,即實現了Hook


那麼下面看怎麼獲取私有導入表的起始位置

在數據列表中,一直向上滾動,看到的地址是 00271000


查看notepad的內存


看到沒有.段名爲"UPX0"的段起始位置,和剛查到的私有導入表的地址一致. 

即然一致,那說明,地址的對應關係就在這裏.


即方法二爲: 首先找到分析PE結構,尋找段"UPX0"的起始地址,通過遍歷,尋找,替換需要Hook的API地址,

發佈了46 篇原創文章 · 獲贊 7 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章