軟件HOOK即鈎子函數,鈎子函數是Windows消息處理機制的一部分,通過設置“鈎子”,應用程序可以在系統級對所有消息、事件進行過濾,訪問在正常情況下無法訪問的消息。
鈎子的本質是一段用以處理系統消息的程序,通過系統調用,把它挂入系統。每當特定的消息發出,在沒有到達目的窗口前,鈎子程序就先捕獲該消息,亦即鈎子函數先得到控制權。這時鈎子函數即可以加工處理(改變)該消息,也可以不作處理而繼續傳遞該消息,還可以強制結束消息的傳遞。
HOOK技術在windows系統下編程,應該會接觸到api函數的使用,常用的api函數大概有2000個左右。今天随着控件,stl等高效編程技術的出現,api的使用概率在普通的用戶程序上就變得越來越小了。當諸如控件這些現成的手段不能實現的功能時,我們還需要借助api。