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