欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

URL執行掛鉤是什么

老白2年前20瀏覽0評論

URL執行掛鉤是什么?

基本概念鉤子(Hook),是Windows消息處理機制的一個平臺,應用程序可以在上面設置子程以監視指定窗口的某種消息,而且所監視的窗口可以是其他進程所創建的。當消息到達后,在目標窗口處理函數之前處理它。鉤子機制允許應用程序截獲處理window消息或特定事件。 鉤子實際上是一個處理消息的程序段,通過系統調用,把它掛入系統。每當特定的消息發出,在沒有到達目的窗口前,鉤子程序就先捕獲該消息,亦即鉤子函數先得到控制權。這時鉤子函數即可以加工處理(改變)該消息,也可以不作處理而繼續傳遞該消息,還可以強制結束消息的傳遞。鉤子也可以理解為WINDOWS留給我們的后門,比如你想控制鍵盤,在DOS時代很簡單通過INT即可,而WINDOWS時代不允許我們直接操作硬件;由于WINDOWS是消息驅動,所以我們可以攔截鍵盤消息以達到控制鍵盤的目的。但是控制自己進程的消息固然很簡單,要控制所有進程消息要利用鉤子了。將鉤子函數放在DLL中,所有的有關鍵盤的消息都必須經過鉤子函數過濾,這樣你就可以為所欲為了。 WINDOWS下的鉤子程序就像DOS下的TSR(內存駐留程序)一樣,用來截獲WINDOWS下的 特定的消息,進行相應的處理。比如可以截獲鍵盤輸入的消息,來獲得鍵盤輸入的信息等。鉤子程序可以通過API調用來駐留和脫鉤。運行機制每一個Hook(鉤子)都有一個與之相關聯的指針列表,稱之為鉤子鏈表,由系統來維護。這個列表的指針指向指定的,應用程序定義的,被Hook子程調用的回調函數,也就是該鉤子的各個處理子程。當與指定的Hook類型關聯的消息發生時,系統就把這個消息傳遞到Hook子程。 一些Hook子程可以只監視消息,或者修改消息,或者停止消息的前進,避免這些消息傳遞到下一個Hook子程或者目的窗口。最近安裝的鉤子放在鏈的開始, 而最早安裝的鉤子放在最后,也就是后加入的先獲得控制權。Windows 并不要求鉤子子程的卸載順序一定得和安裝順序相反。每當有一個鉤子被卸載,Windows 便釋放其占用的內存,并更新整個Hook鏈表。如果程序安裝了鉤子,但是在尚未卸載鉤子之前就結束了,那么系統會自動為它做卸載鉤子的操作。鉤子的分類 一. 按事件分類,有如下的幾種常用類型 (1) 鍵盤鉤子和低級鍵盤鉤子可以監視各種鍵盤消息。 (2) 鼠標鉤子和低級鼠標鉤子可以監視各種鼠標消息。 (3) 外殼鉤子可以監視各種Shell事件消息。比如啟動和關閉應用程序。 (4) 日志鉤子可以記錄從系統消息隊列中取出的各種事件消息。 (5) 窗口過程鉤子監視所有從系統消息隊列發往目標窗口的消息。 此外,還有一些特定事件的鉤子提供給我們使用,不一一列舉。 二. 按使用范圍分類,主要有線程鉤子和系統鉤子 (1) 線程鉤子監視指定線程的事件消息。 (2) 系統鉤子監視系統中的所有線程的事件消息。因為系統鉤子會影響系統中所有的應用程序,所以鉤子函數必須放在獨立的動態鏈接庫(DLL)中。這是系統鉤子和線程鉤子很大的不同之處。 幾點需要說明的地方: (1) 如果對于同一事件(如鼠標消息)既安裝了線程鉤子又安裝了系統鉤子,那么系統會自動先調用線程鉤子,然后調用系統鉤子。 (2) 對同一事件消息可安裝多個鉤子處理過程,這些鉤子處理過程形成了鉤子鏈。當前鉤子處理結束后應把鉤子信息傳遞給下一個鉤子函數。而且最近安裝的鉤子放在鏈的開始,而最早安裝的鉤子放在最后,也就是后加入的先獲得控制權。 (3) 鉤子特別是系統鉤子會消耗消息處理時間,降低系統性能。只有在必要的時候才安裝鉤子,在使用完畢后要及時卸載。

java 線程回調,URL執行掛鉤是什么