版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、直接訪問鍵盤控制芯片獲取鍵盤記錄鍵盤是用戶和機器之間主要的硬件接口,看看鍵盤上的那些鍵就可知道它有多么的復雜了。鍵盤是我們隱私的源泉,我們各種信息的傳遞都要通過它。作為用戶表現(xiàn)信息的媒介,很多懷有惡意目的的人都想截取我們的鍵盤輸入。目前有很多方法可以做到,比如全局鉤子、GetKeyboardStatus()、驅(qū)動過濾鉤子等,但是如果要截取像QQ這種Hook鍵盤中斷處理程序的保護技術(shù),這些方法都顯得無能為力。為此,我將為大家介紹一種直接訪
2、問鍵盤控制芯片的方法,來實現(xiàn)對鍵盤輸入數(shù)據(jù)的最底層的讀取。如果我們知道了硬件的輸入輸出地址,就可以直接對它們進行訪問了。鍵盤上有一個稱為鍵盤編碼器的處理器(Intel8048或兼容芯片)專門用來掃描收集所有按鍵按下和松開的狀態(tài)數(shù)據(jù)(即掃描碼)。當一個鍵被按下時,鍵盤發(fā)送的掃描碼稱為接通掃描碼(Makecode),或簡稱為接通碼;當一個被按下的鍵放開時發(fā)送的掃描碼被稱為斷開掃描碼(Breakcode),或簡稱為斷開碼。主機鍵盤控制器專門用
3、來對接收到的鍵盤掃描碼進行解碼。因為每個按鍵的接通和斷開碼都是不同的,所以鍵盤控制器根據(jù)掃描碼就可以確定用戶在操作哪個鍵了。整個鍵盤上所有按鍵的接通和斷開碼就組成了鍵盤的一個掃描碼集(ScanCodeSet)。根據(jù)電腦的發(fā)展,目前已有三套掃描碼集可供使用,它們分別是第一套掃描碼集,原始XT鍵盤掃描碼集,目前的鍵盤已經(jīng)很少發(fā)送這類掃描碼;第二套掃描碼集,現(xiàn)代鍵盤預設使用的掃描碼集,通常稱為AT鍵盤掃描碼集;第三套掃描碼集,PS2鍵盤掃描碼
4、集,原IBM推出PS2微處理機時使用的掃描碼集,已很少使用。AT鍵盤預設發(fā)送的是第二套掃描碼集。雖然如此,主機鍵盤控制器為了與PCXT機的軟體兼容起見,仍然會把所有接收到的第二套鍵盤掃描碼轉(zhuǎn)換成第一套掃描碼,因此,我們從鍵盤控制器獲取的通常為第一套掃描碼集。當一個鍵被按下時,我們可以從鍵盤控制器接收到一個XT鍵盤接通碼。這個掃描碼僅表示鍵盤上某個位置處的鍵被按下,但還沒有對應到某個字符代碼上,接通碼通常都是一個位組寬度。例如,按下鍵“A
5、”的接通碼是30(0x1E)。當一個按下的鍵被松開時,從鍵盤控制器端口收到的就是一個斷開碼。對于XT鍵盤(即鍵盤控制器程序設計端口收到的掃描碼),斷開碼是其接通碼加上0x80。例如,上述“A”鍵的斷開碼就是“0x800x1E=0x9E”。表1列出了ScanCodeSet1中的所有掃描碼,我們寫程序時需要用到!圖1通常情況下,我們從0x60讀取的數(shù)據(jù)就是鍵盤的掃描碼,而從0x64讀取的數(shù)據(jù)為鍵盤的狀態(tài)字。狀態(tài)字的各位含義如下:Bit7:從
6、鍵盤獲得的數(shù)據(jù)奇偶校驗錯誤;Bit6:接收超時,置1;Bit5:發(fā)送超時,置1;Bit4:為1,鍵盤沒有被禁止。為0,鍵盤被禁止;Bit3:為1,輸入緩沖器中的內(nèi)容為命令,為0,輸入緩沖器中的內(nèi)容為數(shù)據(jù);Bit2:系統(tǒng)標志,加電啟動置0,自檢通過后置1;Bit1:輸入緩沖器滿置1,i8042取走后置0;Bit0:輸出緩沖器滿置1,CPU讀取后置0。接下來我們再說一下端口的操作方法。WindowsNT系統(tǒng)是不允許直接操作端口的,只有通過驅(qū)
7、動程序才能實現(xiàn),可供選擇的驅(qū)動程序有免費開源的winio、windriver等。由于我的畢業(yè)設計涉及到視頻采集卡驅(qū)動程序的設計,所以就以windirver為例來說明端口操作方法了。安裝好windriver之后,在“samplesbasic_io”目錄下有一個basic_io.c,我們可以直接使用它提供的端口操作函數(shù)讀寫端口。注意修改IO_init()函數(shù)添加如下語句:(責任編輯:admin)WD_LICENSElicstrcpy(lic
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論