一种应用程序安装包的数据保护方法及装置制造方法及图纸

技术编号:11552391 阅读:102 留言:0更新日期:2015-06-04 01:30
本发明专利技术适用于软件技术领域,提供了一种应用程序安装包的数据保护方法及装置,包括:将动态链接库添加到所述应用程序安装包内,所述动态链接库用于对加密后的字符串进行解密;对所述应用程序安装包内的可执行文件中的字符串进行加密,并为所述可执行文件添加用于调用所述动态链接库的调用方法,得到新的可执行文件;修改所述应用程序安装包内的配置文件,以使所述新的可执行文件在运行时首先加载所述动态链接库,以在运行过程中调用所述动态链接库对所述应用程序安装包中的加密字符串进行解密,完成应用程序安装。本发明专利技术避免了安装包中的数据在安装包运行之前直接泄露给非开发者的情况出现,有效地实现了对应用程序安装包的数据保护。

【技术实现步骤摘要】
一种应用程序安装包的数据保护方法及装置
本专利技术属于软件
,尤其涉及一种应用程序安装包的数据保护方法及装置。
技术介绍
在移动终端软硬件水平飞速发展的今天,移动终端应用程序的开发也日新月异,每天都有海量的应用程序被添加到电子市场中,通过移动终端访问互联网,可以随时随地地实现对这些应用程序的下载安装。然而,现有技术对移动终端应用程序安装包中的数据缺乏有效的保护措施,任何人都可以通过电子市场或者其他分享渠道获取到安装包,提取安装包中的文件,解析得到文件中的关键数据,这就使得一些应用程序开发团队的竞争对手能够很容易地通过分析这些关键数据来窃取到应用程序中的一些重要技术实现细节,或者使得一些不法分子通过分析这些关键数据来取得应用程序在通信过程中的服务器地址等重要信息,进行网络攻击,上述现象均造成了应用程序开发团队的利益损失。
技术实现思路
本专利技术实施例的目的在于提供一种应用程序安装包的数据保护方法,解决目前移动终端应用程序安装包中的数据无法得到有效保护的问题。本专利技术实施例是这样实现的,一种应用程序安装包的数据保护方法,包括:将动态链接库添加到所述应用程序安装包内,所述动态链接库用于对加密后的字符串进行解密;对所述应用程序安装包内的可执行文件中的字符串进行加密,并为所述可执行文件添加用于调用所述动态链接库的调用方法,得到新的可执行文件;修改所述应用程序安装包内的配置文件,以使所述新的可执行文件在运行时首先加载所述动态链接库,以在运行过程中调用所述动态链接库对所述应用程序安装包中的加密字符串进行解密,完成应用程序安装。本专利技术实施例的另一目的在于提供一种应用程序安装包的数据保护装置,包括:添加单元,用于将动态链接库添加到所述应用程序安装包内,所述动态链接库用于对加密后的字符串进行解密;第一修改单元,用于对所述应用程序安装包内的可执行文件中的字符串进行加密,并为所述可执行文件添加用于调用所述动态链接库的调用方法,得到新的可执行文件;第二修改单元,用于修改所述应用程序安装包内的配置文件,以使所述新的可执行文件在运行时首先加载所述动态链接库,以在运行过程中调用所述动态链接库对所述应用程序安装包中的加密字符串进行解密,完成应用程序安装。本专利技术实施例中,在应用程序安装包对外发布之前,通过对安装包中的数据进行加密处理,并在安装包中添加用于解密数据的动态链接库,使得安装包在运行之后才能够调用动态链接库进行数据解密处理,还原出原始的数据,完成安装。本方案避免了安装包中的数据在安装包运行之前直接泄露给非开发者的情况出现,有效地实现了对应用程序安装包的数据保护,保障了应用程序开发团队的利益。附图说明图1是本专利技术实施例提供的应用程序安装包的数据保护方法的实现流程图;图2是本专利技术另一实施例提供的应用程序安装包的数据保护方法的实现流程图;图3是本专利技术实施例提供的应用程序安装包的数据保护方法S102的具体实现流程图;图4是本专利技术实施例提供的应用程序安装包的数据保护方法S103的具体实现流程图;图5是本专利技术实施例提供的应用程序安装包的数据保护方法关于应用程序安装的实现示例图;图6是本专利技术实施例提供的应用程序安装包的数据保护装置的结构框图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术实施例中,在应用程序安装包对外发布之前,通过对安装包中的数据进行加密处理,并在安装包中添加用于解密数据的动态链接库,使得安装包在运行之后才能够调用动态链接库进行数据解密处理,还原出原始的数据,完成安装。本方案避免了安装包中的数据在安装包运行之前直接泄露给非开发者的情况出现,有效地实现了对应用程序安装包的数据保护,保障了应用程序开发团队的利益。其中,本专利技术实施例所述的应用程序安装包,其包内通常包含了将应用程序安装到终端设备中时所需要使用到的所有文件,且这些文件通常是压缩集合到安装包内的。当安装包被下载或拷贝到终端设备上并被下达执行指令之后,安装包会自行解压缩其中的所有文件,将其中的所有文件释放到终端设备的硬盘或者内存上,再运行其中的可执行文件,执行修改注册表、修改系统设置、创建快捷方式等操作,从而完成应用程序的安装。正是由于安装包一旦被下达了执行指令之后,其中的文件必然会被释放到终端设备的硬盘或者内存上,此时,文件中的数据已经发生了修改,并非存储在安装包文件中的原始数据,若在此时再对数据进行解析,很难获取到应用程序的一些重要技术实现细节或者重要信息,因此,应用程序开发团队的竞争对手或者一些不法分子通常会在安装包运行之前,通过从安装包中直接提取出文件的方式,解析文件以获取到安装包中的原始数据。而本专利技术实施例提供的应用程序安装包的数据保护方法及装置,正是针对了应用程序安装包在运行之前的数据保护环节,防止安装包中的数据在安装包运行之前被直接泄露。需要说明的是,由于应用程序安装包的运行是通过执行安装包中的可执行文件来完成的,因此,在本专利技术实施例中,所述运行应用程序安装包等同于所述运行可执行文件,在后续实施例中不再一一进行解释说明。需要说明的是,接下来均以适用于Android系统的应用程序安装包为例,对本专利技术实施例提供的应用程序安装包的数据保护方法及装置进行详细阐述,容易想到的是,基于相同的实现原理,本专利技术实施例也可运用于其他能够支持本专利技术实施例提供的应用程序安装包的数据保护方法及装置实现的应用程序安装包中,例如,windows系统、Linux系统以及其他类型的移动操作系统的应用程序安装包,等等,在此不一一举例。图1示出了本专利技术实施例提供的应用程序安装包的数据保护方法的实现流程,详述如下:在S101中,将动态链接库添加到所述应用程序安装包内,所述动态链接库用于对加密后的字符串进行解密。对于Android系统的应用程序安装包来说,其通常是被打包成应用程序包文件(applicationpackagefile),即APK安装包,因此,作为本专利技术的一个实施例,如图2所示,在S101之前,所述方法还包括:在S201中,判断所述应用程序安装包是否为压缩文件形式。在S202中,当所述应用程序为压缩文件形式,解压所述应用程序安装包。即,对于以压缩文件形式存在的安装包,在图2所示实施例中,会先按照正常的解压缩处理流程,对应用程序安装包进行解压缩,以得到Android系统规定的安装包中所必须具备的安装文件。通常,一个APK安装包内包含了被编译的代码所在的可执行文件(.dex文件),文件资源(resources),证书(certificates),和配置文件(manifestfile),等等,这些文件均可以在解压缩后得到。显然,对于应用程序的开发者来说,其也能够直接获取到未被压缩的应用程序安装包,直接提取未被压缩的应用程序安装包内的文件,或者对未被压缩的应用程序安装包进行直接处理,此时,在执行S101之前,则可以不需要执行图2实施例所述的解压缩步骤。在本实施例中,需要预先编写用于解密加密后的字符串的动态链接库(DynamicLinkLibrary,DLL),并将编写完成的动态链接库添加到应用程序安装包内,其中,动态链接库中包含的解密算法需要与其解本文档来自技高网...

【技术保护点】
一种应用程序安装包的数据保护方法,其特征在于,包括:将动态链接库添加到所述应用程序安装包内,所述动态链接库用于对加密后的字符串进行解密;对所述应用程序安装包内的可执行文件中的字符串进行加密,并为所述可执行文件添加用于调用所述动态链接库的调用方法,得到新的可执行文件;修改所述应用程序安装包内的配置文件,以使所述新的可执行文件在运行时首先加载所述动态链接库,以在运行过程中调用所述动态链接库对所述应用程序安装包中的加密字符串进行解密,完成应用程序安装。

【技术特征摘要】
1.一种应用程序安装包的数据保护方法,其特征在于,包括:判断应用程序安装包是否为压缩文件形式;当所述应用程序安装包为压缩文件形式时,解压所述应用程序安装包,得到所述应用程序安装包被编译的代码所在的可执行文件、文件资源、证书和配置文件;将动态链接库添加到所述应用程序安装包内,使得所述应用程序安装包内的可执行文件在执行过程中,能够在需要的时候调用到所述动态链接库中的方法,以对加密后的字符串进行解密;对所述应用程序安装包内的可执行文件中的代码内的字符串数据进行加密,并为所述可执行文件添加用于调用所述动态链接库的调用方法,得到新的可执行文件;其中,所述对所述应用程序安装包内的可执行文件中的代码内的字符串数据进行加密包括:提取所述可执行文件中的字符串;对提取出的每个所述字符串进行加密,得到加密字符串;为每个所述加密字符串添加预设标识头;根据所述预设标识头,在所述动态链接库中编写相应的解密方法,所述动态链接库用于对包含所述预设标识头的所述加密字符串进行解密;修改所述应用程序安装包内的配置文件中的启动信息,以使所述新的可执行文件在运行时首先加载所述动态链接库,以在运行过程中调用所述动态链接库对所述应用程序安装包中的加密字符串进行解密,完成应用程序安装;对修改后的所述配置文件中的字符串进行加密。2.如权利要求1所述的方法,其特征在于,所述对所述应用程序安装包内的可执行文件中的字符串进行加密包括:提取所述应用程序安装包内的可执行文件中的全部或者部分字符串,对所述全部或者部分字符串进行加密。3.如权利要求1所述的方法,其特征在于,所述修改所述应用程序安装包内的配置文件包括:定位所述配置文件中的application节点;判断所述application节点中是否包含name属性;当所述application节点中包含所述name属性时,在所述name属性中声明Java类信息;当所述application节点中不包含所述name属性时,创建所述name属性,并在所述name属性中声明所述Java类信息;所述Java类信息用于使所述新的可执行文件在被运行时,首先加载所述动态链接库。4.一种应用程序安装包的数据保护装置,其特征在于,...

【专利技术属性】
技术研发人员:张立春
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1