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