日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > Visual Basic > 正文

VB編程中鉤子的實現及應用

2023-06-12 12:11:30
字體:
來源:轉載
供稿:網友

Windows系統中鉤子具有相當強大的功能,通過這種技術可以對幾乎所有的Windows 系統中的消息進行攔截、監視、處理。這種技術可以廣泛應用于各種軟件,尤其是需要有監控、自動記錄等對系統進行監測功能的軟件。本文針對這個專題進行了探討,希望可以為讀者朋友們起到拋磚引玉的作用。

一、鉤子的機制及類型

Windows的應用程序都是基于消息驅動的,應用程序的操作都依賴于它所得到的消息的類型及內容。鉤子與Dos中斷截獲處理機制有類似之處。鉤子(Hook)是Windows消息處理機制的一個平臺,通過安裝各種鉤子,應用程序可以在上面設置子程序以監視指定窗口的某種消息,并且當消息到達目標窗口之前處理它。

在Windows中,鉤子有兩種,一種是系統鉤子(RemoteHook),它對消息的監視是整個系統范圍,另一種是線程鉤子(LocalHook),它的攔截范圍只有進程內部的消息。對于系統鉤子,其鉤子函數(HookFunction)應在Windows系統的動態鏈接庫(DLL)中實現,而對于線程鉤子來說,鉤子函數可以在DLL之中實現,也可以在相應的應用程序之中實現。這是因為當開發人員創建一個鉤子時,Windows先在系統內存中創建一個數據結構,該數據結構包含了鉤子的相關信息,然后把該結構體加到已經存在的鉤子鏈表中去,并且新的鉤子將排在老的鉤子的前面。當一個事件發生時,如果安裝的是一個局部鉤子,當前進程中的鉤子函數將被調用。如果是一個遠程鉤子,系統就必須把鉤子函數插入到其它進程的地址空間,要做到這一點就要求鉤子函數必須在一個動態鏈接庫中,所以如果想要使用遠程鉤子,就必須把該鉤子函數放到動態鏈接庫中去。對于鉤子所監視的消息類型來說,Windws一共提供了如下幾種類型:如表1所示:

表一、Windows消息類型

消息類型常量標識

消息類型

適用范圍

WH_CALLWNDPROC

4

發給窗口的消息

線程或系統

WH_CALLWNDPROCRET

12

窗口返回的消息

線程或系統

WH_CBT

5

窗口變化、焦點設定等消息

線程或系統

WH_DEBUG

9

是否執行其它HookHook

線程或系統

WH_FOREGROUNDIDLE

11

前臺程序空閑

線程或系統

WH_GETMESSAGE

3

投放至消息隊列中的消息

線程或系統

WH_JOURNALPLAYBACK

1

將所記載的消息進行回放

系統

WH_JOURNALRECORD

0

監視并記錄輸入消息

系統

WH_KEYBOARD

2

鍵盤消息

線程或系統

WH_MOUSE

7

鼠標消息

線程或系統

WH_MSGFILTER

-1

菜單滾動條、對話框消息

線程或系統

WH_SHELL

10

外殼程序的消息

線程或系統

WH_SYSMSGFILTER

6

所有線程的菜單滾動條、對話框消息

系統

 

 

 二、VB編程中鉤子的實現

  (一)鉤子函數(HOOK Function)的格式。Hook Function實際上是一個函數,如果是系統鉤子,該函數必須放在動態鏈接庫中。該函數有一定的參數格式,在VB中如下:

Private Function HookFunc(ByVal nCode As LongByVal wParam As LongByVal lParam As Long)As Long


  其中,nCode代表是什么情況之下所產生的鉤子,隨鉤子的不同而有不同組的可能值;參數wParamlParam傳回值包括了所監視到的消息內容,它隨Hook所監視消息的種類和nCode的值不同而不同。對于用VB所設置的鉤子函數,一般的框架形式如下:

 

Private Function HookFunc(ByVal nCode As LongByVal wParam As LongByVal lParam As Long)As Long
 
Select case of nCode
  case ncode<0:hookfunc=callnexthookex(hHookFuncnCodewParam
lParam)
  case1:處理過程
1:HookFunc=X1
  case2:處理過程
2:HookFunc=X1
  ……

 end select
end Function


  函數的傳回值,如果消息要被處理,則傳0,否則傳1,吃掉消息。

  (二)鉤子的安裝及執行。鉤子的安裝要用到幾個API函數:可以使用API函數SetWindowsHookEx()把一個應用程序定義的鉤子子程安裝到鉤子鏈表中。SetWindowsHookEx()函數的聲明如下:

 

Declare function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA"(ByVal idHook As LongByVal lpfn As LongByVal hmod As LongByVal dwThreadId As Long)As Long


  idHook值為它處理的消息類型;lpfn值為鉤子子程序的地址指針。如果dwThreadId參數為0或是一個由別的進程創建的線程的標識,lpfn必須指向DLL中的鉤子子程。除此以外,lpfn可以指向當前進程的一段鉤子子程代碼。hMod值為應用程序的句柄,標識包含lpfn所指的子程的DLL。如果dwThreadId標識當前進程創建的一個線程,而且子程代碼位于當前進程,hMod必須為0dwThreadId值為與安裝的鉤子子程相關聯的線程的標識符,如果為0,鉤子子程與所有的線程關聯。鉤子安裝成功則返回鉤子子程的句柄,失敗返回0

  另外,一般應在鉤子子程中調用CallNextHookEx()函數以執行鉤子鏈表所指的下一個鉤子子程,否則安裝了別的鉤子的應用程序就會收不到鉤子通知,從而產生錯誤的結果。CallNextHookEx()函數的聲明如下:

 

Declare Function CallNextHookEx Lib"user32" Alias "CallNextHookEx"(ByVal hHook As LongByVal ncode As Lonog ByVal wParam As LonglParam As Any)As Long


  hHook值是SetWindowsHookEx()的傳回值,nCodewParamlParam則是Hook函數中的三個參數。在程序終止之前,必須調用UnhookWindowsHookEx()函數釋放與鉤子關聯的系統資源。UnhookWindowsEx()函數聲明如下:

 

Declare Function Unhook WindowsHookEx Lib "user32" Alias "Unhook WindowsHookEx(ByVal hHook As Long)As Long


  hHook為安裝鉤子時的返回值,即鉤子子程的句柄。

  (三)VB中鉤子安裝應注意的問題。lpfn參數是一個HookFunc的地址,VB規定必須將HookFunc代碼放到標準的.BAS模塊中,并以"Address Of HookFunc"傳入,而不可以將其放到類模塊中,也不能將其附加到窗體上。而對于RemoteHook來說,HookFunc應包含在動態鏈接庫中,因此如果在VB中使用RemoteHook,則還要用到GetModuleHandle()GetProcAddress()兩個API函數,它們的聲明如下:

 

Declare Function GetModuleHandle Lib"kernel32" Alias "GetModuleHandleA"ByVal lpModuleName As StringAs Long
Declare Function GetProcAddress Lib "kernel32" Alias "GetProcAddress"
ByVal hModule As LongByVal lpProcName As StringAs Long


  hmod值是含鉤子過程的模塊名柄,如果是LocalHook,該值可以是Null(VB中傳0),而如果是RemoteHook,則可以使用GetModuleHandle("名稱.dll")來傳入。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
激情国产在线| 日韩中文字幕久久| 欧美日韩精品欧美日韩精品| 中文字幕线观看| 欧美久久综合性欧美| 欧美日韩一级片在线观看| 国产黄在线播放| 亚洲一二三不卡| 久久99久久久久久久噜噜| 欧美日韩视频在线| 欧美性极品xxxx做受| 国产视频三级在线观看播放| 欧美区高清在线| 欧美日韩中文字幕视频| 欧美在线日韩在线| 精品999在线| 黄色片免费看| 久久精品电影| 日韩欧美999| 国产综合精品在线| 欧美久久久网站| 亚洲高清中文字幕| 日韩欧美国产片| 欧美日韩在线播放三区四区| 一区二区三区在线播放欧美| 在线视频不卡国产V| 日韩精品视频网站| 精品国产999| 国产黄色在线播放| 精品日韩99亚洲| 欧美日韩中文字幕一区| 刘玥91精选国产在线观看| 在线日韩中文| 色欧美日韩亚洲| 中文字幕伊人| 欧美日韩亚洲一| 日韩精品免费视频一区二区三区| 国产乱国产乱300精品| 日韩精品在线视频观看| 中文字幕在线国产| 精品调教chinesegay| 成人精品视频一区| 精品999视频| 91精品国产丝袜白色高跟鞋| 国产福利在线看| 国产不卡视频在线| 久久电影国产免费久久电影| 国产一卡2卡3卡四卡网站| 91精品国产91久久| 欧美亚洲专区| 亚洲欧洲一区二区天堂久久| 亚洲日本精品视频| 欧美久久在线观看| 日韩视频 中文字幕| 欧美综合精品| 欧美日韩第一| 成人xxxx| 深夜日韩欧美| 精品久久久久久无| 中文字幕欧美日韩在线| 精品国产欧美日韩| 一区二区三区中文字幕在线观看| 在线看的av| 国产wwww| 欧美在线观看视频一区| 成人xxxx| 日韩欧美中文第一页| 免费高清在线一区| 婷婷综合福利| 国产999在线观看| 欧美 日韩 国产在线观看| 欧美日韩三级视频| 欧美亚洲视频在线看网址| 久久精品日韩无码| 婷婷综合福利| 在线精品日韩| 久久精品久久精品国产大片| 国产免费久久久| 伊人国产视频| 欧美日韩国产中字| 天天摸日日摸狠狠添| 区日韩二区欧美三区| 91蜜桃在线视频| 日韩欧美一级精品久久| 亚洲伊人婷婷| 精品九九久久| 国产视频aaa| 中文字幕久精品免费视频| 欧美日韩中文字幕一区| 福利在线国产| 精品久久久视频| 一级片在线免费看| 国产日韩在线视频| 中文字幕日韩欧美在线| 91麻豆精品在线| 中文欧美日韩| 国产欧美日韩在线播放| 国产亚洲视频中文字幕视频| 黄污视频在线看| 中文字幕日韩欧美在线| 91午夜在线| 国产日韩在线视频| 一二三区精品视频| 亚洲小说春色综合另类电影| 国产日韩中文字幕| 在线视频国内一区二区| 伊人亚洲视频| 国产一卡2卡3卡免费网站| 91精品国产91久久| 亚洲 欧美综合在线网络| 欧美99久久| 成年人看的羞羞网站| 一区二区在线高清视频| 91精品久久久久久久91蜜桃| 欧美日韩一级黄| 深夜福利亚洲| 在线日韩中文| 亚洲区中文字幕| 欧美日韩精品欧美日韩精品| 亚洲制服丝袜一区| 欧美日韩中文字幕一区| 最新日韩中文字幕| 久久99精品国产| 精品亚洲国内自在自线福利| 日韩欧美一级二级三级久久久| 国产一卡二卡3卡4卡四卡在线 | 色www精品视频在线观看| 精品国产99久久久久久 | 成人a在线观看| 久久中文免费视频| 国产视频97| 欧美啪啪一区| 国产激情久久久| 一区二区三区在线|网站| 国产99亚洲| 亚洲欧美韩国综合色| 91精品国产色综合久久不卡蜜臀| 中文字幕 欧美 日韩| 国产99精品| 欧美精选午夜久久久乱码6080| 欧美中文字幕在线视频| 蜜桃视频一日韩欧美专区| 久久精品国产99| 日韩欧美99| 日韩在线高清| 国产免费久久久| 日韩精品在线看| 二区三区中文字幕| 欧美日韩免费高清| 亚洲经典中文字幕| 欧洲一级精品| 久久手机免费观看| 久99久视频| 亚洲一区三区在线观看| 国产偷国产偷亚洲清高网站 | 精品久久蜜桃| 亚洲欧美伊人| 最近中文字幕第一页| 欧美 日韩 国产 在线观看| 久久精品国产99| 在线亚洲人成| av一卡二卡| 国产区视频在线观看| 精品免费久久久| 日韩欧美亚洲区| 欧美三级中文字幕| 日韩欧美在线看| 日韩欧美中文字幕在线视频| 国产无套粉嫩白浆在线2022年 | 国产精久久久久| 久久久久久99精品| 精品日韩av一区二区| 日韩在线高清| 日韩欧美一二三| 国产偷国产偷亚洲清高网站| 日韩精品视频免费在线观看| 精品久久久网| 日韩欧美在线看| 日韩在线中文字幕| 日韩欧美国产黄色| 亚洲高清不卡一区| 中文字幕 日韩 欧美| 黄色在线播放网站| 成人久久在线| 国产黄色一区| 日韩视频在线免费播放| 91av久久久| 二区中文字幕| 深夜福利一区| 国产欧美日韩在线视频| 一区二区欧美国产| 7799精品视频天天看| 欧美久久久精品| 不卡在线视频| 欧美日韩精品在线视频| 日本一级一片免费视频| 91精品国产调教在线观看 | 日韩不卡一二区| 欧美日韩在线精品一区二区三区激情综| 91精品国产乱码久久蜜臀| 91 中文字幕| 在线免费视频一区二区| 亚洲精品中文字幕乱码三区不卡| 黄污视频在线看| 国产日韩av一区| 国产黄在线播放| 中文字幕亚洲国产| 久草中文在线观看| 91久久精品国产| 日韩在线观看一区| www.狠狠干| www.久久草| 国产一区在线精品| 久久激情中文| 97国产视频| 久草亚洲一区| 亚洲中文字幕在线一区| 国产欧美久久久精品影院| 黄色片免费在线| 国产偷久久久精品专区| 亚洲成在线观看| 在线资源av| 欧美 日韩 综合| 91精品视频免费在线观看| 亚洲影视资源网| 精品日韩欧美在线| 欧美亚洲综合视频| 国产黄色一区| 国产一区不卡精品| 中文字幕最新精品| 中文字幕亚洲二区| 亚洲制服丝袜一区| 精品日韩视频在线观看| 91久久精品午夜一区二区| 日韩欧美国产成人一区二区| 99精品电影| 91久久精品网| 91精品国产综合久久久久久| 欧美日韩亚洲天堂| 91精品视频国产| 中文在线视频| 国产一区在线不卡| 91久久精品国产| 国产在线小视频| 国产色综合网| 高清国产一区| 91xxx在线观看| 中文字幕欧美日韩| 国产欧美日韩最新| 中文欧美日韩| 一区二区在线看| 国产视频不卡| 日韩中文字幕| 深夜福利一区二区| 国产视频中文字幕| 欧美日韩精品三区| 国产一级视频| 国产欧美日韩精品高清二区综合区| 国产乱一区二区| 欧美日韩在线观看成人| 在线视频三区| 日韩在线视频观看正片免费网站| 中文字幕国产欧美| 91精品国产91久久久久| 欧美综合精品| 蜜桃视频一日韩欧美专区| 欧美另类专区| 日韩在线 中文字幕| 日韩三级视频在线看| 日韩视频精品在线| 欧美日韩午夜在线视频| 中文字幕2020第一页| 亚洲综合视频一区| 欧美国产三级| 日本精品专区| 免费高清视频日韩| 国产手机精品视频| www.中文字幕在线| 欧美日韩国产综合久久| 92久久精品| 亚洲视频 中文字幕| 久久综合九色欧美综合狠狠| 日本а中文在线天堂| 国产无遮挡在线视频免费观看| www.av中文字幕| 91精品婷婷国产综合久久竹菊| 在线中文免费视频| 免费在线视频一区二区| 欧美日韩三级一区| 91精品婷婷国产综合久久竹菊| 久久麻豆视频| 一区二区三区在线播| 国产午夜精品全部视频播放| 午夜高潮免费视频| 久久精品国产视频| 午夜国产在线| 中文在线不卡视频| 国产欧美中文在线| 天天综合色天天| 欧美日韩免费高清| 亚洲视频色图| 午夜亚洲一区| 欧美日韩国产中字| 亚洲 欧美 精品| 91精品国产自产在线观看永久∴| 中文精品电影| 亚洲成av人片| 国产一区二中文字幕在线看| 亚洲国产无线乱码在线观看| 在线视频国产三级| 国产成人精品三级| 欧美日韩综合在线观看| 1区2区3区在线视频| 国产欧美日韩三级| 在线观看精品国产| 中文字幕最新精品| 中文 欧美 日韩| 日韩三级免费观看| 日韩中文字幕久久| 成年人黄国产| 91精品国产网站| 久久久久久自在自线| 日韩www在线| 久久精品蜜桃| 91精品免费观看| 影音先锋中文字幕在线观看| 中文字幕久精品免费视频| 国产一级在线播放| 日韩欧美中文第一页| 国产三级视频在线播放线观看| 国产999精品在线观看| 久久夜色精品国产噜噜亚洲av| 亚欧成人精品| 在线中文字幕视频| 国产最顶级的黄色片在线免费观看| 中文字幕在线亚洲| 91欧美日韩在线| 欧美国产一级片| 日韩不卡一二区| 国产成人精品免费久久久久| 中文字幕日韩亚洲| 精品日韩av| 影音先锋一区二区资源站| 日韩中文在线视频| 91精品国产色综合久久不卡蜜臀| 精品国产免费观看一区| 日韩欧美中文字幕视频| 日韩中文字幕二区| 91精品在线观看视频| 精品亚洲国内自在自线福利| 亚洲女同中文字幕| 国产视频1区| www在线视频| 欧美1234区| xxxcom在线观看| 本道综合精品| 日韩免费视频一区二区| 日韩av一区二区在线| 亚洲综合在线视频| 视频一区三区| 国产欧美高清在线| av一区在线观看| 日韩国产一区三区| 中文字幕欧美亚洲| 日韩欧美国产免费| 久久婷婷中文字幕| 日韩在线一区二区视频| 第一页在线观看| 日韩国产在线不卡视频| 日韩不卡一二三区| 欧美日韩中国免费专区在线看| 日韩wumaV| 日韩欧美综合| www.av中文字幕| 在线中文字幕视频| 99精品一级欧美片免费播放| 国产www.大片在线| 欧美日韩高清在线| 一区二区91| 精品不卡一区二区| 丰满少妇一区| 国产69精品久久久久孕妇国产69久久 | 福利在线国产| 精品无人国产偷自产在线| 日韩欧美一级在线| 视频一区二区不卡| 日韩中文字幕在线视频播放| 日韩精品乱码av一区二区| 国产免费久久久| 午夜伦欧美伦电影理论片| 精品在线观看一区| 日韩欧美国产午夜精品| 国产91大片| 91精品久久久久| 日韩av一区二区在线| 免费视频中文字幕| 在线不卡一区二区| 日韩欧美中文免费| 亚亚洲欧洲精品| 国产黄色网页|