一种应用程序安装包的处理方法、装置及移动设备的制作方法

文档序号:6635933阅读:200来源:国知局
一种应用程序安装包的处理方法、装置及移动设备的制作方法
【专利摘要】本发明是关于一种应用程序安装包的处理方法、装置及移动设备。其中,所述方法包括:获取应用程序安装包中的可执行文件;反编译所述可执行文件,得到中间文件;在所述中间文件中植入功能代码;将植入有所述功能代码的所述中间文件重新编译并重新打包为新的可执行文件;将所述应用程序安装包中的所述可执行文件替换为所述新的可执行文件。本发明实施例提供的技术方案增加了可执行文件防护的灵活度,提高了软件安装包的安全性。
【专利说明】一种应用程序安装包的处理方法、装置及移动设备

【技术领域】
[0001] 本发明涉及一种计算机领域,特别是涉及一种应用程序安装包的处理方法、装置 及移动设备。

【背景技术】
[0002] 随着移动互联网的快速发展和广泛普及,移动终端正朝着智能化的方向不断迈 进。安卓(Android)系统已经逐渐成为移动终端中最普及的操作系统。与其他操作系统相 比,安卓系统为应用开发者提供了更多的功能接口(其中很多是系统底层接口),提高了系 统的可扩展性。由于安卓系统的开放性,用户不仅能从谷歌官方市场上下载和安装应用,也 可以从任意的第三方市场甚至网站和论坛下载和安装应用。同时,应用的开发者可以将应 用提交到任意第三方市场来供用户下载。
[0003] 其中,应用程序安装包中的DEX(Class,dex)文件是Android系统中可以在Dalvik 虚拟机上直接运行的文件格式。DEX文件如果未做好保护,黑客通过反编译可让源码完全暴 露,利用阅读原码来找到APP设计流程,通过对程序流程的了解很容易对程序进行盗版、恶 意篡改、恶意代码注入等危险行为。
[0004] 针对上述问题,现有技术中出现了如下解决方案:首先加密原程序包的dex文件, 解析原程序包配置文件manifest,xml,提取组件信息生成代理的dex文件;程序执行时,需 要解密原程序dex文件,并使用加固中编译的优化工具将其镜像到内存。现有技术中优化 工具和原程序包是完全分离的,虽然原程序包为加密文件,但是需要一次性还原dex文件, 所以可以通过内存截取进行程序破解,而且优化工具也可以通过对UPX源代码修改进行脱 壳。显然,现有解决方案对应用程序安装包的加固保护效果非常有限。


【发明内容】

[0005] 鉴于上述问题,提出了本发明以便于提供一种克服上述问题或者至少部分地解决 上述问题的应用程序安装包的处理方法及装置。
[0006] 依据本发明的第一个方面,提供了一种应用程序安装包的处理方法,包括:
[0007] 获取应用程序安装包中的可执行文件;
[0008] 反编译所述可执行文件,得到中间文件;
[0009] 在所述中间文件中植入功能代码;
[0010] 将植入有所述功能代码的所述中间文件重新编译并重新打包为新的可执行文 件;
[0011] 将所述应用程序安装包中的所述可执行文件替换为所述新的可执行文件。
[0012] 依据本发明的第二个方面,提供了一种应用程序安装包的处理装置,包括:
[0013] 获取模块,用于获取应用程序安装包中的可执行文件;
[0014] 反编译模块,用于反编译所述可执行文件,得到中间文件;
[0015] 植入模块,用于在所述中间文件中植入功能代码;
[0016] 重编译模块,用于将植入有所述功能代码的所述中间文件重新编译并重新打包为 新的可执行文件;
[0017] 替换模块,用于将所述应用程序安装包中的所述可执行文件替换为所述新的可执 行文件。
[0018] 依据本发明的第三个方面,提供了一种移动设备,其包括应用程序安装包的处理 装置;所述应用程序安装包的处理装置,包括:
[0019] 获取模块,用于获取应用程序安装包中的可执行文件;
[0020] 反编译模块,用于反编译所述可执行文件,得到中间文件;
[0021] 植入模块,用于在所述中间文件中植入功能代码;
[0022] 重编译模块,用于将植入有所述功能代码的所述中间文件重新编译并重新打包为 新的可执行文件;
[0023] 替换模块,用于将所述应用程序安装包中的所述可执行文件替换为所述新的可执 行文件。
[0024] 借由上述技术方案,本发明实施例提供的技术方案至少具有下列优点:
[0025] 本发明实施例提供的技术方案通过在应用程序安装包的可执行文件中直接植入 功能代码,并使用植入有功能代码后的可执行文件替换掉原安装包中的可执行文件,实现 了对已有安装包中可执行文件的重构,从而在程序运行时,通过执行植入的功能代码来对 可执行文件进行安全保护处理,增加了可执行文件防护的灵活度,进而提高了软件安装包 的安全性。
[0026] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段, 并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。

【专利附图】

【附图说明】
[0027] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通 技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明 的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0028] 图1示出了本发明实施例一提供的所述应用程序安装包的处理方法的一种实现 的流程示意图;
[0029] 图2示出了本发明实施例一提供的所述应用程序安装包的处理方法的另一种实 现的流程示意图;
[0030] 图3示出了本实施例二提供的一种应用程序安装包的处理装置的结构示意图;
[0031] 图4示出了本发明实施例三提供的移动设备的实现结构示意图。

【具体实施方式】
[0032] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0033] 如图1所示,本发明实施例一提供的所述应用程序安装包的处理方法的流程示意 图。本实施例一提供的所述方法的执行主体可以是配置于服务端的应用程序安装包的处理 装置,该装置可具体表征为具有本实施例提供的所述方法的服务器。对应的,用户端可配置 有客户端加固应用。用户可通过用户端的加固应用提供的交互平台,向所述服务端的加固 应用上传待处理的应用程序安装包。服务端的加固应用可采用本实施例一提供的所述方法 对所述应用程序安装包进行处理。
[0034] 具体的,如图1所示,本实施例一提供的所述方法,包括:
[0035] 步骤101、获取应用程序安装包中的可执行文件。
[0036] 本实施例可应用于Android系统,即所述应用程序安装包可以是基于安卓 (Android)平台的应用程序安装包(APK)。在Android系统上,一个可以安装、运行的应用, 需要打包成Android系统的APK文件格式。APK是Androidapplicationpackagefile 的缩写,简称APK文件,S卩Android安装包,也可以理解为Android终端上安装的应用软件。 APK文件其实是ZIP文件格式,但后缀名被修改为apk。具体的可使用Apktool对APK进行 解包,解包后可以看到APK文件内部的文件结构,如表1所示:
[0037] 表UAPK安装包中包含的文件
[0038]

【权利要求】
1. 一种应用程序安装包的处理方法,其特征在于,包括: 获取应用程序安装包中的可执行文件; 反编译所述可执行文件,得到中间文件; 在所述中间文件中植入功能代码; 将植入有所述功能代码的所述中间文件重新编译并重新打包为新的可执行文件; 将所述应用程序安装包中的所述可执行文件替换为所述新的可执行文件。
2. 根据权利要求1所述的方法,其特征在于,所述应用程序安装包为基于安卓平台的 应用程序安装包;所述可执行文件为dex文件;所述中间文件为Smali文件。
3. 根据权利要求2所述的方法,其特征在于,所述在所述中间文件中植入功能代码,包 括: 将所述功能代码反编译成Smali代码; 获取植入位置; 在所述中间文件中的所述植入位置处插入所述Smali代码。
4. 根据权利要求2所述的方法,其特征在于,所述功能代码为用于对所述可执行文件 进行加壳和解壳的加固代码,则所述方法,还包括: 获取应用程序安装包中的配置文件; 根据植入的所述功能代码的入口点修改所述配置文件中的相应参数,以使新的所述可 执行文件从所述功能程序启动。
5. 根据权利要求1?4中任一项所述的方法,其特征在于,还包括: 对替换后的所述应用程序安装包进行签名。
6. 根据权利要求5所述的方法,其特征在于,所述对替换后的所述应用程序安装包进 行签名,包括: 向用户终端发送所述替换后的所述应用程序安装包,由用户使用其身份标识对所述替 换后的所述应用程序安装包进行签名;或者 接收用户终端上传的身份标识,并根据身份标识对所述替换后的所述应用程序安装包 进行签名。
7. -种应用程序安装包的处理装置,其特征在于,包括: 获取模块,用于获取应用程序安装包中的可执行文件; 反编译模块,用于反编译所述可执行文件,得到中间文件; 植入模块,用于在所述中间文件中植入功能代码; 重编译模块,用于将植入有所述功能代码的所述中间文件重新编译并重新打包为新的 可执行文件; 替换模块,用于将所述应用程序安装包中的所述可执行文件替换为所述新的可执行文 件。
8. 根据权利要求7所述的装置,其特征在于,所述应用程序安装包为基于安卓平台的 应用程序安装包;所述可执行文件为dex文件;所述中间文件为Smali文件; 相应的,所述植入模块,包括: 反编译单元,用于将所述功能代码反编译成Smali代码; 获取单元,用于获取植入位置; 插入单元,用于在所述中间文件中的所述植入位置处插入所述Smal i代码。
9. 根据权利要求8所述的装置,其特征在于,所述功能代码为用于对所述可执行文件 进行加壳和解壳的加固代码,则所述装置,还包括: 所述获取模块,还用于获取应用程序安装包中的配置文件; 修改模块,用于根据植入的所述功能代码的入口点修改所述配置文件中的相应参数, 以使新的所述可执行文件从所述功能程序启动。
10. -种移动设备,其特征在于,包括上述权利要求7?9中任一项所述的应用程序安 装包的处理装置。
【文档编号】G06F21/12GK104484585SQ201410693917
【公开日】2015年4月1日 申请日期:2014年11月26日 优先权日:2014年11月26日
【发明者】刘敏, 霍亮, 杨柳春, 施华国 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1