|
網(wǎng)絡(luò)技術(shù)是從1990年代中期發(fā)展起來(lái)的新技術(shù),它把互聯(lián)網(wǎng)上分散的資源融為有機(jī)整體,實(shí)現(xiàn)資源的全面共享和有機(jī)協(xié)作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計(jì)算機(jī)、存儲(chǔ)資源、數(shù)據(jù)資源、信息資源、知識(shí)資源、專家資源、大型數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)、傳感器等。 當(dāng)前的互聯(lián)網(wǎng)只限于信息共享,網(wǎng)絡(luò)則被認(rèn)為是互聯(lián)網(wǎng)發(fā)展的第三階段。 Windows消息鉤子一般都很熟悉了。它的用處很多,耳熟能詳?shù)木陀小面I盤鉤子獲取目標(biāo)進(jìn)程的鍵盤輸入,從而獲得各類密碼以達(dá)到不可告人的目的。朋友想讓他的軟件不被別人的全局鉤子監(jiān)視,有沒(méi)有辦法實(shí)現(xiàn)呢?答案是肯定的,不過(guò)缺陷也是有的。 首先簡(jiǎn)單看看全局鉤子如何注入別的進(jìn)程。 消息鉤子是由Win32子系統(tǒng)提供,其核心部分通過(guò)NtUserSetWindowsHookEx為用戶提供了設(shè)置消息鉤子的系統(tǒng)服務(wù),用戶通過(guò)它注冊(cè)全局鉤子。當(dāng)系統(tǒng)獲取某些事件,比如用戶按鍵,鍵盤driver將掃描碼等傳入win32k的KeyEvent處理函數(shù),處理函數(shù)判斷有無(wú)相應(yīng)hook,有則callhook。此時(shí),系統(tǒng)取得Hook對(duì)象信息,若目標(biāo)進(jìn)程沒(méi)有裝載對(duì)應(yīng)的Dll,則裝載之(利用KeUserModeCallback“調(diào)用”用戶例程,它與Apc調(diào)用不同,它是仿制中斷返回環(huán)境,其調(diào)用是“立即”性質(zhì)的)。 進(jìn)入用戶態(tài)的KiUserCallbackDispatcher后,KiUserCallbackDispatcher根據(jù)傳遞的數(shù)據(jù)獲取所需調(diào)用的函數(shù)、參數(shù)等,隨后調(diào)用。針對(duì)上面的例子,為裝載hook dll,得到調(diào)用的是LoadLibraryExW,隨后進(jìn)入LdrLoadDll,裝載完畢后返回,后面的步驟就不敘述了。 從上面的討論我們可以得出一個(gè)最簡(jiǎn)單的防侵入方案:在加載hook dll之前hook相應(yīng)api使得加載失敗,不過(guò)有一個(gè)缺陷:系統(tǒng)并不會(huì)因?yàn)橐淮蔚氖《艞墸看斡邢a(chǎn)生欲call hook時(shí)系統(tǒng)都會(huì)試圖在你的進(jìn)程加載dll,這對(duì)于性能有些微影響,不過(guò)應(yīng)該感覺(jué)不到。剩下一個(gè)問(wèn)題就是不是所有的LoadLibraryExW都應(yīng)攔截,這個(gè)容易解決,比如判斷返回地址。下面給出一個(gè)例子片斷,可以添加一些判斷使得某些允許加載的hook dll被加載。 這里hook api使用了微軟的detours庫(kù),可自行修改。 以下內(nèi)容為程序代碼: typedef HMODULE (__stdcall *LOADLIB)( extern "C" { ULONG user32 = 0; HMODULE __stdcall Mine_LoadLibraryExW( _asm mov eax, [ebp+4] if ((user32 & 0xFFFF0000) == (addr & 0xFFFF0000)) HMODULE res = (LOADLIB(Real_LoadLibraryExW)) ( return res; BOOL ProcessAttach() BOOL ProcessDetach() CAnti_HookApp::CAnti_HookApp() //在使用用戶界面服務(wù)前調(diào)用ProcessAttach 網(wǎng)絡(luò)的神奇作用吸引著越來(lái)越多的用戶加入其中,正因如此,網(wǎng)絡(luò)的承受能力也面臨著越來(lái)越嚴(yán)峻的考驗(yàn)―從硬件上、軟件上、所用標(biāo)準(zhǔn)上......,各項(xiàng)技術(shù)都需要適時(shí)應(yīng)勢(shì),對(duì)應(yīng)發(fā)展,這正是網(wǎng)絡(luò)迅速走向進(jìn)步的催化劑。 |
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!