[发明专利]一种安卓应用程序防逆向破解的加固方法、系统及解密方法有效
申请号: | 201611265457.0 | 申请日: | 2016-12-30 |
公开(公告)号: | CN106778103B | 公开(公告)日: | 2020-03-13 |
发明(设计)人: | 郑伟;龚蔚 | 申请(专利权)人: | 上海掌门科技有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 北京辰权知识产权代理有限公司 11619 | 代理人: | 郎志涛 |
地址: | 201203 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用程序 逆向 破解 加固 方法 系统 解密 | ||
1.一种安卓应用程序防逆向破解的加固方法,包括以下步骤:
使用安卓安装包编译工具对安卓应用程序进行反向汇编,生成中间文件;
遍历生成中间文件中的类,对需要加载的类设置对应的类构造器;
抽取出除了类构造器和初始化函数之外的所有中间文件进行加密并存储,对所述中间文件进行抽取操作,生成空壳程序文件和入口地址文件,
调用动态链接库对可执行文件进行加固;以及
将加固文件写入空壳程序文件中;其中
所述设置对应的类构造器包括:遍历smali文件中的类函数,确定那些类是需要执行的,自动添加<clinit>标记;当读到<clinit>标记时,表示要指引执行这段程序。
2.根据权利要求1所述的方法,在抽取出除了类构造器和初始化函数之外的所有中间文件进行加密之前,还包括:使用安卓安装包编译工具对上述设置了类构造器的中间文件进行汇编处理,重新编译成可执行文件。
3.根据权利要求1所述的方法,对所述中间文件进行加密还包括:
对所述入口地址文件进行修改操作,生成修改入口。
4.根据权利要求1所述的方法,所述空壳程序文件中还包括解密流程,该解密流程包括:当类需要装载的时候,调用类构造器,通过类构造器调用底层函数进而解密出代码;使用数学统计方法探测虚拟机是否被恶意篡改。
5.根据权利要求4所述的方法,所述数学统计方法包括方差均化方式。
6.一种安卓应用程序防逆向破解的加固系统,包括以下单元:
获取安装包单元:用于获取原始安卓安装包;
反向汇编单元:利用安卓安装包编译工具对安卓应用程序反向汇编从而得到中间文件;
类构造器单元:遍历生成的中间文件中的类,对需要加载的类设置对应的类构造器;所述设置对应的类构造器包括:遍历smali文件中的类函数,确定那些类是需要执行的,自动添加<clinit>标记;当读到<clinit>标记时,表示要指引执行这段程序;
抽取加密单元:抽取出除了类构造器和初始化函数之外的所有中间文件进行加密并存储,对所述中间文件进行抽取操作,生成空壳程序文件和入口地址文件;
加固单元,调用动态链接库对可执行文件进行加固;以及
写入单元,用于将动态链接库写入空壳程序文件中。
7.根据权利要求6所述的系统,所述抽取加密单元在抽取出除了类构造器和初始化函数之外的所有中间文件进行加密之前,还包括:使用安卓安装包编译工具对上述设置了类构造器的中间文件进行汇编处理,重新编译成可执行文件。
8.根据权利要求6所述的系统,所述抽取加密单元还包括:
对所述入口地址文件进行修改操作,生成修改入口。
9.根据权利要求6所述的系统,所述空壳程序文件中还包括解密单元,该解密单元用于当类需要装载的时候,调用类构造器,通过类构造器调用底层函数进而解密出代码;使用数学统计方法探测虚拟机是否被恶意篡改。
10.根据权利要求9所述的系统,所述数学统计方法包括方差均化方式。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海掌门科技有限公司,未经上海掌门科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611265457.0/1.html,转载请声明来源钻瓜专利网。