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

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

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

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

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

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

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

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

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

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

關(guān)鍵字: 阿維塔 塞力斯 華為

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

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

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

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

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

關(guān)鍵字: 騰訊 編碼器 CPU

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

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

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

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

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

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

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

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

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

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉