歡迎來到第十一天,前面我們初步介紹DLL以及DLL的調用,在實作注入之前我們先來探討一下DLL hook常常聽到,但是那到底是甚麼東西?廢話不多說我們直接進入。
又稱為鉤子編程,也是掛鉤,透過攔截DLL間的函數調用、消息傳遞、事件傳遞來進行修改
調試、擴展但常常也被用作惡意代碼;遊戲外掛是一種很經典的例子。
在應用程式執行前,修改exe檔,這類型的方法是透過找到函數調用的入口,修改入口點讓函數被執行前先執行其他的代碼。
透過運行的時候插入事件鉤子,在Winodws系統中允許插入鉤子以處理或修改對話框、滾動條、菜單等的系統事件;插入、刪除、處理或修改鍵盤滑鼠事件。Linux則是允許類似的鉤子通過NetFilter以處理網絡事件。
也可以攔截進程的函式庫調用,在函數調用開始處注入修改碼。
今天初步了解DLL hook是甚麼東西以及怎麼去實現,當然在現在很多程式都有很多預防機制,這其中又牽扯到bypass甚麼等等,而要將那個bypass弄掉又更麻煩了,今天就先到這裡了,我們明天見。