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

技术编号:11239159 阅读:107 留言:0更新日期:2015-04-01 12:37
本发明专利技术是关于一种应用程序安装包的处理方法、装置及移动设备。其中,所述方法包括:获取应用程序安装包中的可执行文件;反编译所述可执行文件,得到中间文件;在所述中间文件中植入功能代码;将植入有所述功能代码的所述中间文件重新编译并重新打包为新的可执行文件;将所述应用程序安装包中的所述可执行文件替换为所述新的可执行文件。本发明专利技术实施例提供的技术方案增加了可执行文件防护的灵活度,提高了软件安装包的安全性。

【技术实现步骤摘要】

本专利技术涉及一种计算机领域,特别是涉及一种应用程序安装包的处理方法、装置及移动设备
技术介绍
随着移动互联网的快速发展和广泛普及,移动终端正朝着智能化的方向不断迈进。安卓(Android)系统已经逐渐成为移动终端中最普及的操作系统。与其他操作系统相比,安卓系统为应用开发者提供了更多的功能接口(其中很多是系统底层接口),提高了系统的可扩展性。由于安卓系统的开放性,用户不仅能从谷歌官方市场上下载和安装应用,也可以从任意的第三方市场甚至网站和论坛下载和安装应用。同时,应用的开发者可以将应用提交到任意第三方市场来供用户下载。其中,应用程序安装包中的DEX(Class.dex)文件是Android系统中可以在Dalvik虚拟机上直接运行的文件格式。DEX文件如果未做好保护,黑客通过反编译可让源码完全暴露,利用阅读原码来找到APP设计流程,通过对程序流程的了解很容易对程序进行盗版、恶意篡改、恶意代码注入等危险行为。针对上述问题,现有技术中出现了如下解决方案:首先加密原程序包的dex文件,解析原程序包配置文件manifest.xml,提取组件信息生成代理的dex文件;程序执行时,需要解密原程序dex文件,并使用加固中编译的优化工具将其镜像到内存。现有技术中优化工具和原程序包是完全分离的,虽然原程序包为加密文件,但是需要一次性还原dex文件,所以可以通过内存截取进行程序破解,而且优化工具也可以通过对UPX源代码修改进行脱壳。显然,现有解决方案对应用程序安装包的加固保护效果非常有限。
技术实现思路
鉴于上述问题,提出了本专利技术以便于提供一种克服上述问题或者至少部分地解决上述问题的应用程序安装包的处理方法及装置。依据本专利技术的第一个方面,提供了一种应用程序安装包的处理方法,包括:获取应用程序安装包中的可执行文件;反编译所述可执行文件,得到中间文件;在所述中间文件中植入功能代码;将植入有所述功能代码的所述中间文件重新编译并重新打包为新的可执行文件;将所述应用程序安装包中的所述可执行文件替换为所述新的可执行文件。依据本专利技术的第二个方面,提供了一种应用程序安装包的处理装置,包括:获取模块,用于获取应用程序安装包中的可执行文件;反编译模块,用于反编译所述可执行文件,得到中间文件;植入模块,用于在所述中间文件中植入功能代码;重编译模块,用于将植入有所述功能代码的所述中间文件重新编译并重新打包为新的可执行文件;替换模块,用于将所述应用程序安装包中的所述可执行文件替换为所述新的可执行文件。依据本专利技术的第三个方面,提供了一种移动设备,其包括应用程序安装包的处理装置;所述应用程序安装包的处理装置,包括:获取模块,用于获取应用程序安装包中的可执行文件;反编译模块,用于反编译所述可执行文件,得到中间文件;植入模块,用于在所述中间文件中植入功能代码;重编译模块,用于将植入有所述功能代码的所述中间文件重新编译并重新打包为新的可执行文件;替换模块,用于将所述应用程序安装包中的所述可执行文件替换为所述新的可执行文件。借由上述技术方案,本专利技术实施例提供的技术方案至少具有下列优点:本专利技术实施例提供的技术方案通过在应用程序安装包的可执行文件中直接植入功能代码,并使用植入有功能代码后的可执行文件替换掉原安装包中的可执行文件,实现了对已有安装包中可执行文件的重构,从而在程序运行时,通过执行植入的功能代码来对可执行文件进行安全保护处理,增加了可执行文件防护的灵活度,进而提高了软件安装包的安全性。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,并可依照说明书的内容予以实施,以下以本专利技术的较佳实施例并配合附图详细说明如后。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了本专利技术实施例一提供的所述应用程序安装包的处理方法的一种实现的流程示意图;图2示出了本专利技术实施例一提供的所述应用程序安装包的处理方法的另一种实现的流程示意图;图3示出了本实施例二提供的一种应用程序安装包的处理装置的结构示意图;图4示出了本专利技术实施例三提供的移动设备的实现结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,本专利技术实施例一提供的所述应用程序安装包的处理方法的流程示意图。本实施例一提供的所述方法的执行主体可以是配置于服务端的应用程序安装包的处理装置,该装置可具体表征为具有本实施例提供的所述方法的服务器。对应的,用户端可配置有客户端加固应用。用户可通过用户端的加固应用提供的交互平台,向所述服务端的加固应用上传待处理的应用程序安装包。服务端的加固应用可采用本实施例一提供的所述方法对所述应用程序安装包进行处理。具体的,如图1所示,本实施例一提供的所述方法,包括:步骤101、获取应用程序安装包中的可执行文件。本实施例可应用于Android系统,即所述应用程序安装包可以是基于安卓(Android)平台的应用程序安装包(APK)。在Android系统上,一个可以安装、运行的应用,需要打包成Android系统的APK文件格式。APK是Android application package file的缩写,简称APK文件,即Android安装包,也可以理解为Android终端上安装的应用软件。APK文件其实是ZIP文件格式,但后缀名被修改为apk。具体的可使用Apktool对APK进行解包,解包后可以看到APK文件内部的文件结构,如表1所示:表1、APK安装包中包含的文件从上述表1可以看出,可执行文件包括Dex文件,Dex文件主要是APK中的classes.dex文件,即Dalvik Executable(Dalvik虚拟机可执行文件)。公知的是,Dalvik是用于Android平台的Java虚拟机。Dalvik虚拟机(Dalvik ...

【技术保护点】
一种应用程序安装包的处理方法,其特征在于,包括:获取应用程序安装包中的可执行文件;反编译所述可执行文件,得到中间文件;在所述中间文件中植入功能代码;将植入有所述功能代码的所述中间文件重新编译并重新打包为新的可执行文件;将所述应用程序安装包中的所述可执行文件替换为所述新的可执行文件。

【技术特征摘要】
1.一种应用程序安装包的处理方法,其特征在于,包括:
获取应用程序安装包中的可执行文件;
反编译所述可执行文件,得到中间文件;
在所述中间文件中植入功能代码;
将植入有所述功能代码的所述中间文件重新编译并重新打包为新的可
执行文件;
将所述应用程序安装包中的所述可执行文件替换为所述新的可执行文
件。
2.根据权利要求1所述的方法,其特征在于,所述应用程序安装包为
基于安卓平台的应用程序安装包;所述可执行文件为dex文件;所述中间
文件为Smali文件。
3.根据权利要求2所述的方法,其特征在于,所述在所述中间文件中
植入功能代码,包括:
将所述功能代码反编译成Smali代码;
获取植入位置;
在所述中间文件中的所述植入位置处插入所述Smali代码。
4.根据权利要求2所述的方法,其特征在于,所述功能代码为用于对
所述可执行文件进行加壳和解壳的加固代码,则所述方法,还包括:
获取应用程序安装包中的配置文件;
根据植入的所述功能代码的入口点修改所述配置文件中的相应参数,
以使新的所述可执行文件从所述功能程序启动。
5.根据权利要求1~4中任一项所述的方法,其特征在于,还包括:
对替换后的所述应用程序安装包进行签名。
6.根据权利要求5所述的方法,其特征在于,所述对替换后的所述应
用程序安装包进行签名,包括:
向用户终端发送所述替换后的所述应用程序安装包,由用户使用其身
份标识对所述替换后的所述应用程序安装包进行签...

【专利技术属性】
技术研发人员:刘敏霍亮杨柳春施华国
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1