[发明专利]钩子处理方法、设备及可读存储介质在审
申请号: | 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.vipzhuanli.com/pat/books/202211394181.1/2.html,转载请声明来源钻瓜专利网。