一种应用加固方法及装置与流程

文档序号:11134482阅读:334来源:国知局
一种应用加固方法及装置与制造工艺

本发明涉及互联网应用技术领域,特别涉及一种应用加固方法及装置。



背景技术:

随着移动终端技术的快速发展,第三方应用程序大量涌现,对第三方应用的盗版和重打包现象日益严重。例如,在android系统中,安装包文件apk能够很容易地被一些反编译工具反编译为易于阅读的jave代码,使得非法开发者对第三方应用程序的盗版或者核心功能逆向工程变得更加容易,亟待解决这一问题。



技术实现要素:

本发明提供一种应用加固方法及装置,用以实现对应用进行加固,提高应用的安全性的目的。

本发明提供一种应用加固方法,包括:

获取待加固应用的安装程序文件apk;

采用预设字符串对所述待加固应用的apk中的代码进行加密处理,以对所述待加固应用进行加固。

在本发明一实施例中,在采用预设字符串对所述待加固应用的apk中的代码进行加密处理之后,所述方法还包括:

对加密处理之后的代码进行打包,并在打包后生成相应的签名;

保存生成的所述签名。

在本发明一实施例中,所述方法还包括:

当接收到运行应用的请求时,获取保存的所述签名;

利用所述签名对所述应用进行签名验证;

若验证通过,则启动所述应用;

若验证不通过,则对所述应用进行处理。

在本发明一实施例中,对所述应用进行处理,包括:

生成表示签名验证不通过的提示信息,并提供给用户;或者,

对所述应用的启动不进行响应。

在本发明一实施例中,所述方法还包括:

收集所述应用与服务器进行交互的标识信息;

将所述标识信息保存至动态链接库;

发送所述动态链接库发送至所述服务器。

本发明还提供一种应用加固装置,包括:

获取模块,用于获取待加固应用的安装程序文件apk;

加固模块,用于采用预设字符串对所述待加固应用的apk中的代码进行加密处理,以对所述待加固应用进行加固。

在本发明一实施例中,所述加固模块还用于:

在采用预设字符串对所述待加固应用的apk中的代码进行加密处理之后,对加密处理之后的代码进行打包,并在打包后生成相应的签名;保存生成的所述签名。

在本发明一实施例中,所述装置还包括:

验证模块,用于当接收到运行应用的请求时,获取保存的所述签名;利用所述签名对所述应用进行签名验证;

处理模块,用于若验证通过,则启动所述应用;若验证不通过,则对所述应用进行处理。

在本发明一实施例中,所述处理模块还用于:

生成表示签名验证不通过的提示信息,并提供给用户;或者,

对所述应用的启动不进行响应。

在本发明一实施例中,所述加固模块还用于:

收集所述应用与服务器进行交互的标识信息;

将所述标识信息保存至动态链接库;

发送所述动态链接库发送至所述服务器。

在本发明实施例中,获取待加固应用的安装程序文件apk;采用预设字符串对所述待加固应用的apk中的代码进行加密处理,以对所述待加固应用进行加固。由此可见,本发明实施例能够实现对应用进行加固,提高应用的安全性的目的。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1所示为本发明一实施例中应用加固方法的流程图;

图2所示为本发明另一实施例中应用加固方法的流程图;

图3所示为本发明一实施例中应用加固装置的结构示意图;以及

图4所示为本发明另一实施例中应用加固装置的结构示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

如图1所示为本发明一实施例中应用加固方法的流程图,该方法可以包括以下步骤S11-S12。

步骤S11,获取待加固应用的安装程序文件apk。

步骤S12,采用预设字符串对待加固应用的apk中的代码进行加密处理,以对待加固应用进行加固。

在该步骤中,可以对待加固应用的apk进行预处理,分析待加固应用的语义为字符串对象,或库函数调用,或核心功能代码块等。进而,根据分析结果,对待加固应用进行加密,具体地,如果为字符串对象,则根据用户自定义的加密方式加密;如果为库函数调用,则加密被调用的类名、方法名;如果为核心功能代码块,则利用预设字符串加密并动态生成加密后的代码。

在本发明实施例中,获取待加固应用的安装程序文件apk;采用预设字符串对所述待加固应用的apk中的代码进行加密处理,以对所述待加固应用进行加固。由此可见,本发明实施例能够实现对应用进行加固,提高应用的安全性的目的。

在本发明的可选实施例中,在步骤S12采用预设字符串对待加固应用的apk中的代码进行加密处理之后,还可以包括以下步骤A1-A2。

步骤A1,对加密处理之后的代码进行打包,并在打包后生成相应的签名。

步骤A2,保存生成的签名。

从而,在应用运行时可以先进行签名验证,以提高应用的安全性。具体地,可以包括以下步骤B1-B4。

步骤B1,当接收到运行应用的请求时,获取保存的签名。

步骤B2,利用上述签名对应用进行签名验证,若验证通过,则继续执行步骤B3;若验证不通过,则继续执行步骤B4。

步骤B3,启动应用。

步骤B4,对应用进行处理。

在步骤B4中对应用进行处理时,可以生成表示签名验证不通过的提示信息,并提供给用户;或者,对应用的启动不进行响应。

在本发明的可选实施例中,还可以将与服务器交互的主要标识放到native层。这里的主要标识可以包括mac地址、sn码(serial number,产品序列码)等。具体地,可以包括以下步骤C1-C3。

步骤C1,收集应用与服务器进行交互的标识信息。

步骤C2,将标识信息保存至动态链接库。

在该步骤中,可以将标识信息保存至动态链接库,即.so文件。

步骤C3,发送动态链接库发送至服务器。

下面通过一具体实施例来详细介绍本发明的应用加固方法的实现过程。如图2所示为本发明另一实施例中应用加固方法的流程图,该方法可以包括以下步骤S21-S28。

步骤S21,获取待加固应用的安装程序文件apk。

步骤S22,对待加固应用的apk进行预处理,分析待加固应用的语义为字符串对象,或库函数调用,或核心功能代码块。

步骤S23,根据分析结果,对待加固应用进行加密。

具体地,如果为字符串对象,则根据用户自定义的加密方式加密;如果为库函数调用,则加密被调用的类名、方法名;如果为核心功能代码块,则利用预设字符串加密并动态生成加密后的代码。

步骤S24,对加密处理之后的代码进行打包,并在打包后生成相应的签名,保存生成的签名。

步骤S25,当接收到运行应用的请求时,获取保存的签名。

步骤S26,利用上述签名对应用进行签名验证,判断是否验证通过,若是,则继续执行步骤S27;若否,则继续执行步骤S28。

步骤S27,启动应用。

步骤S28,对应用进行处理。

在该步骤中,可以生成表示签名验证不通过的提示信息,并提供给用户;或者,对应用的启动不进行响应。

需要说明的是,在实际应用中,上述所有可选实施方式可以采用结合的方式任意组合,形成本发明的可选实施例,在此不再一一赘述。

对应于上述实施例中的应用加固方法,本发明还提供一种应用加固装置。如图3所示为本发明一实施例中应用加固装置的结构示意图,包括:

获取模块31,用于获取待加固应用的安装程序文件apk;

加固模块32,用于采用预设字符串对所述待加固应用的apk中的代码进行加密处理,以对所述待加固应用进行加固。

在本发明一实施例中,上述加固模块32还用于:

在采用预设字符串对所述待加固应用的apk中的代码进行加密处理之后,对加密处理之后的代码进行打包,并在打包后生成相应的签名;保存生成的所述签名。

在本发明一实施例中,如图4所示,上文图3展示的装置还可以包括:

验证模块41,用于当接收到运行应用的请求时,获取保存的所述签名;利用所述签名对所述应用进行签名验证;

处理模块42,用于若验证通过,则启动所述应用;若验证不通过,则对所述应用进行处理。

在本发明一实施例中,上述处理模块42还用于:

生成表示签名验证不通过的提示信息,并提供给用户;或者,

对所述应用的启动不进行响应。

在本发明一实施例中,上述加固模块32还用于:

收集所述应用与服务器进行交互的标识信息;

将所述标识信息保存至动态链接库;

发送所述动态链接库发送至所述服务器。

本发明实施例的上述装置:获取待加固应用的安装程序文件apk;采用预设字符串对所述待加固应用的apk中的代码进行加密处理,以对所述待加固应用进行加固。由此可见,本发明实施例能够实现对应用进行加固,提高应用的安全性的目的。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1