TP 是國(guó)內(nèi)騰訊游戲一款比較流行的驅(qū)動(dòng)級(jí)保護(hù)程序. 負(fù)責(zé)保護(hù)騰訊每款游戲不被修改破壞, 過(guò)TP保護(hù)與解除游戲驅(qū)動(dòng)保護(hù)教程就是為了哪些輔助的開發(fā)者過(guò)TP的教程,讓你的輔助免受異常順利過(guò)檢查,穩(wěn)定奔放的基本!
OD與CE無(wú)法進(jìn)行如以下操作:
無(wú)法附加進(jìn)程,
無(wú)法打開進(jìn)程,
游戲進(jìn)程被隱藏?zé)o法在工具中查看到,
內(nèi)存無(wú)法讀取代碼
內(nèi)存修改后游戲掉線
無(wú)法雙機(jī)進(jìn)行調(diào)試
出現(xiàn)SX非法模塊提示 `
其實(shí)以上說(shuō)的這么多限制 都是因?yàn)門P保護(hù)造成的.其實(shí)這些東西研究了很久后,發(fā)現(xiàn)其實(shí)就是黑色老大常說(shuō)的APIHOOK這方面. 7%32E1F)%
例如DNF的TP保護(hù)就是HOOK了以下幾個(gè)API函數(shù)來(lái)禁止上面剛才說(shuō)的那些:
NtOpenThread //這是TP防止調(diào)試器在它體內(nèi)創(chuàng)建線程
NtOpenProcess //這是TP防止OD等在進(jìn)程列表看到游戲進(jìn)程
KiAttachProcess //這是TP防止其他軟件附加它
NtReadVirtualMemory //這是TP防止別人讀取它的內(nèi)存
NtWriteVirtualMemory //這是TP防止別人在它的內(nèi)存里面亂寫亂畫
KDCOM.dll:KdReceivePacket //這是TP這兩個(gè)是COM串口的接受和發(fā)送數(shù)據(jù)
KDCOM.dll:KdSendPacket //這是TP主要用來(lái)方式別人雙機(jī)調(diào)試,TP使用了KdDisableDebugger來(lái)禁用雙機(jī)調(diào)試.
TP通過(guò)將以上這幾個(gè)API進(jìn)行HOOK后 來(lái)保護(hù)游戲, 看過(guò)獨(dú)立團(tuán)第四版本易語(yǔ)言輔助教程的人 應(yīng)該知道 以上的那幾個(gè)API函數(shù) 開頭是 Nt 的吧
Nt開頭的是ntdll.dll庫(kù)中的函數(shù),也正是黑色襯衣老大在第四版本易語(yǔ)言輔助教程中有一篇課程是講 SSDTHOOK與恢復(fù)這方面的.
那么TP保護(hù)它比較變態(tài),并對(duì)debugport進(jìn)行了瘋狂的清零操作甚至還包括EPROCESS+70\+74\+78等幾處位置處理的手段通常都是向64端口寫入FE導(dǎo)致計(jì)算機(jī)被重啟。
說(shuō)下以上關(guān)鍵的幾個(gè)APIHOOK:
1.KiAttachProcess 函數(shù)
2.NtReadVirtualMemory 內(nèi)存函數(shù)
3.NtWriteVirtualMemory 內(nèi)存函數(shù)
4.NtOpenThread 線程函數(shù)
5.NtOpenProcess 進(jìn)程函數(shù)
那么前3個(gè)函數(shù)是可以直接SSDT恢復(fù)的 第四版本易語(yǔ)言輔助教程老大講了如何恢復(fù)的 不明白的可以自己去看教程。
第4個(gè)函數(shù)是有監(jiān)視,如果直接恢復(fù)的話電腦會(huì)即刻重啟.(TP蠻變態(tài))
第5個(gè)函數(shù)和ring3有驅(qū)動(dòng)通信,直接恢復(fù)這個(gè)函數(shù)的話 游戲會(huì)在1分鐘內(nèi)彈出SX非法模塊提示.
既然我們現(xiàn)在知道了TP保護(hù)的保護(hù)特點(diǎn)和這幾個(gè)API分析后的結(jié)果.
接下來(lái)就是要做出相應(yīng)的解除TP保護(hù)(也就是這些APIHOOK)
梳理一下頭緒給出相應(yīng)的解決方案
1.首先直接恢復(fù) 第1、2、3處的SSDT表中的HOOK
2.繞過(guò)4、5處的HOOK 不采用直接恢復(fù)
3.將TP保護(hù)程序中的debugport清零的內(nèi)核線程干掉 停止該線程繼續(xù)運(yùn)行.
4.恢復(fù)硬件斷點(diǎn)
但是要有一個(gè)先后的邏輯順序
因?yàn)閮?nèi)核有一個(gè)線程負(fù)責(zé)監(jiān)視幾個(gè)地方,必須要先干掉它。
但是這個(gè)內(nèi)容我寫在了處理debugport清零的一起,也就是第3步。所以大家在照搬源碼的時(shí)候注意代碼執(zhí)行次序。
下面我們就開始寫解除TP保護(hù)的代碼,因?yàn)楸救讼矚gC++ 所以是c++編寫,如果是使用易語(yǔ)言的話 就自己翻譯過(guò)來(lái)吧
先從簡(jiǎn)單的工作講起,恢復(fù)1、2、3處的HOOK
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版