轉自bujin888
第一個版本
HShield反外掛方式應該向進程插入他們的反外掛鉤子 攔截我們做外掛的必要函數
我當時突破方法是ROOKIT技術,隱藏進程!
第二個版本
HShield利用消息全局鉤子插入他們的反外掛鉤子 ,我是攔截了LOADLIBARY到
自己的處理函數拒絕了他家反外掛鉤子進入
第三個版本
他家在LOADLIBARY上做了處理,但他們忽律了一個東西!那就是LOADLIBARYEX函數
第四個版本
也就是現在這個版本!只能用變態來形容 一開始我用HOOK LOADLIBARYEX ,
但是好多API仍然不能使用 我一開始以爲LOADLIBARYEX 也被處理過了
於是我又攔截 RtlInitUnicodeString 因爲每一個文件在底層傳輸字符處理中
必須用到這個函數,但是發現HShield的DLL是全被攔截了,但getpixel等仍然沒有作用,
通過調試發現,ring3層代碼完全沒有被修改,那隻能說明進了sysenter的ring0層!
沒辦法,也只好自己寫驅動對抗了,於是根據DDK資料裏的mirro.sys
重新寫了我所需要的外掛函數驅動win32GDI.sys!完成了這次的反外掛的突破!
問題:
win32GDI.sys是參考DDK驅動裏的mirror驅動改寫的,屬於虛擬顯卡的的方式!他有幾個缺點
一:不支持 directx遊戲
二:消耗的CPU比較大!
看了驅動開發網的資料 hook int 2e hook sysenter 和 國外rootkit方式中的另類
hook sysenter 仍然不能根本解決問題!
因爲如果 我HOOK sysenter 然後啓動遊戲 遊戲的驅動HOOK 又會把接口接管過去
我如果恢復接口,遊戲就會自動退出! 還有通過直接在原來sysenter地址裏面寫跳
轉代碼來實現HOOK sysenter我感覺也 沒什麼用!因爲sysenter已經被攔截了,根本
運行不到我所寫跳轉的位置,就算運行到了又能如何呢?我總不能自己實現sysenter功
能吧,如果能自己實現sysenter功能!我還不如直接ring3層hook kisystemcall
目前我有新的想法 就是增加服務ID 就是增加系統的服務ID 假如getpixel最後調用
的系統服務器ID爲X 我們增加個系統的服務ID Y,讓Y的ID跳到X的ID裏執行,從而欺騙
反外掛系統!不知道大家有什麼更好的辦法
語文一直不及格!所以語言組織很差!大家見諒