对极域64位禁止终止进程、键盘锁定的分析
禁止終止進程
篇首圖,讓人心臟驟停的窗口。使用任務管理器結(jié)束極域時幾乎是必然出現(xiàn)的。原理嘛,可以看破解極域電子教室,老師再也控制不了我了!極域電子教室防控制。
通過檢查,極域使用 TDProcHook.sys 來 HOOK 住 NtTerminateProcess ,如果要結(jié)束的是 StudentMain.exe ,則返回 STATUS_ACCESS_DENIED 拒絕訪問。
但是這個驅(qū)動比較老,僅僅能在32位的Win7/XP上運行,64位Win7及Win8/10都會失效,這說明,64位系統(tǒng)或Win8/10系統(tǒng)都可以用任務管理器結(jié)束。
以上這段話,基本上沒有問題。可是,越來越多機房使用64位系統(tǒng),也沒見有人說可以直接結(jié)束。畢竟極域用來控制學生,肯定不會這么容易就被結(jié)束。
有一次,我用火絨劍研究進程加載的模塊,意外發(fā)現(xiàn)了一個文件LibTDProcHook64.dll,路徑指向極域目錄。顧名思義,是64位進程hook。我們的進程無法終止極域,都是它惹的禍。
經(jīng)測試,我們在程序中手動卸載它,再調(diào)用TerminateProcess(),即可成功結(jié)束極域。
//卸載極域64位進程終止hook HMODULE hook=GetModuleHandle("LibTDProcHook64.dll"); FreeModule(hook); //終止極域 HANDLE handle = OpenProcess(PROCESS_TERMINATE, FALSE, 6789/*極域PID*/); TerminateProcess(handle, 0);后來發(fā)現(xiàn),極域有個ProcHelper64.exe,也是拒絕結(jié)束的,顧名思義,就是進程助手64位。
鍵盤鎖
這個就不介紹了,懂的都懂。
上面文章中提到:
然后,設置一些鉤子,屏蔽鍵盤按鍵:
最后,調(diào)用驅(qū)動HOOK住底層鍵盤,防止你按 Ctrl+Alt+Del (真惡心)
鍵盤鎖定,極域采用雙重鎖。極域的WH_KEYBOARD_LL鉤子負責屏蔽大多數(shù)按鍵。我們可以采用新線程循環(huán)掛鉤,使自己的鉤子位于極域鉤子上,然后在自己鉤子函數(shù)里分發(fā)事件(直接返回FALSE是個比較好的解決辦法),實現(xiàn)解鍵盤鎖。
HHOOK kbdHook;LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam){return FALSE; } DWORD WINAPI KeyHookThreadProc(LPVOID lpParameter) {while (true) {kbdHook = (HHOOK)SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)HookProc, GetModuleHandle(NULL), 0);Sleep(25);UnhookWindowsHookEx(kbdHook);}return 0; }其實除JiyuTrainer(直接不讓極域鎖)之外的所有能解極域鍵盤鎖的軟件,都用了這個方法。例如,F**kTeacher掛了四個鉤子(其中兩個沒有用),再見極域循環(huán)掛鉤還不解鎖(幾秒鐘就有成百上千個鉤子,太暴力了)。實際上,1個就夠了。
但是這個鉤子沒法屏蔽Alt+Ctrl+Delete,極域就弄了個底層的驅(qū)動。這個驅(qū)動無法通過sc命令停止和卸載:
C:\windows\system32>sc stop TDKeybd [SC] ControlService 失敗 1052:請求的控件對此服務無效。就連PCHunter都干不掉它(惡心到我了)。因此使用以上解鍵盤鎖方法,無法解鎖Alt+Ctrl+Delete。
另外,極域的WH_KEYBOARD_LL鉤子并未屏蔽Ctrl、Shift、Alt、B、C,Win按鍵存疑。應該是有意為之。
總結(jié)
以上是生活随笔為你收集整理的对极域64位禁止终止进程、键盘锁定的分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue 开发规范
- 下一篇: config system丢失