[发明专利]安卓源代码保护方法和装置有效
申请号: | 202010294655.X | 申请日: | 2020-04-15 |
公开(公告)号: | CN111597514B | 公开(公告)日: | 2023-10-13 |
发明(设计)人: | 刘旭东;王巍;刘洪刚 | 申请(专利权)人: | 卓望数码技术(深圳)有限公司 |
主分类号: | G06F21/12 | 分类号: | G06F21/12 |
代理公司: | 深圳市恒和大知识产权代理有限公司 44479 | 代理人: | 姚炜达 |
地址: | 518000 广东省深圳市南山区粤海街*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 源代码 保护 方法 装置 | ||
1.安卓源代码保护方法,其特征在于,包括:
转换原始dex文件为class文件;
抽取并转译所述class文件中的函数为对应的C++的函数,得到cpp文件;
通过定制的NDK编译所述cpp文件得到经过加固的ABI动态库;
将抽取函数后的所述class文件转换成第二dex文件;
打包所述ABI动态库和所述第二dex文件以形成新的代码文件。
2.根据权利要求1所述的安卓源代码保护方法,其特征在于,所述抽取并转译所述class文件中的函数为对应的C++的函数,包括:
通过jni反射调用所述class文件中的函数的字节码,实现相同的代码逻辑以得到对应的C或C++版本的函数。
3.根据权利要求1所述的安卓源代码保护方法,其特征在于,所述定制的NDK具体用于:
虚拟化保护、内容混淆、识别特定代码并分割、遍历并添加虚拟机got表、遍历并处理LLVM固有指令、遍历并添加虚拟机全局变量、调用后端转换器生成虚拟机字节码和修改待保护函数为虚拟机中间函数。
4.根据权利要求1所述的安卓源代码保护方法,其特征在于,所述得到cpp文件的过程,包括:
翻译函数中的字节码指令;
生成Native常量池文件;
初始化Native函数的运行环境;
注册Native函数;
替换VMakelist文件中的源文件列表。
5.根据权利要求4所述的安卓源代码保护方法,其特征在于,还包括:
提供辅助类以处理接口函数;
针对具体的函数属性进行对应的处理。
6.安卓源代码保护装置,其特征在于,包括处理器,所述处理器用于执行:
转换原始dex文件为class文件;
抽取并转译所述class文件中的函数为对应的C++的函数,得到cpp文件;
通过定制的NDK编译所述cpp文件得到经过加固的ABI动态库;
将抽取函数后的所述class文件转换成第二dex文件;
打包所述ABI动态库和所述第二dex文件以形成新的代码文件。
7.根据权利要求6所述的安卓源代码保护装置,其特征在于,所述抽取并转译所述class文件中的函数为对应的C++的函数,包括:
通过jni反射调用所述class文件中的函数的字节码,实现相同的代码逻辑以得到对应的C或C++版本的函数。
8.根据权利要求6所述的安卓源代码保护装置,其特征在于,所述定制的NDK具体用于:
虚拟化保护、内容混淆、识别特定代码并分割、遍历并添加虚拟机got表、遍历并处理LLVM固有指令、遍历并添加虚拟机全局变量、调用后端转换器生成虚拟机字节码和修改待保护函数为虚拟机中间函数。
9.根据权利要求6所述的安卓源代码保护装置,其特征在于,所述得到cpp文件的过程,包括:
翻译函数中的字节码指令;
生成Native常量池文件;
初始化Native函数的运行环境;
注册Native函数;
替换VMakelist文件中的源文件列表。
10.根据权利要求9所述的安卓源代码保护装置,其特征在于,所述得到cpp文件的过程,还包括:
提供辅助类以处理接口函数;
针对具体的函数属性进行对应的处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于卓望数码技术(深圳)有限公司,未经卓望数码技术(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010294655.X/1.html,转载请声明来源钻瓜专利网。