屏幕鎖定系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
0 引 言
隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)通信技術(shù)的不斷發(fā)展,計(jì)算機(jī)的應(yīng)用領(lǐng)域也在不斷擴(kuò)大。目前,計(jì)算機(jī)早已成功進(jìn)入了學(xué)校、公司、政府部門乃至許多家庭,它在人們的工作生活中扮演著越來(lái)越重要的角色。面對(duì)一個(gè)擁有一定規(guī)模計(jì)算機(jī)的應(yīng)用場(chǎng)所,計(jì)算機(jī)的集中統(tǒng)一管理以及高效安全使用問(wèn)題便成了日常管理與維護(hù)過(guò)程中的當(dāng)務(wù)之急。因此人們對(duì)于能夠?qū)崿F(xiàn)實(shí)時(shí)監(jiān)督、實(shí)時(shí)記錄用戶違規(guī)行為的監(jiān)控性工具軟件的需求也越來(lái)越迫切。為了對(duì)人們使用計(jì)算機(jī)的行為進(jìn)行控制,防止他們做一些與工作學(xué)習(xí)無(wú)關(guān)或有損計(jì)算機(jī)安全的事情,實(shí)現(xiàn)實(shí)時(shí)監(jiān)督及事后日志記錄分析,很有必要開(kāi)發(fā)這樣一種監(jiān)控性軟件,即“屏幕鎖定系統(tǒng)”。該軟件可監(jiān)控、記錄、控制局域網(wǎng)內(nèi)其他計(jì)算機(jī)的使用行為,能夠有效地提高管理員對(duì)局域網(wǎng)的監(jiān)控管理能力,實(shí)現(xiàn)計(jì)算機(jī)的高效合理使用。
1 功能描述
屏幕鎖定系統(tǒng)是一種可以控制局域網(wǎng)主機(jī)行為的監(jiān)控性管理軟件。其功能描述如下:當(dāng)客戶端觸發(fā)了管理員所指定的“禁止進(jìn)程”后,客戶端的計(jì)算機(jī)將會(huì)被鎖定,只有等待管理員解鎖后方能使用計(jì)算機(jī)。即使客戶端關(guān)機(jī)后重啟,若繼續(xù)嘗試一些特殊的應(yīng)用程序,則機(jī)器仍然會(huì)被鎖定。一旦機(jī)器被鎖定,這臺(tái)計(jì)算機(jī)就會(huì)向管理控制臺(tái)發(fā)送這臺(tái)機(jī)器的IP地址、主機(jī)名、觸發(fā)進(jìn)程的時(shí)間、觸發(fā)的禁止進(jìn)程名等相關(guān)信息,達(dá)到管理員事后跟蹤一些違規(guī)操作的目的。管理員也可設(shè)置“關(guān)閉鎖定”功能,這樣客戶端就可隨意支配計(jì)算機(jī)。為了實(shí)現(xiàn)其監(jiān)控并鎖定的任務(wù),系統(tǒng)還應(yīng)能抵御惡意用戶的攻擊,如刪除客戶端軟件等。
2 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
根據(jù)系統(tǒng)的功能描述,程序分為兩大部分:服務(wù)器端程序和客戶端程序。服務(wù)器端程序的功能包括設(shè)置解鎖密碼,設(shè)置禁止進(jìn)程,獲得監(jiān)控信息,設(shè)置關(guān)閉鎖定,制作任務(wù)欄圖標(biāo)等。客戶端程序的功能包括接收解鎖密碼及禁止進(jìn)程,進(jìn)程查找匹配,鎖定屏幕,防止惡意刪除等。屏幕鎖定系統(tǒng)的功能結(jié)構(gòu),如圖1所示。
2.1 服務(wù)器端實(shí)現(xiàn)
服務(wù)器端軟件主要負(fù)責(zé)對(duì)客戶端進(jìn)行控制、管理及查看監(jiān)控信息等。服務(wù)器端的主界面如圖2所示。
2.2 客戶端實(shí)現(xiàn)
當(dāng)客戶端觸發(fā)了服務(wù)器端指定的禁止進(jìn)程后,其屏幕就會(huì)被鎖定。鎖定后的界面如圖3所示。一旦機(jī)器被鎖定,客戶端就會(huì)向服務(wù)器端傳遞諸如“主機(jī)名、IP地址、觸發(fā)時(shí)間、觸發(fā)的禁止進(jìn)程”等信息,并且只有請(qǐng)求管理員解鎖,方能繼續(xù)使用計(jì)算機(jī)。
3 關(guān)鍵技術(shù)
3.1 WinSoek通信
客戶端與服務(wù)器端的正常通信,是屏幕鎖定系統(tǒng)賴以存在的基礎(chǔ)。該系統(tǒng)借助于WinSock實(shí)現(xiàn)。VB中提供了WinSock控件。WinSoek控件解決了以往應(yīng)用VB編程時(shí)應(yīng)用程序之間無(wú)法實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)通信的難題。WinSock使用的TCP協(xié)議和UDP協(xié)議,允許建立并保持到遠(yuǎn)程計(jì)算機(jī)上的連接,且可以在連接結(jié)束之前實(shí)時(shí)進(jìn)行數(shù)據(jù)交換。用戶僅通過(guò)設(shè)置屬性并借助事件處理就能夠輕而易舉地連接到一個(gè)遠(yuǎn)程計(jì)算機(jī)上,而且只用兩個(gè)命令就可以實(shí)現(xiàn)數(shù)據(jù)交換。
在傳送數(shù)據(jù)時(shí),需要先設(shè)定客戶機(jī)的LocalPort屬性,服務(wù)器則只需要把RemoteHost屬性設(shè)定為機(jī)器所在網(wǎng)段的廣播地址,并設(shè)定與客戶機(jī) LocalPott屬性相同的端口地址,借助SendData方法開(kāi)始發(fā)送消息??蛻魴C(jī)則在GetData事件中通過(guò)DataArrival事件分離出發(fā)送的信息。
3.2 進(jìn)程控制機(jī)制
進(jìn)程控制機(jī)制實(shí)現(xiàn)客戶端的進(jìn)程查找及匹配的過(guò)程。進(jìn)程控制是指查找當(dāng)前系統(tǒng)正在運(yùn)行的所有進(jìn)程,并比較其與禁止進(jìn)程列表,若匹配成功則殺掉正在運(yùn)行的禁止進(jìn)程。實(shí)現(xiàn)過(guò)程為:調(diào)用系統(tǒng)API函數(shù)Create-Toolhelp32Snapshot查找客戶機(jī)正在運(yùn)行的進(jìn)程,并使用時(shí)鐘實(shí)時(shí)刷新,將其記錄到下拉框list1中;從禁止進(jìn)程文件中讀取進(jìn)程并記錄到下拉框list2中;使用兩個(gè)for循環(huán)比較list1和list2中進(jìn)程是否相同,如果相同,就殺掉正在運(yùn)行的禁止進(jìn)程,并調(diào)用屏幕鎖定窗體。實(shí)現(xiàn)流程如圖4所示。
3.3 屏幕鎖定機(jī)制
屏幕鎖定機(jī)制實(shí)現(xiàn)客戶端觸發(fā)了禁止進(jìn)程后的屏幕鎖定功能。屏幕鎖定的過(guò)程包含以下任務(wù):屏蔽系統(tǒng)熱鍵,使鎖定窗體處于最上方,鎖定時(shí)隱藏任務(wù)條,解鎖后顯示任務(wù)條等過(guò)程。屏幕鎖定機(jī)制的主要理論依據(jù)是掛鉤API技術(shù)(HookAPI)。鉤子 (Hook)是Windows消息處理機(jī)制中的一個(gè)監(jiān)視點(diǎn),應(yīng)用程序可以在這里安裝一個(gè)子程序(鉤子函數(shù)),以監(jiān)視指定窗口某種類型的消息,所監(jiān)視的窗口可以是其他進(jìn)程創(chuàng)建的。當(dāng)消息到達(dá)后,在目標(biāo)窗口處理函數(shù)處理之前,鉤子機(jī)制允許應(yīng)用程序截獲它進(jìn)行處理。而HookAPI就是指截獲特定的進(jìn)程或系統(tǒng)對(duì)某個(gè)API函數(shù)的調(diào)用,使得API的執(zhí)行流程轉(zhuǎn)向指定的代碼。鉤子的安裝與卸載是通過(guò)SetWindow-sHookEx函數(shù),以動(dòng)態(tài)鏈接庫(kù)的方式安裝到系統(tǒng)中的。
屏幕鎖定的實(shí)現(xiàn)過(guò)程為:調(diào)用API函數(shù)SetWin-dowsHookExA和LowLevelKeyboardProc可以屏蔽熱鍵;調(diào)用函數(shù) SetWindowPos(HWND hWnd,HWND hWndlnsertAfter,int x,int y,int cx,int cy,UINT uFlags),并為其賦予不同的實(shí)參,就可實(shí)現(xiàn)窗體處于最上方、隱藏或顯示任務(wù)條的功能。實(shí)現(xiàn)流程如圖5所示。
4 系統(tǒng)特點(diǎn)
該系統(tǒng)的特點(diǎn)體現(xiàn)為以下幾點(diǎn):
(1)不同于單機(jī)版的的屏幕鎖定系統(tǒng),本系統(tǒng)適用于在局域網(wǎng)中使用,它首次運(yùn)行后即可開(kāi)機(jī)自動(dòng)運(yùn)行,實(shí)時(shí)監(jiān)控;
(2)服務(wù)器端和客戶端均可以靈活查找自己所在的機(jī)器網(wǎng)段,并通過(guò)設(shè)置相應(yīng)端口實(shí)現(xiàn)一對(duì)多通信,不會(huì)因機(jī)器網(wǎng)段的變化而修改程序,具有很強(qiáng)的自適應(yīng)能力;
(3)服務(wù)器端解鎖密碼的設(shè)置非常靈活,不必清楚上次的密碼,很適合于多個(gè)管理員的操作;
(4)“禁止進(jìn)程”的設(shè)定非常方便,有利于不同層次人員的使用;
(5)服務(wù)器端解除監(jiān)控的設(shè)置,使客戶端能靈活支配計(jì)算機(jī),符合人性化管理方案;
(6)客戶端軟件具有很強(qiáng)的自抵御能力,能抵擋惡意用戶的強(qiáng)制刪除。
5 結(jié) 語(yǔ)
計(jì)算機(jī)在人們的工作生活中扮演著越來(lái)越重要的角色,計(jì)算機(jī)的高效率使用已成了日常管理中亟待解決的問(wèn)題。這里詳細(xì)論述了屏幕鎖定系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。通過(guò)此軟件,教師可以定制學(xué)生上機(jī)時(shí)的操作范圍,從而避免其偷玩游戲和上網(wǎng)聊天等不良現(xiàn)象,這對(duì)教學(xué)質(zhì)量的提高起著一定的正面作用。鑒于該軟件的特點(diǎn),它也可適用于公司、網(wǎng)吧中的主機(jī)監(jiān)控及管理,具有很好的應(yīng)用前景。