[发明专利]字节码修改方法、装置、计算机设备和存储介质在审
申请号: | 202210347493.0 | 申请日: | 2022-04-01 |
公开(公告)号: | CN114816515A | 公开(公告)日: | 2022-07-29 |
发明(设计)人: | 王豪 | 申请(专利权)人: | 上海数禾信息科技有限公司 |
主分类号: | G06F8/72 | 分类号: | G06F8/72;G06F8/71;G06F8/41 |
代理公司: | 北京市万慧达律师事务所 11111 | 代理人: | 劳奕琴 |
地址: | 201206 上海市浦东新区自*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 字节 修改 方法 装置 计算机 设备 存储 介质 | ||
1.一种字节码修改方法,所述方法包括:
获取class字节码文件;
读取配置文件,所述配置文件中包含用户隐私信息调用方法的信息以及预设自定义方法的信息;
遍历所述class字节码文件中所有方法的调用信息,将所述用户隐私信息调用方法的信息与所述class字节码文件中所有方法的调用信息进行匹配,基于匹配结果获得所述class字节码文件中目标用户隐私调用方法的字节码;
将所述目标用户隐私调用方法的字节码修改为所述预设自定义方法的信息对应的字节码。
2.根据权利要求1所述的方法,其特征在于,所述class字节码文件通过对项目源代码、依赖的资源文件以及第三方SDK源代码中的一项或多项进行编译得到。
3.根据权利要求2所述的方法,其特征在于,所述class字节码文件通过对包含所述第三方SDK源代码的代码文件进行编译得到,所述用户隐私信息调用方法包括所述第三方SDK源代码中设置的用户隐私调用方法,所述预设自定义方法包括钩子函数的调用方法;
或,
所述class字节码文件通过对包含所述项目源代码的代码文件进行编译得到,所述用户隐私信息调用方法包括所述项目源代码中设置的用户隐私调用方法,所述预设自定义方法包括钩子函数的调用方法。
4.根据权利要求1所述的方法,其特征在于,所述预设自定义方法的信息包括同意或不同意隐私协议、缓存或不缓存信息、返回虚拟信息、拦截所述用户隐私信息调用方法的调用中的一项或多项信息。
5.根据权利要求1所述的方法,其特征在于,所述将所述目标用户隐私调用方法的字节码修改为所述预设自定义方法的信息对应的字节码的步骤之后,还包括:
将修改操作后得到的class字节码文件转换成dex文件;
将所述dex文件存入apk包中。
6.根据权利要求1所述的方法,其特征在于,所述获取class字节码文件,包括:
在Gradle插件注册自定义Transform对象;
使用所述Transform对象获取class字节码文件。
7.根据权利要求1所述的方法,其特征在于,所述遍历所述class字节码文件中所有方法的调用信息,包括:采用字节码操控框架ASM框架遍历所述class字节码文件中所有方法的调用信息;
所述将所述目标用户隐私调用方法的字节码修改为所述预设自定义方法的信息对应的字节码,包括:采用所述字节码操控框架ASM框架将所述目标用户隐私调用方法的字节码修改为所述预设自定义方法的信息对应的字节码。
8.一种字节码修改装置,其特征在于,所述装置包括:
获取模块,用于获取class字节码文件;
读取模块,用于读取配置文件,所述配置文件中包含用户隐私信息调用方法的信息以及预设自定义方法的信息;
匹配模块,用于遍历所述class字节码文件中所有方法的调用信息,将所述用户隐私信息调用方法的信息与所述class字节码文件中所有方法的调用信息进行匹配,基于匹配结果获得所述class字节码文件中目标用户隐私调用方法的字节码;
修改模块,用于将所述目标用户隐私调用方法的字节码修改为所述预设自定义方法的信息对应的字节码。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海数禾信息科技有限公司,未经上海数禾信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210347493.0/1.html,转载请声明来源钻瓜专利网。