鉤子(hook),是windows訊息處理機制的乙個平台,應用程式可以在上面設定子程以監視指定視窗的某種訊息,而且所監視的視窗可以是其他程序所建立的。當訊息到達後,在目標視窗處理函式之前處理它。
鉤子機制允許應用程式截獲處理window訊息或特定事件。
鉤子實際上是乙個處理訊息的程式段,通過系統呼叫,把它掛入系統。每當特定的訊息發出,在沒有到達目的視窗前,鉤子程式就先捕獲該訊息,亦即鉤子函式先得到控制權。這時鉤子函式即可以加工處理(改變)該訊息,也可以不作處理而繼續傳遞該訊息,還可以強制結束訊息的傳遞。
hook api是指windows開放給程式設計師的程式設計介面,使得在使用者級別下可以對作業系統進行控制,也就是一般的應用程式都需要呼叫api來完成某些功能,hook api的意思就是在這些應用程式呼叫真正的系統api前可以先被截獲,從而進行一些處理再呼叫真正的api來完成功能。
hook分為三種:local hook 和 remote hook,還有一種是system-wide local hook。
local hook就是指程式hook的就是本程式中的執行緒。
remote hook有兩種形式:一種是對其他程式中某個特定的執行緒;一種是對整個系統。
system–wide local hook 是一種比較特殊的。它具有remote hook的功能,又可以用local hook 的表現手法,實際上就是wh_journalrecord和wh_journalplayback兩種hook。
remote hook 必須封裝在dll中。這是因為remote hook是針對整個系統或其他程序的執行緒,因此hook必須封裝成dll,才可以植入到其他程序進行監控。而system-wide local hook採用的是另外一種架構,系統中的執行緒請求或獲得乙個硬體訊息的話,系統會呼叫那個安裝有hook的執行緒,並執行它的filter function.然後再返回給請求硬體訊息的執行緒。這種架構有乙個缺點就是如果hook filter function的處理中進入無限迴圈的話,那麼整個系統將停留再迴圈中,無法切換到其他執行緒。為了處理這個缺陷,window使用了乙個辦法來處理:就是ctrl+esc鍵,如果使用者按下ctrl+esc鍵,則系統將會傳送乙個wm_canceljounal訊息到有掛上jounal 系列hook的執行緒上面
啥 啥 啥,服務治理是個啥
首先,先說下服務治理的邊界,本質上任何能提公升服務可用性,效能,讓服務更穩定等等,只要是能讓服務執行的更好,都屬於服務治理的範疇。服務治理比較常見的話題 服務發現,服務變更管理,服務監控,服務擴容縮容,服務自我保護,服務降級,服務授權防攻擊,服務上線驗證和灰度發布,服務問題定位和跟蹤,服務負載,服務...
啥是佩奇?哦不,啥是佇列
一天,一群小可愛們在排隊買奶茶。店主認識第乙個小可愛,給他打了骨折 大霧 小可愛買到了奶茶,他快樂的 真的?離開了。其他人往前挪一位 然後,目前排在第一位的小可愛買了奶茶,一蹦一跳的離開了 接下來,其他人往前挪一位 這樣進行下去,最後,只剩下了一位小可愛,他買了奶茶,興沖沖的離開了 沒有人啦!奶茶店...
愛情是個啥
其實起了這個名字有些勉為其難,只是因為上午乘公車看了一篇有關愛情的採訪,受訪者是乙個學者。緣起是乙份抽樣調查。看了其間的內容腦海裡忽然產生了這個問題,所以就以此為題目了。文章中提到的調查資料顯示現在人們獲得的愛情好像是越來越少了,因為人們對愛情的追求越來越高。現代社會傳播 溝通 交流的渠道越來越多,...