【技术实现步骤摘要】
对象拦截方法、装置、介质及电子设备
本公开的实施例涉及计算机
,更具体地,本公开的实施例涉及对象拦截方法、对象拦截装置、计算机可读存储介质以及电子设备。
技术介绍
本部分旨在为权利要求书中陈述的本公开的实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。随着互联网技术的发展,各种系统或者软件的开发越来越得到人们的关注。钩子(Hook)技术是指通过拦截软件模块间的函数调用、消息传递、事件传递来修改或扩展操作系统、应用程序或其他软件组件的行为的各种技术。一般处理被拦截的函数调用、事件、消息的代码,被称为钩子(Hook)。目前的技术方案中,在对拦截对象进行Hook时,是通过在源代码运行时,修改底层数据结构的字段指向,实现对拦截对象的拦截调用。
技术实现思路
通过修改底层数据结构的字段指向的Hook方案虽然能够简单、快速地完成拦截对象的拦截回调,但是由于需要修改底层数据结构的字段指向,对底层的依赖较大,因此兼容性较差;其次,对于在编译期只参与编译不参与打包的对象(如系统默认的androi ...
【技术保护点】
1.一种对象拦截方法,其特征在于,包括:/n获取源代码,并确定所述源代码中的待拦截对象;/n在所述源代码的编译期,响应于字节码指令集注入操作,获取预设的软件开发工具包中注册的拦截接口对应的字节码指令集;/n通过预设的项目自动化构建工具将所述字节码指令集注入到所述待拦截对象中生成可拦截对象;/n在所述源代码的运行期,响应于调用所述可拦截对象,基于所述软件开发工具包通过所述可拦截对象中注入的所述字节码指令集调用所述拦截接口,以通过所述拦截接口实现对所述可拦截对象的拦截回调。/n
【技术特征摘要】
1.一种对象拦截方法,其特征在于,包括:
获取源代码,并确定所述源代码中的待拦截对象;
在所述源代码的编译期,响应于字节码指令集注入操作,获取预设的软件开发工具包中注册的拦截接口对应的字节码指令集;
通过预设的项目自动化构建工具将所述字节码指令集注入到所述待拦截对象中生成可拦截对象;
在所述源代码的运行期,响应于调用所述可拦截对象,基于所述软件开发工具包通过所述可拦截对象中注入的所述字节码指令集调用所述拦截接口,以通过所述拦截接口实现对所述可拦截对象的拦截回调。
2.根据权利要求1所述的方法,其特征在于,所述项目自动化构建工具包括配置解析器,所述确定所述源代码中的待拦截对象,包括:
通过所述配置解析器解析所述源代码对应的配置文件,以确定所述源代码中的待拦截对象,其中,所述待拦截对象包括待拦截的类和/或待拦截的函数方法;以及
根据所述待拦截对象生成待拦截对象列表并将所述待拦截对象列表存储在所述配置解析器中。
3.根据权利要求2所述的方法,其特征在于,通过所述配置解析器解析所述源代码对应的配置文件,以确定所述源代码中的待拦截对象,还包括:
获取所述源代码对应的配置文件中包含通配符的配置信息;
通过所述配置解析器解析所述包含通配符的配置信息,以确定所述包含通配符的配置信息对应的待拦截对象。
4.根据权利要求1所述的方法,其特征在于,所述项目自动化构建工具包括字节码处理引擎,在通过预设的项目自动化构建工具将所述字节码指令集注入到所述待拦截对象中生成可拦截对象之前,所述方法还包括:
基于所述字节码处理引擎遍历在编译期的所述源代码,获取所述源代码中的所有字节码文件以基于所述所有字节码文件生成所述可拦截对象。
5.根据权利要求4所述的方法,其特征在于,所述项目自动化构建工具包括字节码注入器,所述通过预设的项目自动化构建工具将所述字节码指令集注入到所述待拦截对象中生成可拦截对象,包括:
获取所述配置解析器存储的所述待拦截对象列表;
基于所述字节码处理引擎,根据所述待拦截对象列表在所述所有字节码文件中确定需要进行字节码注入处理的目标字节码文件;其中,所述目标字节码文件包括所述待拦截对象;
通过所述字节码处理引擎将所述目标字节码文件发送到所述字节码注入器...
【专利技术属性】
技术研发人员:胡琪,
申请(专利权)人:网易杭州网络有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。