[发明专利]字节码修改方法、装置、计算机设备和存储介质在审
申请号: | 202210347493.0 | 申请日: | 2022-04-01 |
公开(公告)号: | CN114816515A | 公开(公告)日: | 2022-07-29 |
发明(设计)人: | 王豪 | 申请(专利权)人: | 上海数禾信息科技有限公司 |
主分类号: | G06F8/72 | 分类号: | G06F8/72;G06F8/71;G06F8/41 |
代理公司: | 北京市万慧达律师事务所 11111 | 代理人: | 劳奕琴 |
地址: | 201206 上海市浦东新区自*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 字节 修改 方法 装置 计算机 设备 存储 介质 | ||
本申请涉及一种字节码修改方法、装置、计算机设备和存储介质,所述方法包括:获取class字节码文件;读取配置文件,配置文件中包含用户隐私信息调用方法的信息以及预设自定义方法的信息;遍历class字节码文件中所有方法的调用信息,将用户隐私信息调用方法的信息与class字节码文件中所有方法的调用信息进行匹配,基于匹配结果获得class字节码文件中目标用户隐私调用方法的字节码;将目标用户隐私调用方法的字节码修改为预设自定义方法的信息对应的字节码。上述方法能够在编译过程中将class字节码文件中用户隐私信息调用方法进行修改,提高软件项目中获取用户隐私信息的修改效率。
技术领域
本申请涉及字节码处理技术领域,特别是涉及一种字节码修改方法、装置、计算机设备和存储介质。
背景技术
随着App隐私数据获取管控的日益严峻,网信办等监管部门开展了多次针对App侵害用户隐私权益的专项整治工作,要求App获取个人信息应当具有明确、合理的目的,不得过度收集个人信息。对于软件项目中获取个人信息的源代码,可以按照要求进行修改,但软件项目中往往会集成很多第三方SDK(例如推送、定位、统计、分享等),这些第三方SDK中也会有获取个人信息的行为,这些第三方SDK源代码不能直接修改,从而软件项目中产生的软件无法满足网信办的合规要求。
解决第三方SDK获取个人信息问题,目前有两种方案:
其一、推动SDK供应商整改方案。该方案,分别向不合规的SDK供应商提需求,供应商整改后使用升级合规的SDK版本,缺点如下:
供应商较多,效率低。
进度不可控,依赖第三方。
有些信息为SDK必需。
其二、修改SDK源代码方案。该方案,第三方SDK源代码不能直接修改,需要借助反编译工具,分别对不合规的SDK进行反编译、修改源代码完成合规、再次打包,缺点如下:
过程繁琐、效率低。
SDK大多经过混淆,阅读困难。
以后升级SDK版本,需要再次修改。
发明内容
基于此,有必要针对上述技术问题,提供一种字节码修改方法、装置、计算机设备和存储介质,能够在编译过程中将class字节码文件中用户隐私信息调用方法进行修改,不影响原来软件项目中获取用户隐私信息的设置逻辑,提高软件项目中获取用户隐私信息的修改效率。
一种字节码修改方法,包括:获取class字节码文件;读取配置文件,配置文件中包含用户隐私信息调用方法的信息以及预设自定义方法的信息;遍历class字节码文件中所有方法的调用信息,将用户隐私信息调用方法的信息与class字节码文件中所有方法的调用信息进行匹配,基于匹配结果获得class字节码文件中目标用户隐私调用方法的字节码;将目标用户隐私调用方法的字节码修改为预设自定义方法的信息对应的字节码。
在其中一个实施例中,class字节码文件通过对项目源代码、依赖的资源文件以及第三方SDK源代码中的一项或多项进行编译得到。
在其中一个实施例中,class字节码文件通过对包含第三方SDK源代码的代码文件进行编译得到,用户隐私信息调用方法包括第三方SDK源代码中设置的用户隐私调用方法,预设自定义方法包括钩子函数的调用方法;或,class字节码文件通过对包含项目源代码的代码文件进行编译得到,用户隐私信息调用方法包括项目源代码中设置的用户隐私调用方法,预设自定义方法包括钩子函数的调用方法。
在其中一个实施例中,预设自定义方法的信息包括同意或不同意隐私协议、缓存或不缓存信息、返回虚拟信息、拦截所述用户隐私信息调用方法的调用中的一项或多项信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海数禾信息科技有限公司,未经上海数禾信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210347493.0/2.html,转载请声明来源钻瓜专利网。