亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        擊鍵特征數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)*

        2015-11-08 03:57:30
        新技術(shù)新工藝 2015年1期
        關(guān)鍵詞:鉤子調(diào)用持續(xù)時(shí)間

        李 艷

        (西安職業(yè)技術(shù)學(xué)院,陜西 西安710077)

        隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,信息安全顯得日益重要。通常身份認(rèn)證系統(tǒng)的方式有很多,基于擊鍵特征的身份認(rèn)證利用鍵盤提取用戶特征,不需要其他設(shè)備,是一種價(jià)格低廉,使用便利的認(rèn)證方式。本設(shè)計(jì)主要分為2部分:用于實(shí)現(xiàn)鍵盤消息截取的鍵盤鉤子dll動(dòng)態(tài)鏈接庫的建立以及主函數(shù)的編寫。其中,dll動(dòng)態(tài)鏈接庫主要實(shí)現(xiàn)的功能是將用戶輸入的按鍵信息保存到工程目錄下以及設(shè)置按鍵以屏蔽鍵盤消息;主函數(shù)中除了調(diào)用動(dòng)態(tài)鏈接庫以外,主要完成單鍵持續(xù)時(shí)間和按鍵間隔時(shí)間的采集。試驗(yàn)采用的是MFC,即基于對(duì)話框的MFC工程。

        1 動(dòng)態(tài)鏈接庫建立

        1.1 dll主程序設(shè)計(jì)

        鍵盤鉤子安裝好后,則在主函數(shù)調(diào)用時(shí),一旦有按鍵消息(按鍵按下或彈起),就會(huì)觸發(fā)鍵盤鉤子函數(shù),截獲消息并會(huì)進(jìn)入過程函數(shù)進(jìn)行相應(yīng)處理,過程函數(shù)是處理鍵盤消息的主要函數(shù)。本試驗(yàn)中,要求將鍵盤上按下的鍵記錄在工程目錄下。在開始編寫前,首先聲明鉤子過程函數(shù)為:

        在進(jìn)行鉤子過程編寫時(shí),設(shè)計(jì)實(shí)現(xiàn)的是將按鍵保存到工程目錄下的“key.txt”文件中,因此將用到c中的文件類型函數(shù),可以用fopen()函數(shù)來實(shí)現(xiàn)打開文件。本設(shè)計(jì)采用的是“a+”,表示為讀寫打開一個(gè)文本文件,當(dāng)字符輸入完成后,可用fwrite函數(shù)輸入一組數(shù)據(jù)到文件中,fwrite用來寫入一個(gè)數(shù)據(jù)塊,它的一般調(diào)用形式為fwrite(buffer,zise,count,fp)。字符的保存機(jī)理為首先將鍵盤的虛擬鍵碼保存,然后再利用ToAscii函數(shù)將虛擬鍵碼或按鍵狀態(tài)轉(zhuǎn)換成相應(yīng)的字符。ToAscii函數(shù)的的原型為:

        1.2 函數(shù)導(dǎo)出

        處理函數(shù)編好后,必須將要在主函數(shù)中調(diào)用的函數(shù)導(dǎo)出,本試驗(yàn)需要導(dǎo)出的函數(shù)為InstallHook()與EndHook()函數(shù)。調(diào)用InstallHook()函數(shù),當(dāng)有按鍵消息時(shí),便會(huì)觸發(fā)鉤子函數(shù),進(jìn)入鉤子過程進(jìn)行處理;當(dāng)不需要鍵盤鉤子時(shí),調(diào)用EndHook()函數(shù),卸載鉤子。在源文件中添加關(guān)鍵字__declspec(dllexport)來聲明要導(dǎo)出的函數(shù),在源文件中添加一頭文件KB.h,添加下述代碼:

        1.3 dll與lib文件生成

        在完成上述步驟,即鉤子安裝,鉤子過程處理,鉤子卸載,函數(shù)導(dǎo)出一系列工作之后,點(diǎn)擊“編譯”與“建立”按鈕,在工程Debug目錄下生成2個(gè)文件,KB.lib與KB.dll。至此,一個(gè)動(dòng)態(tài)鏈接庫完成建立,其功能主要為保存按鍵信息。

        2 主函數(shù)設(shè)計(jì)

        2.1 程序界面設(shè)計(jì)

        在VC++6.0環(huán)境下新建一個(gè)基于對(duì)話框的MFC AppWizard(exe)工程,工程命名為特征值采集,在選項(xiàng)“ResuorceView”的“test resuorce”下選擇“Dialog”,選擇第2項(xiàng)“IDD_TEST_DIALOG”,點(diǎn)擊打開設(shè)置應(yīng)用程序界面,添加4個(gè)按鈕,ID屬性分別為IDC_BUTTON1、IDC_BUTTON2、IDC_BUTTON3、IDC_BUTTON4,Caption屬性分別為獲取單鍵持續(xù)時(shí)間(毫秒)、獲取兩鍵間隔時(shí)間(毫秒)、取消按鍵信息、保存按鍵信息。按下對(duì)應(yīng)按鈕會(huì)實(shí)現(xiàn)相應(yīng)的功能。

        2.2 主程序編寫

        2.2.1 獲取單鍵持續(xù)時(shí)間與按鍵間隔時(shí)間

        為在對(duì)話框中響應(yīng)按鍵按下及彈起消息,需要在CtestDlg類下添加函數(shù)PreTranslateMessage(MSG* pMsg),右擊添加虛擬函數(shù)PreTranslateMessage(),通過重載這個(gè)函數(shù),可以改變MFC的消息控制流程,甚至可以做一個(gè)全新的控制流出來。利用PreTranslateMessage()可以攔截按鍵消息,在窗口進(jìn)行響應(yīng)。右擊CtestDlg類,選擇“Add Virtual Function”,在其下選擇“PreTranslateMessage”并添加,就可以在其下進(jìn)行按鍵攔截和處理。PreTranslateMessage函數(shù)如下:

        本文主要采用高精度計(jì)時(shí)器QueryPerformanceFrequency()和 QueryPerformanceCounter()函數(shù)獲取單鍵持續(xù)時(shí)間與兩鍵間隔時(shí)間。在計(jì)時(shí)之前,需要調(diào)用QueryPerformanceFrequency()函數(shù)獲取計(jì)數(shù)器的頻率nFreq,之后為獲取單鍵持續(xù)時(shí)間與兩鍵間隔時(shí)間,必須截獲按鍵按下消息(WM_KEYDOWN)和釋鍵消息(WM_KEYUP),每當(dāng)按鍵按下或彈起時(shí),調(diào)用QueryPerformanceCounter()函數(shù)獲取當(dāng)前計(jì)數(shù)值nBeginTime.QuadPart與nEndTime.QuadPart,可記為t1與t2,則單鍵持續(xù)時(shí)間為time1=(t2-t1)/nFreq。類似地,兩鍵間隔時(shí)間可用同樣的方法測得。由于按鍵按下和釋放消息都要截獲處理,因此可用switch語句實(shí)現(xiàn):

        結(jié)果為雙精度型,單位為ms。如此便獲得了單鍵持續(xù)時(shí)間,由于本設(shè)計(jì)設(shè)置為獲取6位任意字符的單鍵持續(xù)時(shí)間和兩鍵間隔時(shí)間,可定義兩個(gè)雙精度型全局?jǐn)?shù)組time[6]和time[5],分別用于存放六個(gè)按鍵的持續(xù)時(shí)間和兩兩間隔時(shí)間,并設(shè)置1個(gè)變量i,共判斷6次,以上述同樣的方法獲得兩種按鍵特征值。

        2.2.2 動(dòng)態(tài)鏈接庫調(diào)用

        動(dòng)態(tài)鏈接庫編譯后,需要在主程序中對(duì)其進(jìn)行調(diào)用,調(diào)用方法采用隱式加載的方式,即將工程KB\Debug目錄下生成的dll文件拷貝至主函數(shù)特征值采集工程目錄下,并在工程下選擇工程,設(shè)置、選擇連接選項(xiàng)卡,在對(duì)象/庫模塊下添加靜態(tài)庫KB.lib的路徑,由于本設(shè)計(jì)定的兩工程在同一目錄下,可添加的路徑為:…\KB\Debug\KB.lib.

        2.2.3 按鈕功能實(shí)現(xiàn)

        本設(shè)計(jì)在程序界面設(shè)置了4個(gè)按鈕,ID為IDC_BUTTON1、IDC_BUTTON2、IDC_BUTTON3、IDC_BUTTON4,Caption屬性分別為獲取單鍵持續(xù)時(shí)間(毫秒)、獲取兩鍵間隔時(shí)間(毫秒)、取消按鍵信息、保存按鍵信息,設(shè)計(jì)要求按下時(shí)實(shí)現(xiàn)相應(yīng)的功能,其中按下IDC_BUTTON1和IDC_BUTTON2要求顯示結(jié)果,即數(shù)組time[6]與time[5]的各個(gè)元素值,本設(shè)計(jì)采用MessageBox簡單顯示結(jié)果,使用Cstring的Format方法將雙精度型time[6]與time[5]元素轉(zhuǎn)換成Cstring字符串。打開程序設(shè)計(jì)界面,雙擊IDC_BUTTON1,跳轉(zhuǎn)到如下程序:

        在上述程序中添加Format格式轉(zhuǎn)換代碼,并用MessageBox對(duì)話框顯示結(jié)果,本設(shè)計(jì)將double型轉(zhuǎn)換為Cstring,因此可用%lf格式轉(zhuǎn)換:

        類似地,雙擊IDC_BUTTON2,在函數(shù)void CTestDlg::OnButton2()下用同樣的方法可將time[5]中的各個(gè)元素顯示。

        IDC_BUTTON3的功能是取消按鍵信息的保存,信息的保存是在dll中實(shí)現(xiàn)的,因此,在主函數(shù)中,只需簡單地調(diào)用EndHook()將鉤子卸載就行,這樣就取消了鉤子的功能。工程目錄下的key.txt文件將不會(huì)保存用戶輸入的信息。函數(shù)如下:

        void CTestDlg::OnButton3()

        //TODO:Add your control notification handler code here

        EndHook();

        IDC_BUTTON4用于保存輸入信息,只需調(diào)用InstallHook()即可。函數(shù)如下:

        void CTestDlg::OnButton4()

        //TODO:Add your control notification handler code here

        InstallHook();

        通過試驗(yàn)驗(yàn)證,擊鍵特征數(shù)據(jù)采集系統(tǒng)能夠很好地采集用戶擊鍵時(shí)的按鍵持續(xù)時(shí)間和間隔時(shí)間,為后續(xù)用戶擊鍵特征的識(shí)別打下了良好基礎(chǔ)。

        [1]曲維光,宋如順.基于用戶擊鍵特征識(shí)別的用戶認(rèn)證系統(tǒng)[J].計(jì)算機(jī)工程與應(yīng)用,2002,39(16):69-70

        [2]朱明,周津,王繼康.基于擊鍵特征的用戶身份認(rèn)證新方法[J].計(jì)算機(jī)工程,2002,28(10):138-140.

        猜你喜歡
        鉤子調(diào)用持續(xù)時(shí)間
        核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        誰和誰好
        快樂語文(2018年15期)2018-11-29 10:23:17
        幸福的一家
        《脈望館鈔校本古今雜劇》穿關(guān)之“鉤子困帶”考
        中華戲曲(2017年2期)2017-02-16 06:53:24
        基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
        精鉤子
        金山(2016年5期)2016-05-30 14:18:17
        The 15—minute reading challenge
        基于SVD的電壓跌落持續(xù)時(shí)間檢測新方法
        利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
        亚洲人成人99网站| 亚洲国产精品自拍成人| 中文字幕乱码一区在线观看| 亚洲a无码综合a国产av中文| 国产裸拍裸体视频在线观看| 国产成人一区二区三中文| av中文码一区二区三区| av男人的天堂亚洲综合网| 国产精品v片在线观看不卡| 男人扒开女人双腿猛进女人机机里| 无码av永久免费大全| 一本久道久久丁香狠狠躁| 久久人妻无码一区二区| 欧美日韩中文国产一区| 人妻AV无码一区二区三区奥田咲| 亚洲蜜桃视频在线观看| 玖玖色玖玖草玖玖爱在线精品视频| 岳好紧好湿夹太紧了好爽矜持| 国产91精品成人不卡在线观看| 少妇极品熟妇人妻高清| 国产专区亚洲专区久久| 隔壁老王国产在线精品| 久久棈精品久久久久久噜噜| 欧美精品高清在线xxxx| 中国亚洲av第一精品| 日韩精品视频一区二区三区| 欧美人与物videos另类xxxxx| 国产真实二区一区在线亚洲| 国产精品国产传播国产三级| 精品国偷自产在线视频九色| 99re久久精品国产| 女人被躁到高潮嗷嗷叫| 亚洲av无一区二区三区| 被黑人猛躁10次高潮视频| 欧美日韩亚洲成色二本道三区| 国产一区二区三区精品成人爱 | 中文字幕人妻少妇伦伦| 精品国产一区二区三区av片 | 国产精品亚洲精品日产久久久| 有坂深雪中文字幕亚洲中文| 午夜内射中出视频|