91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

易語言中鉤子HOOK與APIHOOK的區別是什么

發布時間:2021-06-17 11:25:16 來源:億速云 閱讀:168 作者:小新 欄目:編程語言

這篇文章主要介紹了易語言中鉤子HOOK與APIHOOK的區別是什么,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

鉤子 原英文名稱 Hook ,鉤子的意思是指攔截或截獲。作用就是攔截程序中交互的數據,先經過我們預定的鉤子處理接口程序,處理過后,再交還給原處理程序,或者干脆阻止,吃掉這些數據,讓原處理程序什么也得不到。

鉤子原來是Windows操作系統常用來檢查系統與程序間通信的一些數據是否到達目標時用的,為不傳之密,后來隨著一些高手們的研究,逐漸的發現了這些秘密的技術并且公布了出來。同時還有更多的人在掌握了這些技術后,用在自已的軟件開發中,實現出奇招而超過其它同類軟件的功能而贏得市場。。 鉤子技術的種類上很多.

HOOK API和HOOK技術完全不同。盡管它們都是鉤子。HOOK鉤的是消息,它在系統將消息傳遞給應用程序之前截獲它,然后進行操作、或修改消息、或停止消息 的傳遞;

而HOOK API截獲的是應用程序對系統API的調用,它在應用程序對系統API的調用之前截獲此調用動作,讓其轉而調用我們所定義的函數(內容可能是進行一些操作 后再調用原系統API)。

關于HOOK技術,微軟為我們提供了現成的API,有固定的使用步驟。

而對于HOOK API技術,微軟并沒有向我們提供類似的API,沒有那么簡潔的步驟可供我們參考,也許是因為微軟并不希望我們用這樣的手段編程,所以相對要麻煩一些。

WINDOWS的鉤子函數可以認為是WINDOWS的主要特性之一。利用它們,您可以捕捉您自己進程或其它進程發生的事件。通過“鉤掛”,您可以給WINDOWS一個處理或過濾事件的回調函數,該函數也叫做“鉤子函數”,當每次發生您感興趣的事件時,WINDOWS都將調用該函數。一共有兩種類型的鉤子:局部的和遠程的。

局部鉤子僅鉤掛您自己進程的事件。

遠程的鉤子還可以將鉤掛其它進程發生的事件。遠程的鉤子又有兩種:

基于線程的 它將捕獲其它進程中某一特定線程的事件。簡言之,就是可以用來觀察其它進程中的某一特定線程將發生的事件。
系統范圍的 將捕捉系統中所有進程將發生的事件消息。 當您創建一個鉤子時,WINDOWS會先在內存中創建一個數據結構,該數據結構包含了鉤子的相關信息,然后把該結構體加到已經存在的鉤子鏈表中去。新的鉤子將加到老的前面。當一個事件發生時,如果您安裝的是一個局部鉤子,您進程中的鉤子函數將被調用。如果是一個遠程鉤子,系統就必須把鉤子函數插入到其它進程的地址空間,要做到這一點要求鉤子函數必須在一個動態鏈接庫中,所以如果您想要使用遠程鉤子,就必須把該鉤子函數放到動態鏈接庫中去。當然有兩個例外:工作日志鉤子和工作日志回放鉤子。這兩個鉤子的鉤子函數必須在安裝鉤子的線程中。原因是:這兩個鉤子是用來監控比較底層的硬件事件的,既然是記錄和回放,所有的事件就當然都是有先后次序的。所以如果把回調函數放在DLL中,輸入的事件被放在幾個線程中記錄,所以我們無法保證得到正確的次序。故解決的辦法是:把鉤子函數放到單個的線程中,譬如安裝鉤子的線程。

鉤子一共有14種,以下是它們被調用的時機:

WH_CALLWNDPROC 當調用SendMessage時
WH_CALLWNDPROCRET 當SendMessage的調用返回時
WH_GETMESSAGE 當調用GetMessage 或 PeekMessage時
WH_KEYBOARD 當調用GetMessage 或 PeekMessage 來從消息隊列中查詢WM_KEYUP 或 WM_KEYDOWN 消息時
WH_MOUSE 當調用GetMessage 或 PeekMessage 來從消息隊列中查詢鼠標事件消息時
WH_HARDWARE 當調用GetMessage 或 PeekMessage 來從消息隊列種查詢非鼠標、鍵盤消息時
WH_MSGFILTER 當對話框、菜單或滾動條要處理一個消息時。該鉤子是局部的。它時為那些有自己的消息處理過程的控件對象設計的。
WH_SYSMSGFILTER 和WH_MSGFILTER一樣,只不過是系統范圍的
WH_JOURNALRECORD 當WINDOWS從硬件隊列中獲得消息時
WH_JOURNALPLAYBACK 當一個事件從系統的硬件輸入隊列中被請求時
WH_SHELL 當關于WINDOWS外殼事件發生時,譬如任務條需要重畫它的按鈕.
WH_CBT 當基于計算機的訓練(CBT)事件發生時
WH_FOREGROUNDIDLE 由WINDOWS自己使用,一般的應用程序很少使用
WH_DEBUG 用來給鉤子函數除錯

感謝你能夠認真閱讀完這篇文章,希望小編分享的“易語言中鉤子HOOK與APIHOOK的區別是什么”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镶黄旗| 陇南市| 黔西县| 南宫市| 蒙城县| 竹北市| 洮南市| 凤庆县| 贺兰县| 翁牛特旗| 高邮市| 京山县| 称多县| 高陵县| 江川县| 四川省| 杭州市| 大兴区| 苍溪县| 贡觉县| 健康| 永川市| 彰化市| 凤阳县| 大竹县| 特克斯县| 双鸭山市| 吴旗县| 永宁县| 黄大仙区| 卢湾区| 昆山市| 西和县| 禹州市| 广德县| 石景山区| 军事| 介休市| 凤翔县| 自贡市| 宝山区|