[发明专利]一种安卓应用的加固方法和装置有效
| 申请号: | 201711260519.3 | 申请日: | 2017-12-04 |
| 公开(公告)号: | CN107977552B | 公开(公告)日: | 2021-09-07 |
| 发明(设计)人: | 徐伟 | 申请(专利权)人: | 北京奇虎科技有限公司 |
| 主分类号: | G06F21/12 | 分类号: | G06F21/12;G06F21/62 |
| 代理公司: | 北京恒博知识产权代理有限公司 11528 | 代理人: | 范胜祥 |
| 地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 应用 加固 方法 装置 | ||
本发明公开了一种安卓应用的加固方法和装置,所述方法包括:对所述安卓应用的待加密文件中的至少部分函数进行加密,得到与所述待加密文件对应的加密文件;生成用于加载所述加密文件的库文件,在所述库文件中写入与加密的各函数对应的调用逻辑;将所述库文件和所述待加密文件打包进所述安卓应用的安装包中。该技术方案示出的加密方式并不是单纯地对文件整体进行加密,而是对其中的各函数进行加密,由于函数的调用是在应用启动后,函数的解密过程是一个动态过程,这样就增大了破解难度,保护了开发者的利益。
技术领域
本发明涉及计算机技术领域,具体涉及一种安卓应用的加固方法和装置。
背景技术
“王者荣耀”等手机游戏的流行体现了游戏业发展的趋势,游戏应用作为手机应用中的主流应用,能够为应用开发者带来巨大的经济利益。当然,除了游戏应用以外,工作、教育等其他类别的应用也可以以各种方式为应用开发者谋求利益。
利益驱动着破解者对应用进行破解,也驱动着开发者对应用进行加固,矛与盾的攻坚是无休止的,而安卓应用因为开源系统环境的原因,破解技术与加固技术的发展都十分迅速,对文件整体进行加密的手段变得越来越容易被破解,难以保护开发者的利益。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的安卓应用的加固方法和装置。
依据本发明的一个方面,提供了一种安卓应用的加固方法,包括:
对所述安卓应用的待加密文件中的至少部分函数进行加密,得到与所述待加密文件对应的加密文件;
生成用于加载所述加密文件的库文件,在所述库文件中写入与加密的各函数对应的调用逻辑;
将所述库文件和所述待加密文件打包进所述安卓应用的安装包中。
可选地,所述库文件用于在所述安卓应用被启动后,为所述加密文件申请第一内存块,将所述加密文件加载到所述第一内存块中。
可选地,所述调用逻辑用于在调用函数时,为待调用的函数申请第二内存块;
在所述第一内存块中定位待调用的函数的函数指令块,将所述函数指令块从第一内存块复制到第二内存块;
对第二内存块中的函数指令块进行解密,编译解密后的函数指令块并进行调用。
可选地,所述安卓应用是基于Unity3D引擎开发的游戏应用,所述待加密文件是动态链接库dll文件,所述库文件为动态链接库SO文件。
可选地,所述dll文件为Assembly-CSharp.dll文件,所述对所述安卓应用的待加密文件中的至少部分函数进行加密,得到与所述待加密文件对应的加密文件包括:
基于ECMA-335标准,对所述Assembly-CSharp.dll文件进行解析,得到所述Assembly-CSharp.dll文件中的所有函数;
从得到的函数中选择一个或多个函数,对选择的各函数的指令进行加密,得到加密后的Assembly-CSharp.dll文件。
可选地,所述SO文件是libmono.so文件。
可选地,该方法还包括:
提供加固接口,接收通过所述加固接口提交的安卓应用的安装包;
对所述安装包进行解包,得到解包文件,所述解包文件包含所述待加密文件和用于加载所述待加密文件的库文件;
所述将所述库文件和所述待加密文件打包进所述安卓应用的安装包中包括:以加密文件替换所述解包文件中的待加密文件,以生成的库文件替换所述解包文件中的用于加载所述待加密文件的库文件,将替换后的解包文件重新打包为安装包。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711260519.3/2.html,转载请声明来源钻瓜专利网。





