[发明专利]安卓系统中应用程序加密方法及系统在审
申请号: | 201510305704.4 | 申请日: | 2015-06-04 |
公开(公告)号: | CN104866739A | 公开(公告)日: | 2015-08-26 |
发明(设计)人: | 杨希锋;张莹莹 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司 |
主分类号: | G06F21/12 | 分类号: | G06F21/12 |
代理公司: | 上海光华专利事务所 31219 | 代理人: | 高彦 |
地址: | 201616 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 系统 应用程序 加密 方法 | ||
技术领域
本发明涉及移动终端软件系统技术领域,特别是涉及安卓系统中应用程序加密方法及系统。
背景技术
避免Android软件被破解和攻击是对开发者的技术方案的保护。目前,市场上有很多用于破解Android应用APK的工具,可以反编译出界面布局文件,甚至Java源码文件。这使得盗版软件遍地而出,也影响整个软件行业的发展。本发明提出了一种对Android应用软件进行加密的安全技术,通过动态加载classes.dex来实现对核心代码的加密,从而有效地保护软件的知识产权,通过加密后,反编译也难以看到原来的文件
具体的,Android平台使用Java编程语言,而Java源代码编译后的二进制文件极易被反编译,导致比其它的语言更容易被破解。目前有一些工具如dex2jar、apktool等便可以反编译出Android的源码文件。采用复杂的签名算法可以保护Java文件、jar和so等链接库文件,这些被破解的难度很大;但是资源文件,主要是软件的UI(图片、音频等文件)和界面布局(xml文件)可以轻易的破解,这些资源也是UI工程师和前台工程师开发的作品,目前的技术还保护不了。
申请号为CN201310509543.1的中国专利揭露了一种移动应用的软件加固技术,方法是为每个应用定制微型的虚拟机,在应用程序运行时先运行微型虚拟机,对应用程序整体进行安全性检查或验证,并在安全通过后再运行应用程序的功能模块,所述预设的安全要求包括应用程序的签名验证,应用程序中无效指令、非法指令的去除以及加密信息的解密。但是这一技术偏理论化,难以在真实的场景中普及。
申请号为CN201110429661.2的中国专利揭露了Android系统中Dalvik虚拟机和Linux系统库增加接口,使Android具有从内存中直接加载DEX格式文件和SO格式文件的能力;将应用软件的核心代码存储在在线服务器中,加密并签名后发送给安装在客户端的应用软件;应用软件接收到核心代码后验证签名并解密,然后将明文存储在内存中,直接加载到系统中,然后调用其中的代码,最后释放内存。
但是这种方法比较复杂,一是要在Android平台上修改系统代码,增加额外的接口;二是需要在线服务器,这无形中增加了开发者的压力。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供安卓系统中应用程序加密方法及系统,解决现有技术中的种种问题,提升软件安全性的同时降低开发成本。
为实现上述目标及其他相关目标,本发明提供一种安卓系统中应用程序加密方法,所述方法包括:将应用程序文件内容划分,划分后的内容包括:主体部分及核心部分;从所述主体部分提取虚拟机运行程序文件;将所述核心部分进行加密以形成加密文件;修改所述虚拟机运行程序文件,包括:将加密文件写入所述虚拟机运行程序文件尾部,并在所述尾部添加所述加密文件的描述信息,并更新所述虚拟机运行程序文件的属性信息;将修改后的虚拟机运行程序文件放回所述主体部分中,来生成完成所述加密后的应用程序文件。
可选的,所述主体部分及核心部分均编译为独立的.apk文件。
可选的,所述虚拟机运行程序文件为classes.dex文件。
可选的,所述描述信息包括:加密文件的名称、位置及长度。
可选的,所述更新属性信息包括:重新计算所述虚拟机运行程序文件所包含的:校验和字段、签名字段和文件长度字段的值并替换原有值。
可选的,所述的安卓系统中应用程序加密方法,还包括:通过安卓软件开发包中提供的签名工具所述加密后的应用程序文件进行签名。
为实现上述目标及其他相关目标,本发明提供一种安卓系统中应用程序加密系统,包括:划分模块,用于将应用程序文件内容划分,划分后的内容包括:主体部分及核心部分;提取模块,用于从所述主体部分提取虚拟机运行程序文件;加密模块,用于将所述核心部分进行加密以形成加密文件;修改模块,用于修改所述虚拟机运行程序文件,包括:将加密文件写入所述虚拟机运行程序文件尾部,并在所述尾部添加所述加密文件的描述信息,并更新所述虚拟机运行程序文件的属性信息;文件生成模块,用于将修改后的虚拟机运行程序文件放回所述主体部分中,来生成完成所述加密后的应用程序文件。
可选的,所述主体部分及核心部分均编译为独立的.apk文件。
可选的,所述虚拟机运行程序文件为classes.dex文件。
可选的,所述描述信息包括:加密文件的名称、位置及长度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510305704.4/2.html,转载请声明来源钻瓜专利网。