[發明專利]鉤子處理方法、設備及可讀存儲介質在審
| 申請號: | 202211394181.1 | 申請日: | 2022-11-08 |
| 公開(公告)號: | CN115756887A | 公開(公告)日: | 2023-03-07 |
| 發明(設計)人: | 王萬鋒 | 申請(專利權)人: | 網宿科技股份有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54;G06F9/445 |
| 代理公司: | 北京華智則銘知識產權代理有限公司 11573 | 代理人: | 陳文香 |
| 地址: | 200030 上海市徐匯*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 鉤子 處理 方法 設備 可讀 存儲 介質 | ||
本發明實施例提供一種鉤子處理方法、設備和可讀存儲介質,電子設備識別到啟動目標程序的啟動指令后,響應于該啟動指令時創建目標進程,向目標進程注入控制DLL后,向目標進程注入目標DLL,利用控制DLL獲取目標進程已成功加載的DLL并向目標DLL發送回調通知。當目標進程已成功加載的DLL包含目標DLL需要HOOK的API對應的第一DLL時,HOOK該第一DLL的API。采用該種方案,即使目標DLL注入時機較早,也不會主動去HOOK第一DLL的API,只有在第一DLL被目標進程成功加載后,目標DLL才去HOOK第一DLL的API,有效防止目標進程崩潰,提高HOOK處理的穩定性,進而也高業務穩定性。
技術領域
本申請實施例涉及安全技術領域,特別涉及一種鉤子處理方法、設備和可讀存儲介質。
背景技術
終端安全領域中,在進程中注入動態鏈接庫(Dynamic Link Library,DLL),從而對進程的功能進行擴展。常見的DLL注入方式包括內核級別的注入和應用層級別的注入。
全進程的注入場景中,每次有新的進程起來后,需要對新進程注入DLL。由于內核級別的注入方式注入時機早、穩定性好,因此被廣泛應用于全進程的注入場景。另外,為了更好的收集數據等,通過具有鉤子功能的應用程序編程接口(HOOK ApplicationProgramming Interface,HOOK API)對進程進行鉤子(HOOK)處理,以攔截需要的數據。
然而,DLL注入的時機過早,此時,若進程還未加載該DLL需要HOOK的API對應的DLL,則容易導致進程崩潰,甚至導致黑屏、卡頓等現象。
發明內容
本申請實施例提供一種鉤子處理方法、設備和可讀存儲介質,通過控制DLL向目標DLL發送回調通知,以使得目標DLL確定出目標進程已成功加載第一DLL后,HOOK第一DLL的API,避免造成目標進程崩潰,提高HOOK處理的穩定性。
第一方面,本申請實施例提供一種鉤子處理方法,包括:
響應于啟動目標程序的啟動指令,創建目標進程;
向所述目標進程注入控制DLL,所述控制DLL用于獲取所述目標進程已成功加載的DLL;
向所述目標進程注入目標DLL;
利用所述控制DLL向所述目標DLL發送回調通知,所述回調通知用于指示所述目標進程已成功加載的DLL;
當已成功加載的DLL包含第一DLL時,利用所述目標DLL對所述第一DLL的應用程序編程接口API進行鉤子HOOK處理,所述第一DLL為所述目標DLL需要進行鉤子處理的API對應的DLL。
第二方面,本申請實施例提供一種鉤子處理裝置,包括:
響應模塊,用于響應于啟動目標程序的啟動指令,創建目標進程;
注入模塊,用于向所述目標進程注入控制DLL,所述控制DLL用于獲取所述目標進程已成功加載的DLL,向所述目標進程注入目標DLL;
收發模塊,用于利用所述控制DLL向所述目標DLL發送回調通知,所述回調通知用于指示所述目標進程已成功加載的DLL;
處理模塊,用于當已成功加載的DLL包含第一DLL時,利用所述目標DLL對所述第一DLL的應用程序編程接口API進行鉤子HOOK處理,所述第一DLL為所述目標DLL需要進行鉤子處理的API對應的DLL。
第三方面,本申請實施例提供一種電子設備,包括:處理器、存儲器及存儲在所述存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述計算機程序時使得所述電子設備實現如上第一方面或第一方面各種可能的實現方式所述的方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于網宿科技股份有限公司,未經網宿科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202211394181.1/2.html,轉載請聲明來源鉆瓜專利網。





