<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 網(wǎng)絡(luò)考試系統(tǒng)中防止U盤作弊方法研究

          網(wǎng)絡(luò)考試系統(tǒng)中防止U盤作弊方法研究

          作者: 時間:2011-05-10 來源:網(wǎng)絡(luò) 收藏

          3.3 鎖鍵盤設(shè)計
          鎖鍵盤模塊的執(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è)計中使用到了鉤子(Hook)技術(shù)。使用鍵盤鉤子截獲鍵盤消息,在鉤子函數(shù)中判斷鍵盤消息中的鍵是否需要屏蔽鍵,如果需要屏蔽鍵,則不將此消息發(fā)送到窗體,從而達到屏蔽鍵盤的目的。由于需要屏蔽的鍵中有Windows-Key,而使用普通的鍵盤鉤子不能捕捉到Windows-Key鍵。所以使用了底層鍵盤鉤子,即全局鍵盤鉤子。
            安裝鍵盤鉤子:
            [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, // 應(yīng)用程序?qū)嵗木浔?。標識包含lpfn所指的子程的DLL。
            int dwThreadId);
            其中:GlobalKeyboardProcDelegate是處理鍵盤鉤子截獲的鍵盤消息的代理函數(shù)。設(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)被設(shè)計成一個后臺運行系統(tǒng),運行后不顯示任何窗體,只在系統(tǒng)的托盤中顯示一個圖標,而且不提供右擊彈出菜單和雙擊顯示主程序窗體的功能。從而使考生不能直接終止本程序,實現(xiàn)終止保護。
            (2)進程保護
            采用了進程保護技術(shù),使得在Windows的任務(wù)管理器中無法終止本進程。考生在使用U盤前先終止本進程。
          (3)卸載保護
            系統(tǒng)在第一次運行時會自動在添加/刪除程序列表中找到自己的列表項,并將其隱藏起來,這樣本系統(tǒng)就無法從Windows中卸載。
          系統(tǒng)目前已經(jīng)運行在本校進行的“試點高校教育部分基礎(chǔ)課程統(tǒng)一”的客戶端上,取得了良好的效果。該系統(tǒng)不但能運行在客戶端上,也可以運行于各種無紙化考試系統(tǒng)的客戶端上。系統(tǒng)目前還有一些不足之處需要改進,如目前只是單機版,過程狀態(tài)數(shù)據(jù)沒有記錄,不利于監(jiān)考老師的集中管理,還有待于升級成版。
          參考文獻
          [1] 李英偉.USB2.0原理與工程開發(fā)(第2版)[M].北京:國防工業(yè)出版社,2007
          [2] 陳啟美,丁傳鎖.計算機USB接口技術(shù)[M]. 南京:南京大學(xué)出版社,2003.
          [3] 薛園園. USB應(yīng)用開發(fā)技術(shù)大全[M].北京: 人民郵電出版社,2007.
          [4] 肖踞雄,翁鐵成. USB技術(shù)及應(yīng)用設(shè)計[M].北京:清華大學(xué)出版社,2003.

          本文引用地址:http://www.ex-cimer.com/article/162102.htm

          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();