[发明专利]一种适用于Android系统的软件保护方法及系统无效
申请号: | 201110180829.0 | 申请日: | 2011-06-30 |
公开(公告)号: | CN102236757A | 公开(公告)日: | 2011-11-09 |
发明(设计)人: | 邝坚;范登科;卞佳丽;刘建培;张晓杰 | 申请(专利权)人: | 北京邮电大学 |
主分类号: | G06F21/00 | 分类号: | G06F21/00 |
代理公司: | 北京聿宏知识产权代理有限公司 11372 | 代理人: | 吴大建;刘华联 |
地址: | 100876 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 适用于 android 系统 软件 保护 方法 | ||
技术领域
本发明主要涉及到适用于Android(商标)平台(系统)的应用软件保护技术,尤其涉及防止恶意反编译开发者通过反编译来盗用Android系统的APK应用软件。
背景技术
随着信息技术的不断发展,尤其是近来各种智能终端的快速增长,对各种应用软件的可移植性或跨平台性能的要求越来越高。由此,例如java语言、perl语言、php语言等不将程序代码编译为二进制码可执行程序的编程语言的应用越来越广泛。
这种不将程序代码编译为二进制码可执行程序的编程语言具有解释执行、跨平台等特性,尤其是其跨平台性,使开发人员摆脱了机器的束缚,可实现“一次编译,到处运行”。然而,正是由于利用这种编程语言编写的程序在运行时直接以程序语言代码或中间代码表示,这就导致采用非编译型编程语言编写的程序源代码容易被窃取。
以Android平台所使用的主流编程语言Java为例,采用Java语言编写的程序在运行前虽然需要经过编译,但并不会直接被编译成(二进制的)机器语言,而是编译成java字节码后,再通过Java虚拟机解释执行。更具体地,Java字节码文件是将采用Java语言编写的程序代码进行编译后产生的中间文件。它往往与Java虚拟机一起出现,是实现平台无关性的要素之一。因而,如何防止采用Java语言编写的程序被窃取的问题,则转化为如何更好地对Java字节码文件进行保护(加密)的问题。当前,Java编程语言工具并未对Java字节码采取有效保护措施。加之,Java字节码文件的结构本身的特点使其易于被反编译,源码易被窃取,故存在Java源码的安全问题。
针对Java字节码的特点,出现了以下几种方法来保护Java字节码:1.字节混淆技术;2.数字水印技术等。但是,这些方法都不能很好的保护Java字节码。字节码混淆并不能完全防止反编译,只是增加了反编译后代码阅读的难度;而数字水印只能保证版权,并不能保证代码遭反编译后被其它开发者利用。
然而,Android系统又采用了不同于传统虚拟机的Dalvik虚拟机。Dalvik基于寄存器实现,缩减了Java虚拟机的指令集。在Dalvik平台,Java应用程序被编译生成DEX文件,并载入运行。DEX文件格式如附图1所示。Java字节码文件压缩为DEX文件的格式如附图2所示.
由此可见,传统的保护Java字节码的方法,很难应用于Android应用软件的版权保护中,而且传统的Java字节码保护方法,并没起到良好的保护效果。
目前,谷歌(商标)用来向用户提供适用于Android系统的应用软件(简称Android应用软件)的商店提供了如下软件保护相关措施:
(1)Google(商标)建立了一个特别的授权服务器,它保留了Android用户申请购买应用的纪录;
(2)开发人员可以利用Google提供的API来编写应用程序中的相关代码,从而实现当应用程序启动时,应用程序自动查询授权服务器;
(3)授权服务器然后告诉应用程序该用户是否具有使用该应用程序的权利。
但是,从以上版权保护措施中,本发明的发明人注意到,谷歌并未对通过反编译Android应用软件来盗用源代码的行为提供防范。换而言之,上述措施并不能对于抄袭和克隆代码的行为无法防范,因此,实际上并不能很好地起到保护应用软件的知识产权的作用。
综上,迫切需要找到一种能够有效保护Android应用软件的方法,以更好地有效保护Android应用软件开发者的知识产权。
发明内容
本发明所要解决的技术问题是需要提供一种适用于Android系统的能够有效防止恶意反编译开发者通过反编译来盗用Android应用软件源代码的方法及其系统。
为了解决上述技术问题,本发明提供了一种适用于Android系统的软件保护方法,其中,包括:
解析步骤,从待加密的Android应用软件的APK文件中解析出DEX文件;
加密步骤,对所述DEX文件的全部或部分信息进行加密,生成加密后的DEX文件;
生成步骤,将所述加密后的DEX文件替换加密前的所述DEX文件,生成对所述DEX文件的全部或部分信息进行了加密的APK文件和对密钥进行MD5加密的摘要文件。
其中,所述加密步骤中,仅对所述DEX文件的文件头或DEX文件中的字节码进行密码。
其中,根据用户各自的用户信息来生成密钥,所述密钥用于对提供给各用户的APK文件中的DEX文件的全部或部分信息进行加密。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京邮电大学,未经北京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110180829.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:舱底水分离器
- 下一篇:一种基于硬件数字滤波的谐波抑制装置