防止应用程序反编译的系统及其方法

文档序号:8922848阅读:263来源:国知局
防止应用程序反编译的系统及其方法
【技术领域】
[0001]本发明涉及一种防止应用程序反编译领域,特别是涉及一种基于网络的防止应用程序反编译的系统及其方法。
【背景技术】
[0002]安卓(Android)应用程序的上层是使用Java语言编写的,而现有的Java语言是一种跨平台的、解释型的语言。Java编译工具将Java源代码编译成为Java字节码文件,由Java虚拟机负责对Java字节码文件进行解释执行。与本地目标代码不同,Java字节码文件中仍然保留了方法名称、变量名称,并且通过这些名称来访问变量和方法,这些符号往往带有许多语义信息。因此,对Java字节码文件进行反编译就显得比较容易。有许多Java的反编译工具都能够从Java字节码文件生成高质量的源代码。
[0003]为阻止对Java字节码文件进行反编译,业界的做法有多种,不同的方案如下所示:
[0004]方案1:主要是通过将定义的类、变量、方法和包的名字改为无意义的字符串、使用非法的字符代替变量符号和在软件中添加一些无关的指令或永远执行不到的指令等手段来增加反编译和对反编译后源代码阅读的难度。但这种方案并不能真正阻止反编译,而且混淆都有一定规律可寻。
[0005]方案2:是将Java程序像C/C++程序一样编译成本机可执行的二进制代码。但是这样做使得Java程序失去其跨平台的特性,而且这种技术目前并不十分成熟,因此不适用于大型应用程序。
[0006]方案3:首先将Java字节码文件进行加密处理,然后自已编写一个Java类装载器在Java字节码文件装载时再进行解密处理。这种方案的缺点在于虽然经过加密的Java字节码文件无法被反编译,但自定义的类加载器本身却不能防止被反编译,因此,加密过的Java字节码文件仍然是不安全的。
[0007]因此,有必要提出一种克服现有技术种种缺失的防止应用程序反编译的系统及其方法,以切实有效地防止应用程序被反编译的问题。

【发明内容】

[0008]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种防止应用程序反编译的系统及其方法,以切实有效地防止应用程序被反编译的问题。
[0009]为实现上述目的及其他相关目的,本发明提供一种防止应用程序反编译的系统,其应用于基于网络的服务器与智能终端中,其特征在于,该防止应用程序反编译的系统包括:选择模块,提供一供选择作为文件保护对象的多种不同类型的文件的源程序安装包,其中,定义被选定为文件保护对象的至少一文件为受保护文件,在选定受保护文件后,产生一编译指令;编译模块,用以对该源程序安装包执行编译,以产生一应用程序安装包,其中,在编译过程中,将该受保护文件编译生成两种不同类型的目标文件,其中一种类型的目标文件是真正与该受保护文件相关的目标文件,定义为真目标文件,另一种类型的目标文件是与真目标文件的文件大小相同、但与该受保护文件不相关的目标文件,定义为假目标文件,而编译过程中,该应用程序安装包只包含假目标文件,真目标文件不包含于该应用程序安装包中,只存储在服务器端;发布模块,用以将编译生成的应用程序安装包通过网络予以发布,以供智能终端通过网络下载使用;以及授权模块,用以在智能终端通过网络下载所发布的应用程序安装包并执行安装时,发送一授权需求信息至智能终端,要求智能终端提供一唯一标识符信息,并在得到智能终端所提供的唯一标识符信息后,将受保护文件的真目标文件加载到智能终端的内存中,并根据所提供的唯一标识符信息,生成只适用于该智能终端的对应该唯一标识符信息的应用程序,安装完成后,清除释放该智能终端的内存中的真目标文件,而当智能终端需要再次使用所安装的应用程序时,则再次发送一授权需求信息至智能终端,要求智能终端提供该唯一标识符信息,并在得到智能终端所提供的唯一标识符信息后,授权该智能终端运行所安装的应用程序。
[0010]同时,本发明还提供一种防止应用程序反编译的方法,其应用于基于网络的服务器与智能终端中,其特征在于,该防止应用程序反编译的方法包括:1)在服务器端,提供一供选择作为文件保护对象的多种不同类型的文件的源程序安装包,其中,定义被选定为文件保护对象的至少一文件为受保护文件,在选定受保护文件后,产生一编译指令;2)在服务器端,对该源程序安装包执行编译,以产生一应用程序安装包,其中,在编译过程中,将该受保护文件编译生成两种不同类型的目标文件,其中一种类型的目标文件是真正与该受保护文件相关的目标文件,定义为真目标文件,另一种类型的目标文件是与真目标文件的文件大小相同、但与该受保护文件不相关的目标文件,定义为假目标文件,而编译过程中,该应用程序安装包只包含假目标文件,真目标文件不包含于该应用程序安装包中,只存储在服务器端;3)在服务器端,将编译生成的应用程序安装包通过网络予以发布,以供智能终端通过网络下载使用;4)在智能终端,通过网络下载所发布的应用程序安装包后,在执行安装时,通过网络向服务器发送一唯一标识符信息,以请求安装的云授权;5)在服务器端,响应该智能终端的安装云授权的请求,将受保护文件的真目标文件加载到智能终端的内存中,并根据所发送的唯一标识符信息,生成只适用于该智能终端的对应该唯一标识符信息的应用程序,安装完成后,清除释放该智能终端的内存中的真目标文件;6)在智能终端,在需要运行使用所安装的应用程序时,通过网络向服务器发送一唯一标识符信息,以请求运行的云授权;7)在服务器端,根据所发送的唯一标识符信息,通过网络响应该智能终端的运行云授权的请求;以及8)在智能终端,得到该服务器的响应,即正常运行使用该应用程序。具体而言,上述步骤8)进一步包括:当该智能终端关机或者退出该应用程序后,该服务器响应的运行云授权立即失效,下次需要运行使用该应用程序时,需重新提供唯一标识符信息以得到新的运行云授权。
[0011]优选地,上述受保护文件为java类文件、xml布局文件、资源文件、素材、库文件以及dex文件的其中一者。上述唯一标识符信息可例如为IMEI号(Internat1nalMobile Equipment Identity ;国际移动台设备识别码)、IMSI 号(Internat1nal MobileSubscriber Identity ;国际移动客户识别码)、智能终端所使用的软件版本号或者智能终端型号。该智能终端可例如为智能手机或者智能平板电脑等,但不以此为限。上述应用程序可例如为Android程序。
[0012]如上所述,本发明提出一种比较简单的管理保护例如Android程序的应用程序不会被反编译的系统及其方法,对Android系统中应用程序的运行机制,进行了进一步安全化处理,引入云加载,云保护机制在Android系统中,将重要的程序数据选作受保护文件在打包发布时不包含在发布包中;从操作系统层面上,程序安装运行时要求需要向服务器请求云授权,是否继续,等到服务器响应后才能继续运行程序,使用者通过浏览器请求程序运行云授权,请求信息中包含MEI号、MSI号、软件版本或智能终端型号等唯一标识符信息,服务器根据唯一标识符信息将受保护文件的真目标文件直接加载到智能终端中运行,运行完成释放清除受保护文件的真目标文件,再次使用需要再次授权,如此,则进一步加固了系统的应用程序的安全级别。
【附图说明】
[0013]图1显示为本发明的防止应用程序反编译的系统的方块示意图。
[0014]图2显示为本发明的防止应用程序反编译的方法的操作流程图。
[0015
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1