一种Android安装包文件的保护方法及装置的制造方法

文档序号:8543938阅读:136来源:国知局
一种Android安装包文件的保护方法及装置的制造方法
【技术领域】
[0001]本发明涉及数据安全技术领域,具体涉及Android应用程序的保护领域,尤其涉及一种Android安装包文件的防破解方法及装置。
【背景技术】
[0002]Android系统由Google公司开发,是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑等。当在Android系统中安装应用程序时,可以通过将Android安装包(Android Package,简称APK)文件直接传送到Android模拟器或Android手机中执行即可实现安装。由于Android的开源特性,DEX文件很容易被逆向分析和破解得到原始代码,严重影响了 Android应用程序的保护。
[0003]现有技术中可以通过路径加载DEX文件的方式对APK文件进行保护。通常情况下,应用程序可以利用插件的方式进行代码加载,如DEX文件可以作为插件保存于设备或网络中。当应用程序启动后,可以从指定的设备位置或网络位置读取DEX文件,从而动态加载真正要执行的代码。
[0004]但是在通过路径加载的方式读取DEX文件时,系统会在加载过程中默认生成DEX文件优化过的缓存文件(即临时文件),而缓存文件中包含有可被逆向破解的源代码,因此,逆向破解者通过静态反汇编缓存文件仍然可以获得原始的代码指令。

【发明内容】

[0005]有鉴于此,本发明具体实施例提供一种Android安装包APK文件的防破解方法及装置,来解决以上【背景技术】部分提到的技术问题。
[0006]—方面,本发明实施例提供了一种Android安装包APK文件的防破解方法,所述方法包括:
[0007]将所述APK文件中的原始DEX文件处理为备用DEX文件并添加到所述APK文件的资源文件夹中;
[0008]构建启动DEX文件,并将所述启动DEX文件添加到所述APK文件中,得到添加后的APK文件;
[0009]将所述添加后的APK文件的入口点修改为指向所述启动DEX文件,得到防破解的APK文件;
[0010]其中,所述启动DEX文件用于当运行所述防破解的APK文件时,将所述备用DEX文件读取进内存并运行。
[0011]另一方面,本发明实施例还提供了一种Android安装包APK文件的防破解装置,所述装置包括:
[0012]添加模块,用于将所述APK文件中的原始DEX文件处理为备用DEX文件并添加到所述APK文件的资源文件夹中;
[0013]构建模块,用于构建启动DEX文件,并将所述启动DEX文件添加到所述APK文件中,得到添加后的APK文件;
[0014]修改模块,用于将所述构建模块得到的添加后的APK文件的入口点修改为指向所述启动DEX文件,得到防破解的APK文件;
[0015]其中,所述启动DEX文件用于当运行所述防破解的APK文件时,将所述备用DEX文件读取进内存并运行。
[0016]本发明实施例提出的一种Android安装包APK文件的防破解方法及装置,通过将APK文件中的原始DEX文件处理为备用DEX文件保存到资源文件夹中,然后构建启动DEX将备用DEX文件读取进内存中执行。由于备用DEX文件完全在内存中进行运行,因此不会生成包含源码的缓存文件,从而有效地保护了程序代码的安全性,提高了 Android系统APK文件对抗静态逆向破解的能力。
【附图说明】
[0017]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0018]图1是本发明具体实施例提供的一种Android安装包APK文件的防破解方法流程图;
[0019]图2是本发明具体实施例提供的另一种Android安装包APK文件的防破解方法流程图;
[0020]图3是本发明具体实施例提供的一种将所述备用DEX文件映射进内存并运行的方法流程图;
[0021]图4是本发明具体实施例提供的一种运行解密后的所述备用DEX文件的方法流程图;
[0022]图5是本发明具体实施例提供的一种Android安装包APK文件的防破解装置组成框图;
[0023]图6是本发明具体实施例提供的另一种Android安装包APK文件的防破解装置组成框图。
【具体实施方式】
[0024]下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
[0025]本发明的具体实施例提供了一种Android安装包APK文件的防破解的具体方法,本领域普通技术人员可以理解,所述方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成的,所述的程序可以存储于一计算机可读存储介质中,所述的存储介质包括R0M/RAM,磁盘,光盘等。如图1所示,该方法在执行时,包括如下步骤:
[0026]101、将所述APK文件中的原始DEX文件处理为备用DEX文件并添加到所述APK文件的资源文件夹中。
[0027]其中,所述APK是Android Package的缩写,即Android安装包。一个Android应用程序的代码想要在Android设备上运行,必须先进行编译,然后被打包成为一个被Android系统所能识别的文件才可以被运行,而这种能被Android系统识别并运行的文件格式便是“APK”。一个APK文件内可以包含被编译的代码文件(DEX文件),资源文件夹(名称为res的文件夹),证书(certificates)和清单文件(manifest file)等。APK文件其实是zip格式,但后缀名被修改为apk,通过Unzip解压后,就可以得到所述APK文件中的原始DEX文件,其中DEX是DalvikVM executes的全称,即Android Dalvik执行程序,也就是说,DEX文件的功能类似于Windows系统下的EXE文件。
[0028]具体地,当将所述APK文件中的原始DEX文件处理为备用DEX文件并添加到所述APK文件的资源文件夹中时,可以首先将所述APK文件进行解包处理,得到所述APK文件的解包文件夹,然后从所述解包文件夹中获取所述原始DEX文件。接着既可以将所述原始DEX文件直接作为备用DEX文件添加到所述APK文件的资源文件夹中,也可以对所述原始DEX文件进行一些不影响其原始功能的处理,然后将处理后的原始DEX文件作为备用DEX文件添加到所述APK文件的资源文件夹中。无论采用上述哪种方式将所述原始DEX文件处理为备用DEX文件,所述备用DEX文件都包含了所述原始DEX文件的全部内容,因此可以实现所述原始DEX文件的全部功能。
[0029]需要特别说明的是,在将所述APK文件中的原始DEX文件处理为备用DEX文件并添加到所述APK文件的资源文件夹中时,可以直接将原始DEX文件处理为备用DEX文件,然后移动到所述APK文件的资源文件夹中;也可以首先将原始DEX文件复制到所述APK文件的资源文件夹中,然后再将所述资源文件夹中的原始DEX复件处理为备用DEX文件。并且,本领域技术人员可以理解,上述处理步骤与移动或复制步骤的先后顺序是不固定的,只要能实现所述APK文件的资源文件夹中最终存储有所述备用DEX文件,就都在本发明的保护范围内。
[0030]102、构建启动DEX文件,并将所述启动DEX文件添加到所述APK文件中,得到添加后的APK文件。
[0031]具体地,在构建启动DEX文件时,可以根据Android系统下DEX文件的通用构建规则和语法规范新建一个DEX文件,即所述启动DEX文件,并且所述启动DEX文件用于替代所述原始DEX文件并实现所述APK文件的相关功能,也就是说所述启动DEX文件可以读取并运行所述备用DEX文件。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1