应用程序加固保护方法、装置及移动终端的制作方法

文档序号:9249112阅读:217来源:国知局
应用程序加固保护方法、装置及移动终端的制作方法
【技术领域】
[0001]本发明涉及应用程序安全领域,具体而言,本发明涉及一种应用程序加固保护方法、装置及移动终端。
【背景技术】
[0002]目前国内第三方应用市场山寨应用、恶意应用等问题严重。对于一些优秀的应用程序,除了盗版和山寨的问题以外,还存在被破解、二次打包、数据篡改、注入等问题,由此给应用程序的开发者带来很大损失,亟待需要有效的解决方案以防止上述问题的发生。现有技术为了保护应用程序,提供加固程序对原有的应用程序进行加固,从而为移动应用提供安全保护,防止应用被逆向分析、反编译、二次打包,防止嵌入各类病毒、广告等恶意代码,从源头保护数据安全和开发者利益。
[0003]然而,目前大多数的移动设备的系统都是安卓系统,但由于不同移动设备的厂商为了定制自己的操作系统,对安卓系统做修改,使得不同移动设备的操作系统存在差异,造成安卓系统的碎片化,从而使现有的加固程序生成的加固后应用程序不能同时兼容多种版本的系统,造成加固后程序应用运行崩溃。而开发多种版本的加固程序以兼容多种版本的系统不仅浪费很多资源,且后期的维护更新很复杂。故而,需要提供一种通用的加固程序,使得加固后应用程序可以兼容不同版本的系统,正常运行于不同版本的操作系统的移动设备。

【发明内容】

[0004]本发明的目的旨在解决上述至少一个问题,提供一种应用程序加固保护方法、装置及移动终端。
[0005]为了实现上述目的,本发明一种应用程序加固保护方法,包括以下步骤:
[0006]判断应用程序对应的系统版本中是否存在预设的兼容接口函数;
[0007]如果存在,则由加固程序调用预设的兼容接口函数对该系统版本的应用程序执行加固处理,以生成应用程序的第一类型的加固安装包;
[0008]如果不存在,则由加固程序调用非兼容接口函数对该系统版本的应用程序执行加固处理,以生成应用程序的第二类型的加固安装包。
[0009]具体的,所述预设的兼容接口包括用于获取DEX文件在内存中的加载地址的接口函数。
[0010]具体的,所述预设的兼容接口包括用于从内存中加载DEX文件的接口函数。
[0011]具体的,所述预设的兼容接口包括用于从内存中加载OAT文件的接口函数。
[0012]具体的,所述预设的兼容接口包括用于将内存中的DEX文件转换为OAT文件的接口函数。
[0013]具体的,具体通过判断是否存在属性property而确定是否存在预设的兼容接口以及兼容接口的版本号。
[0014]具体的,所述property 的名称为 r0.magic, ap1.vers1n。
[0015]具体的,所述非兼容接口函数具体指与所述系统版本相匹配的用于实现加固处理的系统接口函数。
[0016]进一步的,所述执行的加固处理步骤如下:
[0017]获取应用程序的安装包;
[0018]反编译所述安装包,提取需要保护的代码,并将提取位置用NOP填充;
[0019]依据指定的加解密策略对提取的需要保护的代码进行加密处理,生成加固配置文件;
[0020]将所述加解密策略、加固配置文件和加固程序添加到反编译后的安装包中,编译生成加固安装包。
[0021]可选的,所述指定的加解密策略包括如下中的一种或多种:
[0022]反调试策略、反Dump策略、反重打包策略、字符串加解密策略。
[0023]进一步的,在生成加固安装包之后,对所述加固安装包进行签名。
[0024]—种应用程序加固保护装置,包括:
[0025]判断单元:用于判断应用程序对应的系统版本中是否存在预设的兼容接口函数;
[0026]第一加固单元:用于调用预设的兼容接口函数对该系统版本的应用程序执行加固处理,以生成应用程序的第一类型的加固安装包;
[0027]第二加固单元:用于调用非兼容接口函数对该系统版本的应用程序执行加固处理,以生成应用程序的第二类型的加固安装包。
[0028]具体的,所述预设的兼容接口包括用于获取DEX文件在内存中的加载地址的接口函数。
[0029]具体的,所述预设的兼容接口包括用于从内存中加载DEX文件的接口函数。
[0030]具体的,所述预设的兼容接口包括用于从内存中加载OAT文件的接口函数。
[0031]具体的,所述预设的兼容接口包括用于将内存中的DEX文件转换为OAT文件的接口函数。
[0032]具体的,所述判断单元具体通过判断是否存在属性property而确定是否存在预设的兼容接口以及兼容接口的版本号。
[0033]具体的,所述property 的名称为 r0.magic, ap1.vers1n。
[0034]具体的,所述非兼容接口函数具体指与所述系统版本相匹配的用于实现加固处理的系统接口函数。
[0035]进一步的,所述第一加固单元或第二加固单元执行的加固处理步骤如下:
[0036]获取应用程序的安装包;
[0037]反编译所述安装包,提取需要保护的代码,并将提取位置用NOP填充;
[0038]依据指定的加解密策略对提取的需要保护的代码进行加密处理,生成加固配置文件;
[0039]将所述加解密策略、加固配置文件和加固程序添加到反编译后的安装包中,编译生成加固安装包。
[0040]可选的,所述指定的加解密策略包括如下中的一种或多种:
[0041]反调试策略、反Dump策略、反重打包策略、字符串加解密策略。
[0042]进一步的,还包括签名单元,在生成加固安装包之后,用于对所述加固安装包进行签名。
[0043]一种移动终端,包括权利要求12-22中任意一项所述的应用程序加固保护装置。
[0044]相比现有技术,本发明的方案具有以下优点:
[0045]本发明在Android系统底层增加用于执行加固处理的函数接口,绕过Android系统上层的虚拟机的一系列监管机制,从而使得加固程序对不同系统版本的应用程序进行加固处理后,加固后应用程序仍然可以在当前系统中正常运行,与当前系统版本完美兼容。由此使加固程序不受系统版本的限制,能够对任意系统版本的应用程序采用兼容接口加固,解决加固后应用程序和系统的兼容性问题,并进一步在现有的加固处理基础上提高了加固效率,给应用程序开发商带来更优质的应用程序加固体验。
[0046]本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
【附图说明】
[0047]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0048]图1为本发明所述应用程序的加固处理流程图;
[0049]图2为本发明所述应用程序加固保护方法的原理示意图;
[0050]图3为本发明一个实施例的应用程序加固方法流程图;
[0051]图4为本发明所述应用程序加固保护装置的结构框图。
【具体实施方式】
[0052]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0053]本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
[0054]本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
[0055]本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS (Personal Communicat1ns Service,个人通信
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1