關(guān)于LOL最新過(guò)TP保護(hù)過(guò)CE反調(diào)試的原理
看了論壇的大神發(fā)的精品教程,覺(jué)得一點(diǎn)用都沒(méi)有,原理都不敢說(shuō)的,今天我就來(lái)給你們說(shuō)說(shuō)原理。
t1.png (412.01 KB, 下載次數(shù): 323)
下載附件
保存到相冊(cè)
2020-2-19 12:56 上傳
1:這個(gè)是我們沒(méi)過(guò)檢測(cè)的,這個(gè)時(shí)候ce附加會(huì)出現(xiàn)調(diào)速器無(wú)法附加的問(wèn)題。。
t2.png (105.44 KB, 下載次數(shù): 311)
下載附件
保存到相冊(cè)
2020-2-19 12:57 上傳
2:打開(kāi)PCHunter,選應(yīng)用層鉤子,找到游戲進(jìn)程,選檢測(cè),然后等一下,找到0x00000000773F9879(上面圖片已經(jīng)標(biāo)出來(lái)了),這個(gè)就就是騰訊下的檢測(cè)鉤子,把這個(gè)恢復(fù)了就可以ce調(diào)試,和注入了。
我們可以用PCHunter自帶的恢復(fù)功能恢復(fù),也可以自己寫(xiě)一段程序來(lái)恢復(fù)(以下是我用vs寫(xiě)的一段恢復(fù)代碼)
DWORD pid;
GetWindowThreadProcessId(::FindWindow(NULL, "League of Legends (TM) Client"), &pid);
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, NULL, pid);
PDWORD lpflOldProtect = 0;
BYTE lpBuffer[] = { 0x8B, 0xFF, 0x55, 0x8B, 0xEC };//導(dǎo)致ce無(wú)法附加和注入的hook的地方:0x00000000773F9879->_(E9 E2 90 B6 9A)(8B FF 55 8B EC)
DWORD lpBaseAddress = 0x773F9879;
for (int i = 0; i < 5; i++)
{
WriteProcessMemory(hProcess, (LPVOID)lpBaseAddress, &lpBuffer, 1, NULL);
lpBaseAddress++;
}
就是這么簡(jiǎn)單。。
軟件下載地址:
游客,如果您要查看本帖隱藏內(nèi)容請(qǐng) 回復(fù)
|