1. 程式人生 > >什麽是HOOK(鉤子):消息攔截與處理

什麽是HOOK(鉤子):消息攔截與處理

自定義 窗口 信息 機制 類信息 攔截 tails target 鉤子函數

對於Windows系統,它是建立在事件驅動機制上的,說白了就是整個系統都是通過消息傳遞實現的。hook(鉤子)是一種特殊的消息處理機制,它可以監視系統或者進程中的各種事件消息,截獲發往目標窗口的消息並進行處理。所以說,我們可以在系統中自定義鉤子,用來監視系統中特定事件的發生,完成特定功能,如屏幕取詞,監視日誌,截獲鍵盤、鼠標輸入等等。
鉤子的種類很多,每種鉤子可以截獲相應的消息,如鍵盤鉤子可以截獲鍵盤消息,外殼鉤子可以截取、啟動和關閉應用程序的消息等。鉤子可以分為線程鉤子和系統鉤子,線程鉤子可以監視指定線程的事件消息,系統鉤子監視系統中的所有線程的事件消息。因為系統鉤子會影響系統中所有的應用程序,所以鉤子函數必須放在獨立的動態鏈接庫(DLL) 中。
所以說,hook(鉤子)就是一個Windows消息的攔截機制,可以攔截單個進程的消息(線程鉤子),也可以攔截所有進程的消息(系統鉤子),也可以對攔截的消息進行自定義的處理。Windows消息帶了一些程序有用的信息,比如Mouse類信息,就帶有鼠標所在窗體句柄、鼠標位置等信息,攔截了這些消息,就可以做出例如金山詞霸一類的屏幕取詞功能。

https://blog.csdn.net/hjxwudiha931721/article/details/76064165

什麽是HOOK(鉤子):消息攔截與處理