當前位置:首頁 > 工業(yè)控制 > 工業(yè)控制
[導讀] 目前越來越多的高校、教學培訓機構和各種社會考試,采用了網(wǎng)絡在線考試等網(wǎng)絡考試形式的無紙化考試。然而許多考試系統(tǒng)自身尚不具備防止考生使用U盤等移動存儲設備作弊的功能。本文所涉及的系統(tǒng)能完善這樣的功能,考生一旦插入了U盤或其他移動存儲設備后,系統(tǒng)立即顯示一個特殊的界面鎖住屏幕,禁止一切可能的鍵盤操作。這種狀態(tài)將一直保持到監(jiān)考老師在該考生的考試機上解鎖為止。

無紙化考試系統(tǒng)的模式通常有單機版模式、C/S模式和B/S模式三種,無認哪種模式均要有客戶端,而考生必須在客戶端上完成其考試內(nèi)容。目前USB存儲設備特別是U盤的存儲容量大、存取速度快、體積小、價格低廉,普及程度也越來越高,在考試中使用U盤作弊現(xiàn)象時有發(fā)生。由于考生在考試過程中使用U盤的隱蔽性極高,監(jiān)考老師很難發(fā)現(xiàn)。目前大多數(shù)考試系統(tǒng)的客戶端并沒有對USB端口進行管理的功能。“網(wǎng)絡考試客戶端USB端口監(jiān)視系統(tǒng)”(后文簡稱系統(tǒng))就是實現(xiàn)在考試過程對考試客戶端的USB端口進行全程監(jiān)視,一旦客戶端有USB設備接入,系統(tǒng)即刻鎖屏、封鎖鍵盤,發(fā)出使用USB設備的提示警告。本系統(tǒng)經(jīng)過我校進行的“試點高校網(wǎng)絡教育部分基礎課程統(tǒng)一考試”多次使用實驗表明,該系統(tǒng)在考試過程中能有效地監(jiān)控USB端口,杜絕了考生使用U盤的現(xiàn)象,從而保證考試的公正、公平和權威性。
1 系統(tǒng)功能要求
    (1)系統(tǒng)要能識別從計算機任何一個USB端口接入的移動存儲設備,如U盤等設備。對于非存儲類的USB設備,如:USB接口的打印機、掃描儀等,不能誤判作移動存儲設備。
    (2)鎖屏。一旦有U盤接入,系統(tǒng)能立即響應,并做出相應的處理。用一個無標題、無邊框、無關閉按鈕、最大化顯示的窗體覆蓋在所有窗體和任務欄的前面實現(xiàn)鎖屏。
 (3)封鎖鍵盤。封鎖鍵盤就是使用戶鍵盤上的鍵失效,尤其是一些特殊功能組合鍵,如:Ctrl-Alt-Delete、Alt-Tab、Alt-Esc、Alt-F4、Windows-Key。
 (4)關閉任務欄和開始菜單。
 (5)封鎖狀態(tài)解鎖。系統(tǒng)有提供給系統(tǒng)管理員或監(jiān)考人員解鎖的功能,解鎖時要輸入特定的解鎖密碼。
 (6)解鎖密碼管理功能。系統(tǒng)提供由系統(tǒng)管理員使用的密碼維護、修改、重置和忘記密碼的處理功能。
2 系統(tǒng)總體設計
2.1 系統(tǒng)組成

 系統(tǒng)主要由USB端口監(jiān)視系統(tǒng)和密碼維護系統(tǒng)兩部分組成。其組成結(jié)構如圖1所示。

2.2 USB端口實時監(jiān)視系統(tǒng)組成結(jié)構
    USB端口實時監(jiān)視系統(tǒng)由核心模塊、USB端口監(jiān)視模塊、屏幕、鍵盤加鎖模塊、鍵盤解鎖模塊、記錄/讀取系統(tǒng)USB使用狀態(tài)模塊、密碼解鎖處理模塊和重啟處理模塊組成。其組織結(jié)構如圖2所示。

2.3 密碼維護系統(tǒng)組成結(jié)構
    密碼維護系統(tǒng)由密碼修改和使用初始密碼兩部分組成。如圖3所示。

    密碼修改提供給管理員修改維護解鎖密碼。遺忘解鎖密碼時,先使用初始密碼功能將解鎖密碼設置為初始密碼,然后再修改成指定密碼。
    該系統(tǒng)為一個相對獨立的子系統(tǒng),由系統(tǒng)管理員掌管使用。
3 USB端口監(jiān)視系統(tǒng)設計
    為了不和考試系統(tǒng)爭搶資源,系統(tǒng)被設計成后臺運行方式,以中斷方式獲取機器USB端口狀態(tài)變化。采用進程保護技術進行系統(tǒng)自我保護,使系統(tǒng)在運行時不被考生強行終止,提高了系統(tǒng)的安全性。當考生在考試過程中插入U盤時,系統(tǒng)自動彈出鎖屏窗體,并在窗體中顯示考生已使用U盤的提示信息。鎖住鍵盤,記錄U盤的狀態(tài)信息,即使考生撥掉U盤,系統(tǒng)自鎖也不撤消。若考生用RESET開關強行重啟機器或強行關機后再開機,當Windows系統(tǒng)啟動完成后,系統(tǒng)仍然處于自鎖狀態(tài)。只有當監(jiān)考老師用解鎖命令和解鎖密碼解鎖后,系統(tǒng)才恢復到正常狀態(tài)。
3.1 USB端口監(jiān)視模塊設計
    USB端口監(jiān)視模塊是系統(tǒng)的核心模塊之一,也是系統(tǒng)的重要模塊。設計流程如圖4所示。

    系統(tǒng)運行后,模塊即進入工作狀態(tài),為了盡量少占用系統(tǒng)資源,模塊以中斷方式獲取機器USB端口狀態(tài)變化,一旦發(fā)現(xiàn)端口接入USB移動存儲設備隨即進行處理。
    當發(fā)現(xiàn)端口有USB設備接入后,隨即讀取此設備的設備類型特征碼。根據(jù)其設備類型特征碼判斷此設備是否是USB移動存儲設備。如果是移動存儲設備,則調(diào)用其后續(xù)模塊。否則,不做處理。
3.2 鎖屏設計
    鎖屏模塊是使系統(tǒng)呈現(xiàn)在考生面前的模塊。設計流程如圖5所示。

    模塊被調(diào)用后,首先隱藏任務欄,關閉開始菜單,然后以白色、無邊框、無標題欄、無關窗體控制按鈕的窗體形式顯示在所有窗體的最前面,遮蓋住Windows的任務欄,并在窗體中央顯示“正在使用USB設備... 系統(tǒng)自鎖。請與監(jiān)考老師聯(lián)系”字樣,提示考生由于插入了U盤從而系統(tǒng)自鎖了。
3.3 鎖鍵盤設計
    鎖鍵盤模塊的執(zhí)行結(jié)果呈現(xiàn)在考生面前的是鍵盤處于失效。本模塊被調(diào)用后,將封鎖鍵盤上的所有字母鍵、功能鍵和組合鍵,唯一開放的鍵是F12鍵,是輸入解鎖密碼的入口鍵。
    其功能是:
    (1)封鎖鍵盤上的所有單鍵,只留F12鍵。
  (2)封鎖Ctrl-Alt-Delete組合鍵,禁止打開Windows任務管理器。
  (3)封鎖Windows-Key(微軟鍵),禁止打開開始菜單。
  (4)封鎖Alt-F4組合鍵,禁止用此鍵關閉本程序。
  (5)封鎖Alt-Tab、Alt-Esc組合鍵,禁止切換任務窗體。
  在封鎖鍵盤模塊設計中使用到了鉤子(Hook)技術。系統(tǒng)使用鍵盤鉤子截獲鍵盤消息,在鉤子函數(shù)中判斷鍵盤消息中的鍵是否需要屏蔽鍵,如果需要屏蔽鍵,則不將此消息發(fā)送到窗體,從而達到屏蔽鍵盤的目的。由于系統(tǒng)需要屏蔽的鍵中有Windows-Key,而使用普通的鍵盤鉤子不能捕捉到Windows-Key鍵。所以系統(tǒng)使用了底層鍵盤鉤子,即全局鍵盤鉤子。
  安裝鍵盤鉤子:
  [DllImport("user32", EntryPoint = "SetWindowsHookExA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
  public static extern int SetWindowsHookEx(int idHook,   // 鉤子的類型,即其處理的消息類型。
  GlobalKeyboardProcDelegate lpfn, // 如果dwThreadId參數(shù)為0 或是一個由別的進程創(chuàng)建的線程的標識,lpfn必須指向DLL中的鉤子子程。
  int hMod, // 應用程序?qū)嵗木浔?。標識包含lpfn所指的子程的DLL。
  int dwThreadId);
     其中:GlobalKeyboardProcDelegate是處理鍵盤鉤子截獲的鍵盤消息的代理函數(shù)。設計如下:
    public int GlobalKeyboardProc(int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam)
    {
        bool keyEven = false;
             switch (wParam)
             {
             case WM_KEYDOWN:
             case WM_KEYUP:
             case WM_SYSKEYDOWN:
             case WM_SYSKEYUP:
             keyEven = (((lParam.vkCode == 0x09) && (lParam.
        flags == 0x20)) |  // Alt+Tab
             ((lParam.vkCode == 0x1B) && (lParam.flags ==
            0x20)) |  // Alt+Esc
             ((lParam.vkCode == 0x1B) && (lParam.flags ==
            0x00)) |  // Ctrl+Esc
             ((lParam.vkCode == 0x5B) && (lParam.flags ==
            0x01)) |  // Left Windows Key
             ((lParam.vkCode == 0x5C) && (lParam.flags ==
            0x01)) |  // Right Windows Key
             ((lParam.vkCode == 0x73) && (lParam.flags ==
            0x20)) |  // Alt+F4
                 );
             break;
         }
         if (keyEven == true)
         {
             return 1;
         }
         else
         {
         return CallNextHookEx(0, nCode, wParam, ref lParam);
         }
     }
     卸載鍵盤鉤子:
     [DllImport("user32", EntryPoint = "UnhookWindowsHookEx", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
  public static extern int UnhookWindowsHookEx(int hHook);
     轉(zhuǎn)到下一個鉤子:
    [DllImport("user32",EntryPoint="CallNextHookEx", CharSet=
CharSet.Ansi, SetLastError=true,ExactSpelling= true)]
    public static extern int CallNextHookEx(int hHook, int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam);
4 系統(tǒng)自身保護及運行
    由于考生在考試過程中的作弊現(xiàn)象時有發(fā)生,因此監(jiān)考和作弊考生是一對不可避免的矛盾,相互存在著一
定斗智斗勇現(xiàn)象。系統(tǒng)在一定程度上也充當了監(jiān)考的角色,因此它就需要具有一定的自身保護能力,而不被考生終止運行。系統(tǒng)采用如下幾種保護:
    (1)用戶終止保護
  系統(tǒng)被設計成一個后臺運行系統(tǒng),運行后不顯示任何窗體,只在系統(tǒng)的托盤中顯示一個圖標,而且不提供右擊彈出菜單和雙擊顯示主程序窗體的功能。從而使考生不能直接終止本程序,實現(xiàn)終止保護。
  (2)進程保護
  采用了進程保護技術,使得在Windows的任務管理器中無法終止本進程。防止考生在使用U盤前先終止本進程。
    (3)卸載保護
  系統(tǒng)在第一次運行時會自動在添加/刪除程序列表中找到自己的列表項,并將其隱藏起來,這樣本系統(tǒng)就無法從Windows中卸載。
    系統(tǒng)目前已經(jīng)運行在本校進行的“試點高校網(wǎng)絡教育部分基礎課程統(tǒng)一考試”的客戶端上,取得了良好的效果。該系統(tǒng)不但能運行在網(wǎng)絡考試客戶端上,也可以運行于各種無紙化考試系統(tǒng)的客戶端上。系統(tǒng)目前還有一些不足之處需要改進,如目前只是單機版,過程狀態(tài)數(shù)據(jù)沒有記錄,不利于監(jiān)考老師的集中管理,還有待于升級成網(wǎng)絡版。
參考文獻
[1] 李英偉.USB2.0原理與工程開發(fā)(第2版)[M].北京:國防工業(yè)出版社,2007
[2] 陳啟美,丁傳鎖.計算機USB接口技術[M]. 南京:南京大學出版社,2003.
[3] 薛園園. USB應用開發(fā)技術大全[M].北京: 人民郵電出版社,2007.
[4] 肖踞雄,翁鐵成. USB技術及應用設計[M].北京:清華大學出版社,2003. 

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉