一种处理资源文件的方法、装置和系统转让专利

申请号 : CN201611121889.4

文献号 : CN106598584B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郭晋君黄俊周树斌王正飞

申请人 : 广州华多网络科技有限公司

摘要 :

本发明公开了一种处理资源文件的方法、装置和系统,属于计算机技术领域。所述方法包括:获取目标应用程序的安装包,对所述安装包中的资源文件进行加密,得到包含有加密后的资源文件的安装包,当接收到终端发送的所述目标应用程序的下载请求时,将包含有加密后的资源文件的安装包发送给所述终端。采用本发明,可以提高应用程序的安全性。

权利要求 :

1.一种处理资源文件的方法,其特征在于,所述方法包括:获取目标应用程序的安装包;

确定所述安装包中需要加密保护的资源文件,对所述资源文件进行加密,得到包含有加密后的资源文件的安装包;

当接收到终端发送的所述目标应用程序的下载请求时,将包含有加密后的资源文件的安装包发送给所述终端,以使所述终端安装所述目标应用程序,在运行所述目标应用程序时解密并加载所述资源文件;

所述对所述资源文件进行加密,得到包含有加密后的资源文件的安装包,包括:反编译所述安装包,获取所述安装包中的资源文件;

对所述资源文件进行打包,生成资源文件包;

对所述资源文件包进行加密,将密钥存储在目标应用程序的共享动态链接库文件中,并将所述资源文件包存入所述目标应用程序的安装包的资源文件夹;

编译所述安装包,得到包含有加密后的资源文件的安装包;

其中,所述共享动态链接库文件的结构在所述目标应用程序未运行时是被破坏的,所述共享动态链接库文件在所述目标应用程序运行时修复所述共享动态链接库文件被破坏的结构。

2.根据权利要求1所述的方法,其特征在于,所述将所述资源文件包存入所述目标应用程序的安装包的资源文件夹之后,还包括:根据所述目标应用程序的特征代码确定第三方调用资源文件,删除所述资源文件夹中第三方调用资源文件之外的资源文件。

3.一种处理资源文件的方法,其特征在于,所述方法包括:向服务器发送目标应用程序的下载请求;

接收所述服务器发送的所述目标应用程序的安装包,其中,所述安装包包含有加密后的资源文件;

安装所述目标应用程序,当运行所述目标应用程序时,解密并加载所述资源文件;

所述安装所述目标应用程序,当运行所述目标应用程序时,解密并加载所述加密后的资源文件,包括:安装所述目标应用程序,将所述安装包中的资源文件包存储至所述目标应用程序的资源文件夹中;

当运行所述目标应用程序时,基于所述目标应用程序的共享动态链接库文件中存储的密钥,对所述资源文件包进行解密;

将所述资源文件的读取路径修改为所述资源文件包中的资源文件的存储路径,加载所述资源文件;

其中,所述共享动态链接库文件的结构在所述目标应用程序未运行时是被破坏的,所述共享动态链接库文件在所述目标应用程序运行时修复所述共享动态链接库文件被破坏的结构。

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:当运行所述目标应用程序时,如果检测到所述目标应用程序处于被调试状态,则关闭所述目标应用程序。

5.一种处理资源文件的服务器,其特征在于,所述服务器包括:获取模块,用于获取目标应用程序的安装包;

加密模块,用于确定所述安装包中需要加密保护的资源文件,对所述资源文件进行加密,得到包含有加密后的资源文件的安装包;

发送模块,用于当接收到终端发送的所述目标应用程序的下载请求时,将包含有加密后的资源文件的安装包发送给所述终端,以使所述终端安装所述目标应用程序,在运行所述目标应用程序时解密并加载所述资源文件;

所述加密模块,具体用于:

反编译所述安装包,获取所述安装包中的资源文件;

对所述资源文件进行打包,生成资源文件包;

对所述资源文件包进行加密,将密钥存储在目标应用程序的共享动态链接库文件中,并将所述资源文件包存入所述目标应用程序的安装包的资源文件夹;

编译所述安装包,得到包含有加密后的资源文件的安装包;

其中,所述共享动态链接库文件的结构在所述目标应用程序未运行时是被破坏的,所述共享动态链接库文件在所述目标应用程序运行时修复所述共享动态链接库文件被破坏的结构。

6.根据权利要求5所述的服务器,其特征在于,所述服务器,还包括:删除模块,用于根据所述目标应用程序的特征代码确定第三方调用资源文件,删除所述资源文件夹中第三方调用资源文件之外的资源文件。

7.一种处理资源文件的终端,其特征在于,所述终端包括:发送模块,用于向服务器发送目标应用程序的下载请求;

接收模块,用于接收所述服务器发送的所述目标应用程序的安装包,其中,所述安装包包含有加密后的资源文件;

运行模块,用于安装所述目标应用程序,当运行所述目标应用程序时,解密并加载所述资源文件;

所述运行模块,具体用于:

安装所述目标应用程序,将所述安装包中的资源文件包存储至所述目标应用程序的资源文件夹中;

当运行所述目标应用程序时,基于所述目标应用程序的共享动态链接库文件中存储的密钥,对所述资源文件包进行解密;

将所述资源文件的读取路径修改为所述资源文件包中的资源文件的存储路径,加载所述资源文件;

其中,所述共享动态链接库文件的结构在所述目标应用程序未运行时是被破坏的,所述共享动态链接库文件在所述目标应用程序运行时修复所述共享动态链接库文件被破坏的结构。

8.根据权利要求7所述的终端,其特征在于,所述终端还包括:关闭模块,用于当运行所述目标应用程序时,如果检测到所述目标应用程序处于被调试状态,则关闭所述目标应用程序。

9.一种处理资源文件的系统,其特征在于,所述系统包括服务器和终端,其中:所述服务器用于:获取目标应用程序的安装包,确定所述安装包中需要加密保护的资源文件,对所述资源文件进行加密,得到包含有加密后的资源文件的安装包,当接收到所述终端发送的所述目标应用程序的下载请求时,将包含有加密后的资源文件的安装包发送给所述终端,以使所述终端安装所述目标应用程序,在运行所述目标应用程序时解密并加载所述资源文件;

所述对所述资源文件进行加密,得到包含有加密后的资源文件的安装包,包括:反编译所述安装包,获取所述安装包中的资源文件;对所述资源文件进行打包,生成资源文件包;

对所述资源文件包进行加密,将密钥存储在目标应用程序的共享动态链接库文件中,并将所述资源文件包存入所述目标应用程序的安装包的资源文件夹;编译所述安装包,得到包含有加密后的资源文件的安装包;

所述终端用于:向所述服务器发送目标应用程序的下载请求,接收所述服务器发送的所述目标应用程序的安装包,其中,所述安装包包含有加密后的资源文件,安装所述目标应用程序,当运行所述目标应用程序时,解密并加载所述资源文件;

所述安装所述目标应用程序,当运行所述目标应用程序时,解密并加载所述加密后的资源文件,包括:安装所述目标应用程序,将所述安装包中的资源文件包存储至所述目标应用程序的资源文件夹中;当运行所述目标应用程序时,基于所述目标应用程序的共享动态链接库文件中存储的密钥,对所述资源文件包进行解密;将所述资源文件的读取路径修改为所述资源文件包中的资源文件的存储路径,加载所述资源文件;

其中,所述共享动态链接库文件的结构在所述目标应用程序未运行时是被破坏的,所述共享动态链接库文件在所述目标应用程序运行时修复所述共享动态链接库文件被破坏的结构。

说明书 :

一种处理资源文件的方法、装置和系统

技术领域

[0001] 本发明涉及计算机技术领域,特别涉及一种处理资源文件的方法、装置和系统。

背景技术

[0002] 随着计算机技术的快速发展,越来越多的应用程序得到了开发和使用,用户可以将应用程序安装在终端上,从而可以享受应用程序提供的服务。
[0003] 应用程序的资源文件一般都存储在资源文件夹中,资源文件一般包括应用程序运行时可能用到的图片、音频、视频等,终端在运行应用程序时,可以基于应用程序的代码调用资源文件夹中存储的资源文件,从而可以将资源文件显示给用户。
[0004] 在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0005] 软件破解者在从应用发布平台处获取到应用程序的安装包后,可以轻松的修改甚至替换掉资源文件夹的资源文件,然后再将这些安装包发布到网上,如果用户下载了这些安装包,可能会出现应用程序无法正常运行的情况,这样,应用程序的安全性较低。

发明内容

[0006] 为了解决现有技术的问题,本发明实施例提供了一种处理资源文件的方法、装置和系统。所述技术方案如下:
[0007] 第一方面,提供了一种处理资源文件的方法,所述方法包括:
[0008] 获取目标应用程序的安装包;
[0009] 对所述安装包中的资源文件进行加密,得到包含有加密后的资源文件的安装包;
[0010] 当接收到终端发送的所述目标应用程序的下载请求时,将包含有加密后的资源文件的安装包发送给所述终端。
[0011] 可选的,所述对所述安装包中的资源文件进行加密,得到包含有加密后的资源文件的安装包,包括:
[0012] 反编译所述安装包,获取所述安装包中的资源文件;
[0013] 对所述资源文件进行打包,生成资源文件包;
[0014] 对所述资源文件包进行加密,将密钥存储在目标应用程序的共享动态链接库文件中,并将所述资源文件包存入所述目标应用程序的安装包的资源文件夹;
[0015] 编译所述安装包,得到包含有加密后的资源文件的安装包。
[0016] 可选的,所述将所述资源文件包存入所述目标应用程序的安装包的资源文件夹之后,还包括:
[0017] 根据所述目标应用程序的特征代码确定第三方调用资源文件,删除所述资源文件夹中第三方调用资源文件之外的资源文件。
[0018] 第二方面,提供了一种处理资源文件的方法,所述方法包括:
[0019] 向服务器发送目标应用程序的下载请求;
[0020] 接收所述服务器发送的所述目标应用程序的安装包,其中,所述安装包包含有加密后的资源文件;
[0021] 安装所述目标应用程序,当运行所述目标应用程序时,解密并加载所述资源文件。
[0022] 可选的,所述安装所述目标应用程序,当运行所述目标应用程序时,解密并加载所述加密后的资源文件,包括:
[0023] 安装所述目标应用程序,将所述安装包中的资源文件包存储至所述目标应用程序的资源文件夹中;
[0024] 当运行所述目标应用程序时,基于所述目标应用程序的共享动态链接库文件中存储的密钥,对所述资源文件包进行解密;
[0025] 将所述资源文件的读取路径修改为所述资源文件包中的资源文件的存储路径,加载所述资源文件。
[0026] 可选的,所述方法还包括:
[0027] 当运行所述目标应用程序时,如果检测到所述目标应用程序处于被调试状态,则关闭所述目标应用程序。
[0028] 第三方面,提供了一种处理资源文件的服务器,所述服务器包括:
[0029] 获取模块,用于获取目标应用程序的安装包;
[0030] 加密模块,用于对所述安装包中的资源文件进行加密,得到包含有加密后的资源文件的安装包;
[0031] 发送模块,用于当接收到终端发送的所述目标应用程序的下载请求时,将包含有加密后的资源文件的安装包发送给所述终端。
[0032] 可选的,所述加密模块,具体用于:
[0033] 反编译所述安装包,获取所述安装包中的资源文件;
[0034] 对所述资源文件进行打包,生成资源文件包;
[0035] 对所述资源文件包进行加密,将密钥存储在目标应用程序的共享动态链接库文件中,并将所述资源文件包存入所述目标应用程序的安装包的资源文件夹;
[0036] 编译所述安装包,得到包含有加密后的资源文件的安装包。
[0037] 可选的,所述服务器,还包括:
[0038] 删除模块,用于根据所述目标应用程序的特征代码确定第三方调用资源文件,删除所述资源文件夹中第三方调用资源文件之外的资源文件。
[0039] 第四方面,提供了一种处理资源文件的终端,所述终端包括:
[0040] 发送模块,用于向服务器发送目标应用程序的下载请求;
[0041] 接收模块,用于接收所述服务器发送的所述目标应用程序的安装包,其中,所述安装包包含有加密后的资源文件;
[0042] 运行模块,用于安装所述目标应用程序,当运行所述目标应用程序时,解密并加载所述资源文件。
[0043] 可选的,所述运行模块,具体用于:
[0044] 安装所述目标应用程序,将所述安装包中的资源文件包存储至所述目标应用程序的资源文件夹中;
[0045] 当运行所述目标应用程序时,基于所述目标应用程序的共享动态链接库文件中存储的密钥,对所述资源文件包进行解密;
[0046] 将所述资源文件的读取路径修改为所述资源文件包中的资源文件的存储路径,加载所述资源文件。
[0047] 可选的,所述终端还包括:
[0048] 关闭模块,用于当运行所述目标应用程序时,如果检测到所述目标应用程序处于被调试状态,则关闭所述目标应用程序。
[0049] 第五方面,提供了一种处理资源文件的系统,所述系统包括服务器和终端,其中:
[0050] 所述服务器用于:获取目标应用程序的安装包,对所述安装包中的资源文件进行加密,得到包含有加密后的资源文件的安装包,当接收到所述终端发送的所述目标应用程序的下载请求时,将包含有加密后的资源文件的安装包发送给所述终端;
[0051] 所述终端用于:向所述服务器发送目标应用程序的下载请求,接收所述服务器发送的所述目标应用程序的安装包,其中,所述安装包包含有加密后的资源文件,安装所述目标应用程序,当运行所述目标应用程序时,解密并加载所述资源文件。
[0052] 本发明实施例提供的技术方案带来的有益效果是:
[0053] 本发明实施例中,获取目标应用程序的安装包,对安装包中的资源文件进行加密,得到包含有加密后的资源文件的安装包,当接收到终端发送的目标应用程序的下载请求时,将包含有加密后的资源文件的安装包发送给终端。这样,服务器对应用程序安装包中的资源文件进行加密处理,可以有效防止软件破解者对资源文件的修改和替换,从而可以提高应用程序的安全性。

附图说明

[0054] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0055] 图1是本发明实施例提供的一种处理资源文件的方法流程图;
[0056] 图2是本发明实施例提供的一种处理资源文件的处理流程示意图;
[0057] 图3是本发明实施例提供的一种加密资源文件的原理示意图;
[0058] 图4是本发明实施例提供的一种服务器的结构示意图;
[0059] 图5是本发明实施例提供的一种服务器的结构示意图;
[0060] 图6是本发明实施例提供的一种终端的结构示意图;
[0061] 图7是本发明实施例提供的一种终端的结构示意图;
[0062] 图8是本发明实施例提供的一种服务器的结构示意图;
[0063] 图9是本发明实施例提供的一种终端的结构示意图。

具体实施方式

[0064] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0065] 本发明实施例提供了一种处理资源文件的方法,该方法可以由终端和服务器共同实现。其中,终端可以是具有安装并运行应用程序功能的任意终端,如手机、电脑等,该终端中可以设置有处理器、存储器、收发器、输入单元,处理器可以用于对处理资源文件的过程进行处理,存储器可以用于存储下述处理过程中需要的数据以及产生的数据,收发器可以用于接收和发送下述处理过程中需要的数据以及产生的数据,输入单元可以用于用户进行向终端输入指令或设置信息,可以是触屏屏幕、键盘等。服务器可以是应用发布平台的服务器,该服务器中可以设置有处理器、存储器、收发器,处理器可以用于对处理资源文件的过程进行处理,存储器可以用于存储下述处理过程中需要的数据以及产生的数据,收发器可以用于接收和发送下述处理过程中需要的数据以及产生的数据。
[0066] 下面将结合具体实施方式,对图1所示的处理流程进行详细的说明,内容可以如下:
[0067] 步骤101,服务器获取目标应用程序的安装包;
[0068] 在实施中,软件开发者在设计开发完一项应用程序(即目标应用程序)后,可以将目标应用程序的安装包上传给应用发布平台的服务器,服务器从而可以获取到目标应用程序的安装包。
[0069] 步骤102,服务器对安装包中的资源文件进行加密,得到包含有加密后的资源文件的安装包。
[0070] 在实施中,服务器在获取目标应用程序的安装包后,可以对安装包进行分析处理,确定其中的需要加密保护的资源文件(即资源文件),然后对资源文件进行加密处理,从而可以得到包含有加密后的资源文件的安装包。需要说明的是,此处的加密处理可以采用已有的加密手段,如AES(高级加密标准,Advanced Encryption Standard)加密,也可以采用其他加密方式,此处不进行具体限定。之后,服务器可以将经过加密处理的目标应用程序的安装包存储在本地,同时将目标应用程序的应用信息发送至应用发布平台的客户端。
[0071] 可选的,服务器可以对目标应用程序中的资源文件进行打包加密,相应的,步骤102的处理可以如下:反编译安装包,获取安装包中的资源文件,对资源文件进行打包,生成资源文件包,对资源文件包进行加密,将密钥存储在目标应用程序的共享动态链接库文件中,并将资源文件包存入目标应用程序的安装包的资源文件夹,编译安装包,得到包含有加密后的资源文件的安装包。
[0072] 在实施中,服务器在获取到目标应用程序的安装包后,可以对该安装包进行反编译处理,从而可以获取到安装包中的资源文件,之后可以对资源文件进行打包处理,生成资源文件包,进而服务器可以对资源文件包进行加密处理,同时将密钥存储在目标应用程序的SO(共享动态链接库,shared object)文件中,加密完成后,服务器可以将资源文件包存入目标应用程序的安装包中的资源文件夹内。此处,SO文件采用现有加壳加固技术,可以保证软件破解者无法通过反编译的方式获取到其中存储的密钥。
[0073] 可选的,在对安装包中的资源文件加密完成后时,可以删除其中第三方应用可能调用到的资源文件之外的其它资源文件,相应的处理可以如下:根据所述目标应用程序的特征代码确定第三方调用资源文件,删除所述资源文件夹中第三方调用资源文件之外的资源文件。
[0074] 在实施中,服务器在对目标应用的安装包中的资源文件进行打包加密完成后,为了节省安装包的文件大小,可以删除资源文件夹中的已经被打包加密过的资源文件,即保留资源文件夹中的资源文件包,删除资源文件夹中的资源文件。同时,考虑到如果对第三方调用资源文件进行打包加密处理的话,第三方应用在与目标应用程序交互时将无法准确调用到资源文件包中相应的资源文件,故而需要保留资源文件夹中的第三方调用资源文件,因此,可以根据目标应用程序的特征代码确定出,第三方应用与目标应用程序进行交互时所需要加载的资源文件(即第三方调用资源文件),进而,在上述删除处理中可以只删除资源文件夹中第三方调用资源文件之外的资源文件。
[0075] 步骤103,终端向服务器发送目标应用程序的下载请求。
[0076] 在实施中,终端上可以安装有上述应用发布平台的客户端,在服务器向终端发送目标应用程序的应用信息后,用户打开该客户端,可以看到相应的应用信息,这时,用户可以点击该应用信息对应的下载按键,从而可以触发终端向服务器发送目标应用程序的下载请求。
[0077] 步骤104,当接收到终端发送的目标应用程序的下载请求时,服务器将包含有加密后的资源文件的安装包发送给终端。
[0078] 在实施中,服务器接收到终端发送的目标应用程序的下载请求后,可以根据下载请求中携带的目标应用程序的标识,查找本地已存储的、且包含有加密后的资源文件的目标应用程序的安装包,然后将该安装包发送给终端。
[0079] 步骤105,终端接收服务器发送的目标应用程序的安装包,其中,安装包包含有加密后的资源文件。
[0080] 在实施中,终端可以接收服务器发送的包含有加密后的资源文件的、目标应用程序的安装包,并将该安装包存储在本地。
[0081] 步骤106,终端安装目标应用程序,当运行目标应用程序时,解密并加载资源文件。
[0082] 在实施中,用户可以点击打开目标应用程序的安装包,从而触发终端将目标应用程序安装在本地。值得一提的是,安装完成后,资源文件仍旧保持加密状态,且加密后的资源文件存储在目标应用程序的资源文件夹中。之后,在运行目标应用程序时,终端可以对资源文件进行解密,然后加载该资源文件。
[0083] 可选的,基于步骤102对资源文件打包加密的处理,相应的,步骤106的处理可以如下:安装目标应用程序,将安装包中的资源文件包存储至目标应用程序的资源文件夹中,当运行目标应用程序时,获取资源文件包,基于目标应用程序的共享动态链接库文件中存储的密钥,对资源文件包进行解密,将资源文件的读取路径修改为资源文件包中的资源文件的存储路径,加载资源文件。
[0084] 在实施中,用户可以通过点击打开目标应用程序的安装包的操作,触发终端安装目标应用程序,安装时,终端可以将安装包中的资源文件包存储至目标应用程序的资源文件夹中。而当运行目标应用程序时,终端可以基于目标应用程序的共享动态链接库SO文件中存储的密钥,对资源文件包进行解密,然后可以将资源文件的读取路径修改为资源文件包中的资源文件的存储路径,加载资源文件。具体的,可以先获取安卓系统中LoadedApk实例,再使用LoadedApk.getResources的方法把资源文件包载入内存中,替换掉目标应用程序中已加载的资源文件。需要说明的是,SO文件采用加壳加固技术,在目标应用程序未运行时,SO文件的结构是被破坏的,外界无法获取SO文件中存储的密钥,而当目标应用程序运行时,SO文件内置的代码可以修复其被破坏的结构,从而终端可以获取到其中存储的密钥。
[0085] 可选的,可以提供反调试功能,保证SO文件中密钥的安全性,相应的处理可以如下:当运行目标应用程序时,如果检测到目标应用程序处于被调试状态,则关闭目标应用程序。
[0086] 在实施中,在运行目标应用程序的过程中,可以实时检测目标应用程序是否处于被调试状态,具体的,可以判断linux系统中在ptrace连接进程的过程中,/proc//status中的TracePid字段是否为0,如果为0,则代表未被调试,如果不为0,则表示目标应用程序程序正处于被调试状态,从而可以触发终端关闭目标应用程序,也可以称为app(应用,Application)自杀。
[0087] 图2为本方案的服务器和终端的处理流程示意图,图3为加密资源文件的简单原理示意图。
[0088] 本发明实施例中,获取目标应用程序的安装包,对安装包中的资源文件进行加密,得到包含有加密后的资源文件的安装包,当接收到终端发送的目标应用程序的下载请求时,将包含有加密后的资源文件的安装包发送给终端。这样,服务器对应用程序安装包中的资源文件进行加密处理,可以有效防止软件破解者对资源文件的修改和替换,从而可以提高应用程序的安全性。
[0089] 基于相同的技术构思,本发明实施例还提供了一种处理资源文件的服务器,如图4所示,该服务器包括:
[0090] 获取模块401,用于获取目标应用程序的安装包;
[0091] 加密模块402,用于对所述安装包中的资源文件进行加密,得到包含有加密后的资源文件的安装包;
[0092] 发送模块403,用于当接收到终端发送的所述目标应用程序的下载请求时,将包含有加密后的资源文件的安装包发送给所述终端。
[0093] 可选的,所述加密模块402,具体用于:
[0094] 反编译所述安装包,获取所述安装包中的资源文件;
[0095] 对所述资源文件进行打包,生成资源文件包;
[0096] 对所述资源文件包进行加密,将密钥存储在目标应用程序的共享动态链接库文件中,并将所述资源文件包存入所述目标应用程序的安装包的资源文件夹;
[0097] 编译所述安装包,得到包含有加密后的资源文件的安装包。
[0098] 可选的,如图5所示,所述服务器,还包括:
[0099] 删除模块404,用于根据所述目标应用程序的特征代码确定第三方调用资源文件,删除所述资源文件夹中第三方调用资源文件之外的资源文件。
[0100] 基于相同的技术构思,本发明实施例还提供了一种处理资源文件的终端,如图6所示,该终端包括:
[0101] 发送模块601,用于向服务器发送目标应用程序的下载请求;
[0102] 接收模块602,用于接收所述服务器发送的所述目标应用程序的安装包,其中,所述安装包包含有加密后的资源文件;
[0103] 运行模块603,用于安装所述目标应用程序,当运行所述目标应用程序时,解密并加载所述资源文件。
[0104] 可选的,所述运行模块603,具体用于:
[0105] 安装所述目标应用程序,将所述安装包中的资源文件包存储至所述目标应用程序的资源文件夹中;
[0106] 当运行所述目标应用程序时,基于所述目标应用程序的共享动态链接库文件中存储的密钥,对所述资源文件包进行解密;
[0107] 将所述资源文件的读取路径修改为所述资源文件包中的资源文件的存储路径,加载所述资源文件。
[0108] 可选的,如图7所示,所述终端还包括:
[0109] 关闭模块604,用于当运行所述目标应用程序时,如果检测到所述目标应用程序处于被调试状态,则关闭所述目标应用程序。
[0110] 本发明实施例中,获取目标应用程序的安装包,对安装包中的资源文件进行加密,得到包含有加密后的资源文件的安装包,当接收到终端发送的目标应用程序的下载请求时,将包含有加密后的资源文件的安装包发送给终端。这样,服务器对应用程序安装包中的资源文件进行加密处理,可以有效防止软件破解者对资源文件的修改和替换,从而可以提高应用程序的安全性。
[0111] 需要说明的是:上述实施例提供的处理资源文件的装置在处理资源文件时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的处理资源文件的装置与处理资源文件的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0112] 基于相同的技术构思,本发明实施例还提供了一种处理资源文件的系统,该系统包括:
[0113] 所述服务器用于:获取目标应用程序的安装包,对所述安装包中的资源文件进行加密,得到包含有加密后的资源文件的安装包,当接收到所述终端发送的所述目标应用程序的下载请求时,将包含有加密后的资源文件的安装包发送给所述终端;
[0114] 所述终端用于:向所述服务器发送目标应用程序的下载请求,接收所述服务器发送的所述目标应用程序的安装包,其中,所述安装包包含有加密后的资源文件,安装所述目标应用程序,当运行所述目标应用程序时,解密并加载所述资源文件。
[0115] 本发明实施例中,获取目标应用程序的安装包,对安装包中的资源文件进行加密,得到包含有加密后的资源文件的安装包,当接收到终端发送的目标应用程序的下载请求时,将包含有加密后的资源文件的安装包发送给终端。这样,服务器对应用程序安装包中的资源文件进行加密处理,可以有效防止软件破解者对资源文件的修改和替换,从而可以提高应用程序的安全性。
[0116] 本发明实施例还提供了一种服务器,图8是本发明实施例提供的服务器的结构示意图。该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序842或数据844的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质830通信,在服务器
800上执行存储介质830中的一系列指令操作。
[0117] 服务器800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口858,一个或一个以上键盘856,和/或,一个或一个以上操作系统841,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
[0118] 服务器800可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
[0119] 获取目标应用程序的安装包;
[0120] 对所述安装包中的资源文件进行加密,得到包含有加密后的资源文件的安装包;
[0121] 当接收到终端发送的所述目标应用程序的下载请求时,将包含有加密后的资源文件的安装包发送给所述终端。
[0122] 可选的,所述对所述安装包中的资源文件进行加密,得到包含有加密后的资源文件的安装包,包括:
[0123] 反编译所述安装包,获取所述安装包中的资源文件;
[0124] 对所述资源文件进行打包,生成资源文件包;
[0125] 对所述资源文件包进行加密,将密钥存储在目标应用程序的共享动态链接库文件中,并将所述资源文件包存入所述目标应用程序的安装包的资源文件夹;
[0126] 编译所述安装包,得到包含有加密后的资源文件的安装包。
[0127] 可选的,所述将所述资源文件包存入所述目标应用程序的安装包的资源文件夹之后,还包括:
[0128] 根据所述目标应用程序的特征代码确定第三方调用资源文件,删除所述资源文件夹中第三方调用资源文件之外的资源文件。
[0129] 本发明实施例中,获取目标应用程序的安装包,对安装包中的资源文件进行加密,得到包含有加密后的资源文件的安装包,当接收到终端发送的目标应用程序的下载请求时,将包含有加密后的资源文件的安装包发送给终端。这样,服务器对应用程序安装包中的资源文件进行加密处理,可以有效防止软件破解者对资源文件的修改和替换,从而可以提高应用程序的安全性。
[0130] 本发明实施例还提供了一种终端,请参考图9,其示出了本发明实施例所涉及的用于处理资源文件的终端结构示意图,该终端可以用于实施上述实施例中提供的处理资源文件的方法。具体来讲:
[0131] 终端900可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi(wireless fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图9中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
[0132] RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器170处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code Division Multiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。
[0133] 存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端900的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器
120的访问。
[0134] 输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0135] 显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端900的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板
141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图9中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
[0136] 终端900还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端900移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端900还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
[0137] 音频电路160、扬声器161,传声器162可提供用户与终端900之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端900的通信。
[0138] WiFi属于短距离无线传输技术,终端900通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图9示出了WiFi模块170,但是可以理解的是,其并不属于终端900的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
[0139] 处理器180是终端900的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端900的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
[0140] 终端900还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
[0141] 尽管未示出,终端900还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端900的显示单元是触摸屏显示器,终端900还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行述一个或者一个以上程序包含用于进行以下操作的指令:
[0142] 向服务器发送目标应用程序的下载请求;
[0143] 接收所述服务器发送的所述目标应用程序的安装包,其中,所述安装包包含有加密后的资源文件;
[0144] 安装所述目标应用程序,当运行所述目标应用程序时,解密并加载所述资源文件。
[0145] 可选的,所述安装所述目标应用程序,当运行所述目标应用程序时,解密并加载所述加密后的资源文件,包括:
[0146] 安装所述目标应用程序,将所述安装包中的资源文件包存储至所述目标应用程序的资源文件夹中;
[0147] 当运行所述目标应用程序时,基于所述目标应用程序的共享动态链接库文件中存储的密钥,对所述资源文件包进行解密;
[0148] 将所述资源文件的读取路径修改为所述资源文件包中的资源文件的存储路径,加载所述资源文件。
[0149] 可选的,所述方法还包括:
[0150] 当运行所述目标应用程序时,如果检测到所述目标应用程序处于被调试状态,则关闭所述目标应用程序。
[0151] 本发明实施例中,获取目标应用程序的安装包,对安装包中的资源文件进行加密,得到包含有加密后的资源文件的安装包,当接收到终端发送的目标应用程序的下载请求时,将包含有加密后的资源文件的安装包发送给终端。这样,服务器对应用程序安装包中的资源文件进行加密处理,可以有效防止软件破解者对资源文件的修改和替换,从而可以提高应用程序的安全性。
[0152] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0153] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。