

Hook技術(shù)及其應用
- 期刊名字:科技資訊
- 文件大?。?30kb
- 論文作者:趙慧然,石磊
- 作者單位:哈爾濱工程大學(xué)計算機科學(xué)與技術(shù)學(xué)院,黑龍江大學(xué)
- 更新時(shí)間:2020-06-12
- 下載次數:次
科技資訊3成ao1wnoT技術(shù)Hok技術(shù)及其應用趙慧然1石磊2(1.哈爾濱工程大學(xué)計算機科學(xué)與技術(shù)學(xué)院2.黑龍江大學(xué))摘要∷計算機監控系統有時(shí)需要將用戶(hù)對操作系統旳交互信息進(jìn)行記錄,wησw操作系統提供的卜ok技術(shù)就能實(shí)現這個(gè)功能,本文介紹了wndo5平臺下鉤子函數的特點(diǎn)及其關(guān)鍵技術(shù),并通過(guò)日志鉤子函數來(lái)實(shí)現對鍵盤(pán)擊鍵信息的記錄,給出實(shí)現過(guò)程。關(guān)鍵字:Hok函數日志鉤子中圖分類(lèi)號:F224-39文獻標識碼:A基于 Wi ndows的操作系統是事件驅動(dòng)的(Eveηt-消息,監視窗口的打開(kāi)關(guān)閉以及實(shí)現記錄宏等等,應用靈活,dr i ven),即消息驅動(dòng)的,應用程序所采取的任何動(dòng)作都依賴(lài)功能強大。于它所獲得的消息類(lèi)型及其內容; W dowe操作系統提供了種機制即鉤子(Hook),通過(guò)它應用程序可以監視系統中的1.Hbok函數的工作原理消息傳遞并能夠在他們到達目標窗口之前對其進(jìn)行處理。這可W dowe操作系統對系統輸入的處理過(guò)程是:系統監視鍵盤(pán)以幫助應用程序實(shí)現某些特殊目的,如控制鍵盤(pán)或鼠標的輸入和鼠標動(dòng)作并把這些動(dòng)作以消息的形式傳送紿對應的應用程序,安裝便捷:一般在網(wǎng)絡(luò )建設中,施工周期最長(cháng)、對周邊現,其中以無(wú)線(xiàn)網(wǎng)卡最為普遍,使用最多。無(wú)線(xiàn)局域網(wǎng)的關(guān)環(huán)境影響最大的,就是網(wǎng)絡(luò )布線(xiàn)施工工程。而無(wú)線(xiàn)局域網(wǎng)最大鍵技術(shù),除了紅外傳輸技術(shù)、擴頻技術(shù)、網(wǎng)同步技術(shù)外還有的優(yōu)勢就是免去或減少了網(wǎng)絡(luò )布線(xiàn)的工作量,一般只要安裝些其他技術(shù),如:調制技術(shù)、加解擾技術(shù)、無(wú)線(xiàn)分集接收個(gè)或多個(gè)接入點(diǎn)AP( Access poi nt)設備,就可建立覆蓋整個(gè)建技術(shù)、功率控制技術(shù)和節能技術(shù)。筑或地區的局域網(wǎng)絡(luò )。使用靈活:在有線(xiàn)網(wǎng)絡(luò )中,網(wǎng)絡(luò )設備的安放位置受網(wǎng)絡(luò )信5.無(wú)線(xiàn)局域網(wǎng)的應用息點(diǎn)位置的限制。而一旦無(wú)線(xiàn)局域網(wǎng)建成后,在無(wú)線(xiàn)網(wǎng)的信號基于無(wú)線(xiàn)局域網(wǎng)具有的諸多優(yōu)點(diǎn),它可廣泛應用于下列領(lǐng)覆蓋區域內任何一個(gè)位置都可以接入網(wǎng)絡(luò )域:接入網(wǎng)絡(luò )信息系統:電子郵件、文件傳輸和終端仿真經(jīng)濟節約:由于有線(xiàn)網(wǎng)絡(luò )缺少靈活性,這就要求網(wǎng)絡(luò )規劃者難以布線(xiàn)的環(huán)境:老建筑、布線(xiàn)困難或昂貴的露天區域、城盡可能地考慮未來(lái)發(fā)展的需要,這就往往導致預設大量利用率較低市建筑群、校園和工廠(chǎng);頻繁變化的環(huán)境:頻繁更換工作地的信息點(diǎn)。而一旦網(wǎng)絡(luò )的發(fā)展超出了設計規劃,又要花費較多費用點(diǎn)和改變位置的零售商、生產(chǎn)商,以及野外勘測、試驗、軍進(jìn)行網(wǎng)絡(luò )改造,而無(wú)線(xiàn)局域網(wǎng)可以避免或減少以上情況的發(fā)生事、公安和銀行等;使用便攜式計算機等可移動(dòng)設備進(jìn)行快速易于擴展:無(wú)線(xiàn)局域網(wǎng)有多種配置方式,能夠根據需要靈網(wǎng)絡(luò )連接;用于遠距離信息的傳輸:如在林區進(jìn)行火災、病活選擇。它能夠勝仼從只有幾個(gè)用戶(hù)的小型局域網(wǎng)到上千用戶(hù)蟲(chóng)害等信息的傳輸;公安交通管理部門(mén)進(jìn)行交通管理等;專(zhuān)門(mén)的大型網(wǎng)絡(luò ),并能提供像“漫游( Roam ng)”等有線(xiàn)網(wǎng)絡(luò )無(wú)工程或高峰時(shí)間所需的暫時(shí)局域網(wǎng):學(xué)校、商業(yè)展覽等人員流法提供的特性。動(dòng)較強的地方;利用無(wú)線(xiàn)局域網(wǎng)進(jìn)行信息的交流;零售商、空運和航運公司高峰時(shí)間所需的額外工作站等;流動(dòng)工作者可得4.無(wú)線(xiàn)局域網(wǎng)的結構到信息的區域:需要在醫院、零售商店或辦公室區域流動(dòng)時(shí)得根據不同局域網(wǎng)的應用環(huán)境與需求的不同,無(wú)線(xiàn)局域網(wǎng)可到信息的醫生、護土、零售商、白領(lǐng)工作者;辦公室和家庭采取不同的網(wǎng)絡(luò )結構來(lái)實(shí)現互聯(lián)。常用的有如下幾種辦公室(SOHO)用戶(hù),以及需要方便快捷地安裝小型網(wǎng)絡(luò )4.1網(wǎng)橋連接型:不同的局域網(wǎng)之間互聯(lián)時(shí),由于物理上的用戶(hù)。的原因,若采取有線(xiàn)方式不方便,則可利用無(wú)線(xiàn)網(wǎng)橋的方式實(shí)現二者的點(diǎn)對點(diǎn)連接,無(wú)線(xiàn)網(wǎng)橋不僅提供二者之間的物理與數6.結束語(yǔ)據鏈路層的連接,還為兩個(gè)網(wǎng)的用戶(hù)提供較高層的路由與協(xié)議無(wú)線(xiàn)網(wǎng)絡(luò )的出現就是為了解決有線(xiàn)網(wǎng)絡(luò )無(wú)法克服的困難轉換雖然無(wú)線(xiàn)網(wǎng)絡(luò )有諸多優(yōu)勢,但與有線(xiàn)網(wǎng)絡(luò )相比,也有很多不4.2基站接入型:當采用移動(dòng)蜂窩通信網(wǎng)接入方式組建無(wú)線(xiàn)足。無(wú)線(xiàn)網(wǎng)絡(luò )速率較慢、價(jià)格較高,因而主要面向有特定需局域網(wǎng)時(shí),各站點(diǎn)之間的通信是通過(guò)基站接入、數據交換方式求的用戶(hù)。目前無(wú)線(xiàn)局域網(wǎng)還不能完全脫離有線(xiàn)網(wǎng)絡(luò ),還只是來(lái)實(shí)現互聯(lián)的。各移動(dòng)站不僅可以通過(guò)交換中心自行組網(wǎng),還有線(xiàn)網(wǎng)絡(luò )的補充,而不是替換。但也應該看到,近年來(lái),隨可以通過(guò)廣域網(wǎng)與遠地站點(diǎn)組建自己的工作網(wǎng)絡(luò )著(zhù)相關(guān)產(chǎn)品的價(jià)格下降,相應軟件也逐漸成熟。此外,無(wú)線(xiàn)4.3HUB接入型:利用無(wú)線(xiàn)Hub可以組建星型結構的無(wú)線(xiàn)局域網(wǎng)已能夠通過(guò)與廣域網(wǎng)相結合的形式提供移動(dòng)互聯(lián)網(wǎng)的多媒局域網(wǎng),具有與有線(xiàn)Hub組網(wǎng)方式相類(lèi)似的優(yōu)點(diǎn)。在該結構體業(yè)務(wù)。相信在未來(lái),無(wú)線(xiàn)局域網(wǎng)將以它的高速傳輸能力和靈基礎上的wAN,可采用類(lèi)似于交換型以太網(wǎng)的工作方式,要活性發(fā)揮更加重要的作用。求Hub具有簡(jiǎn)單的網(wǎng)內交換功能4.4無(wú)中心結構:要求網(wǎng)中任意兩個(gè)站點(diǎn)均可直接通信參考文獻此結構的無(wú)線(xiàn)局域網(wǎng)一般使用公用廣播信道,MAC層采用[]王瑩,張萍無(wú)線(xiàn)資源管理北京郵電大學(xué)出版社2005CSMA類(lèi)型的多址接入協(xié)議2]錢(qián)進(jìn)無(wú)轉應田由T業(yè)出版社2004無(wú)線(xiàn)局域網(wǎng)可以在普通局域網(wǎng)基礎上通過(guò)無(wú)線(xiàn)Hub、無(wú)線(xiàn)[3]金純IE中國煤化工業(yè)出版社2004接入站(AP)、無(wú)線(xiàn)網(wǎng)橋、無(wú)線(xiàn) Mo de n及無(wú)線(xiàn)網(wǎng)卡等來(lái)實(shí)CNMHG70科技資訊 SCI ENCE& TECHNOL OGY I NF ORMATI ONIT技術(shù)SCI ENCE TECHNOLOGY科技資訊由應用程序自己進(jìn)行處理。這時(shí)我們很自然的想到類(lèi)似于中斷I if ( nCode< 0/定義日志鉤子函數截獲的處理的方法,我們可以在系統把消息傳送給應用程序的ret ur n Cal I Next Hook Ex( hook Dat a[J OURNAL RECORD這個(gè)過(guò)程中截獲消息并在進(jìn)行完自己的處理后再交給應用程序。hook, nCode, WPar am| Par am;//重新執行本程序nCode = HC ACTI ON2.Hbok的種類(lèi)f EVENTMG *pEvt = EVENTM6G *)I Par am按事件分類(lèi),有如下的幾種常用類(lèi)型i f( pEvt->message = W KEYDOW鍵盤(pán)鉤子和低級鍵盤(pán)鉤子可以監視各種鍵盤(pán)消息。/判斷是否有按鍵動(dòng)作鼠標鉤子和低級鼠標鉤子可以監視各種鼠標消息。t int vKey LOBYTE( pEvt->par amL)外殼鉤子可以監視各種She|事件消息。比如啟動(dòng)和關(guān)閉應//取得虛擬鍵值用程序。char ch日志鉤子可以記錄從系統消息隊列中取出的各種事件消息。窗口過(guò)程鉤子監視所有從系統消息隊列發(fā)往目標窗口的消hOcus Get Act i vew ndow)/取得當前活動(dòng)窗口句柄按使用范圍分類(lèi),主要有線(xiàn)程鉤子和系統鉤子f(g hLast Focus != hOcus)線(xiàn)程鉤子監視指定線(xiàn)程的事件消息。/判斷當前活動(dòng)窗口是否改變系統鉤子監視系統中的所有線(xiàn)程的事件消息Get W ndowText( hFocus, SzTi tI e, 256)g_ hLast Focus hOcus3.日志鉤子日志鉤子是一種很特別的鉤子,它只是在系統信息(如鍵Post Message( hWhd, WM HOOKMESSAGE, ( WPARAM盤(pán)信息和鼠標信息等)進(jìn)出隊列才起作用。系統中只存在一個(gè) g_ SendBuf fer,0)這樣的日志鉤子,所以無(wú)論我們要提取鼠標信息還是鍵盤(pán)信息nt i Shi f t= Get KeySt at e(0×10);//判斷SHFT都只需加載一次日志鉤子,因此利用日志鉤子提取系統信息的方 CAPTI ON, NUM OCK等鍵是否按下法,與以往的方法比較起來(lái)就顯得簡(jiǎn)單、快捷。nt i Capi t al Get Key St at e( Ox14)日志鉤子函數在系統中優(yōu)先級最大,一般情況下日志鉤子是nt i Nunrock = Get Key St at e( 0x90)在系統之前就處理了它所需要處理的信息,因此對于日志鉤子來(lái)bool bShi ft=(i Shi ft& Key Press Mask)== KeyPr essMask說(shuō),系統無(wú)法將它所需的信息屏蔽,讓日志鉤子無(wú)法提取。日志bool cApi tal =(i Capi tal &1)5728==1;鉤子函數可以提取出別的鉤子函數無(wú)法提取的信息。bool bNumock=(i NumLock &1)==1;雖然嚴格地說(shuō)日志鉤子是全局鉤子的一種,但是使用日志鉤i f kEy >=48&&vEy < 57子不需要動(dòng)態(tài)鏈接庫,而全局鉤子則必須要用動(dòng)態(tài)鏈接庫.在使//測試數字0-9的按鍵狀態(tài)用日志鉤子函數時(shí),首先安裝鉤子,安裝鉤子函數我們一般通過(guò)t if(! bshi ft)HHOOK Set w ndows Hook ex()來(lái)進(jìn)行char)vEy: strcat(g SendBuf fer, ""Set W ndows Hook Ex(i nt i dHook, HooKPRoc I pf nstrncat (g_ SendBuf fer, &C, 1)HI NS TaNcE hmbd, dword dwt hr eadi d)Post Message( hWhd, WM HOOKMESSAGE, WPARAMd Hbok/所要安裝的鉤子的類(lèi)型g_SendBuf fer, si zeof g_SendBuf fer)): 33I pf n∥/鉤子函數的地址//應用實(shí)例的句柄A-z(a-z)的按鍵狀態(tài)、小鍵盤(pán)0-9、其他鍵、方dwthr eadi d//安裝鉤子函數的線(xiàn)程標識向鍵、功能鍵[F1]-[F12]、SHFT, CAPTI ON, NUM OCK安裝日志鉤子只要把ⅰ dhoo k的值設置為等鍵的代碼此處略WH」 OURNAL RE CORD即可,lpfn設置為相應所調用的鉤ret ur n Cal I Next Hook Ex( hook Dat a[ OURNALRECORD子函數的子函數名,而hMbd設為: Af x i nst ancehandl e(),hook, nCode, WPar am I Par am;}而 dwthr eadi d則設為0值安裝完成以后,我們只需要把日志鉤子提取出來(lái)的信息按要5.結論求進(jìn)行過(guò)濾,就可以得到鍵盤(pán)信息或鼠標信息。鉤子(Hook)具有強大的功能,它可以對 W ndows系統消用完日志鉤子以后,就應該把它卸載掉。一般使用息進(jìn)行攔截、監視和處理。該技術(shù)可以應用于監控、系統信UnhookW ndows Hook ex( HHOOK hhk)函數息記錄等系統軟件。本文對鉤子核心技術(shù)進(jìn)行了詳細的描述并Unhook W ndows Hook Ex( HOok hhk給出了捕獲鍵盤(pán)信息的部分代碼,希望對讀者能有所啟發(fā)。HHOOK hhk//所要卸載掉的鉤子程序的句柄由于日志鉤子在系統處理信息之前就處理了系統所要處理的參考文獻信息,這就增加系統處理信息的時(shí)間,系統性能會(huì )降低,這一點(diǎn)在[們[美] RI CHTER」, W ndow核心編程[M.北京:機系統負載較重的情況下尤其突岀。所以我們在使用完日志鉤子械工業(yè)出版社,2000.以后,一定要把日志鉤子卸載,以免降低系統性能。[2][美] Eugene d afen,等.MCⅵ sual c++6技術(shù)內幕[M.王建華等譯.北京清華大學(xué)出版社,2004.使用日志鉤子捕獲鍵盤(pán)擊鍵信息由于日志鉤子方便快捷的特性,鉤子技術(shù)應用就以日志鉤子為例,下面是利用日志鉤子采集鍵盤(pán)擊鍵信息的代碼片斷LRESUL T CALLBACK Jour nal Recor dPr oc(i nt nCode中國煤化工WPARAM WPar am LPARAM I Par amCNMHG科技資訊 SCI ENCE& TECHNOL OGY I NFORMATI ON7
-
C4烯烴制丙烯催化劑 2020-06-12
-
煤基聚乙醇酸技術(shù)進(jìn)展 2020-06-12
-
生物質(zhì)能的應用工程 2020-06-12
-
我國甲醇工業(yè)現狀 2020-06-12
-
JB/T 11699-2013 高處作業(yè)吊籃安裝、拆卸、使用技術(shù)規程 2020-06-12
-
石油化工設備腐蝕與防護參考書(shū)十本免費下載,絕版珍藏 2020-06-12
-
四噴嘴水煤漿氣化爐工業(yè)應用情況簡(jiǎn)介 2020-06-12
-
Lurgi和ICI低壓甲醇合成工藝比較 2020-06-12
-
甲醇制芳烴研究進(jìn)展 2020-06-12
-
精甲醇及MTO級甲醇精餾工藝技術(shù)進(jìn)展 2020-06-12