应用程序的加固方法和装置制造方法及图纸

技术编号:14355142 阅读:60 留言:0更新日期:2017-01-08 22:25
本发明专利技术涉及一种应用程序的加固方法和装置。所述方法包括以下步骤:静态扫描应用程序安装包,获取待加密的资源文件;对所述待加密的资源文件进行加密,生成包含资源文件密文的应用程序安装包;向所述包含资源文件密文的应用程序安装包添加解密模块,生成包含所述解密模块和资源文件密文的应用程序安装包。上述应用程序的加固方法和装置,当系统运行应用程序时,使用解密模块对资源文件密文进行解密成资源文件明文,确保应用程序的正常执行,当使用破解工具从应用程序安装包里提取资源文件时,获取到的是资源文件密文,使得资源文件不被窃取及修改,提高了应用程序的安全性,防止用户数据被窃取。

【技术实现步骤摘要】

本专利技术涉及应用程序安全领域,特别是涉及一种应用程序的加固方法和装置
技术介绍
随着网络技术的发展,网络已成为人们生活的一部分,给人们的生活带来了便利。为了满足不同的需求,提供各种服务的应用程序被开发和发布使用。应用程序的开发花费了开发者大量的人力和财力,然而,大量的应用程序被破解,重新打包,并构建了大量的山寨应用,并在山寨应用程序中植入恶意指令、广告插件及其它恶意行为等。用户下载和安装了山寨应用程序后,山寨应用程序内的恶意指令会窃取用户的数据,威胁用户的个人信息和财产安全。
技术实现思路
基于此,有必要针对传统的应用程序破解后被植入恶意指令导致用户数据易被窃取的问题,提供一种应用程序的加固方法和装置,能提高应用程序的安全性,防止用户数据被窃取。一种应用程序的加固方法,包括以下步骤:静态扫描应用程序安装包,获取待加密的资源文件;对所述待加密的资源文件进行加密,生成包含资源文件密文的应用程序安装包;向所述包含资源文件密文的应用程序安装包添加解密模块,生成包含所述解密模块和资源文件密文的应用程序安装包。一种应用程序的加固装置,包括:扫描模块,用于静态扫描应用程序安装包,获取待加密的资源文件;加密模块,用于对所述待加密的资源文件进行加密,生成包含资源文件密文的应用程序安装包;添加模块,用于向所述包含资源文件密文的应用程序安装包添加解密模块,生成包含所述解密模块和资源文件密文的应用程序安装包。上述应用程序的加固方法和装置,通过扫描应用程序安装包,获取待加密的资源文件,并对待加密的资源文件进行加密,并将解密模块添加到包含资源文件密文的应用程序安装包中,当系统运行应用程序时,使用解密模块对资源文件密文进行解密成资源文件明文,确保应用程序的正常执行,当使用破解工具从应用程序安装包里提取资源文件时,获取到的是资源文件密文,使得资源文件不被窃取及修改,提高了应用程序的安全性,防止用户数据被窃取。附图说明图1A中的终端的内部结构示意图;图1B为一个实施例中服务器的内部结构示意图;图2为一个实施例中应用程序的加固方法的流程图;图3为另一个实施例中应用程序的加固方法的流程图;图4为一个实施例中通过解密模块透明解密资源文件密文为资源文件明文的具体流程图;图5为访问应用程序资源文件的示意图;图6为一个实施例中应用程序的加固装置的结构框图;图7为另一个实施例中应用程序的加固装置的结构框图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。可以理解,本专利技术所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本专利技术的范围的情况下,可以将第一客户端称为第二客户端,且类似地,可将第二客户端称为第一客户端。第一客户端和第二客户端两者都是客户端,但其不是同一客户端。图1A中的终端的内部结构示意图。如图1A所示,该终端包括通过系统总线连接的处理器、存储介质、内存和网络接口、声音采集装置、显示屏、扬声器和输入装置。其中,终端的存储介质存储有操作系统,还包括一种应用程序的加固装置,该应用程序的加固装置用于实现一种应用程序的加固方法。该处理器用于提供计算和控制能力,支撑整个终端的运行。终端中的内存为存储介质中的应用程序的加固装置的运行提供环境,网络接口用于与服务器进行网络通信,如发送应用程序下载请求至服务器,接收服务器返回的应用程序安装包等。终端的显示屏可以是液晶显示屏或者电子墨水显示屏等,输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是外接的键盘、触控板或鼠标等。该终端可以是手机、平板电脑或者个人数字助理。本领域技术人员可以理解,图1A中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。图1B为一个实施例中服务器的内部结构示意图。如图1B所示,该服务器包括通过系统总线连接的处理器、存储介质、内存和网络接口。其中,该服务器的存储介质存储有操作系统、数据库和应用程序的加固装置,数据库中存储有应用程序的安装包等,该应用程序的加固装置用于实现适用于服务器的一种应用程序的加固方法。该服务器的处理器用于提供计算和控制能力,支撑整个服务器的运行。该服务器的内存为存储介质中的应用程序的加固装置的运行提供环境。该服务器的网络接口用于据以与外部的终端通过网络连接通信,比如接收终端发送的应用程序的下载请求以及向终端返回应用程序安装包等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本领域技术人员可以理解,图1B中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。图2为一个实施例中应用程序的加固方法的流程图。如图2所示,一种应用程序的加固方法,包括以下步骤:步骤202,静态扫描应用程序安装包,获取待加密的资源文件。具体地,一个APK(应用程序安装包)安装包是一个ZIP格式的压缩文件,里面包含了一款移动APP(应用程序)里的所需的代码、图片、布局、声音、动画、字符串、XML(ExtensibleMarkupLanguage,可扩展标记语言)文件、配置文件、资源索引文件及其它二进制数据。其中,图片、布局、声音、动画、字符串、XML文件及其它二进制数据属于APP的资源。它们以文件的形式保存在APK文件的assets、res目录中,res目录存储图片、布局、声音、动画、字符串、XML文件,assets目录存储其它二进制数据文件,布局文件是指存储在res/layout或者res/layout-xxx(xxx表示任何字符)中AXML文件(XML文件经过aidl编译生成的一种二进制文件),用来描述APP界面中各种控件的摆放位置及属性。需要说明的是,应用程序的加固是指对应用程序的安装包进行安全重构,防止应用程序被反编译、恶意篡改、保护应用数据不被窃取及其它重打包后可以进行的恶意攻击等。步骤202包括:静态扫描应用程序安装包,预判只在应用程序安装包的用户进程中加载的资源文件作为待加密的资源文件。例如,当扫描发现应用程序内包括将图片资源A传递给创建桌面图标相关的API的代码逻辑时,则预判图片资源A将在系统服务进程中加载,因为图片资源A被系统服务进程加载,所以图片资源A将不被加密。静态扫描应用程序安装包包括:(1)读取资源文件的索引文件,获取每个资源文件对应的资源文件标识,并获取资源文件标识对应的资源文件保存在待加密资源列表中。具体地,读取资源文件的索引文件(resources.arsc),获取索引文件中指向的第一个图片的路径,作为获取混淆后的res目录路径(某些App会将res目录改名,所以res文件名不固定,需从这里获取),保存为第一资源路径;读取资源文件的索引文件,获取第一资源路径内每个资源文件对应的本文档来自技高网...
应用程序的加固方法和装置

【技术保护点】
一种应用程序的加固方法,包括以下步骤:静态扫描应用程序安装包,获取待加密的资源文件;对所述待加密的资源文件进行加密,生成包含资源文件密文的应用程序安装包;向所述包含资源文件密文的应用程序安装包添加解密模块,生成包含所述解密模块和资源文件密文的应用程序安装包。

【技术特征摘要】
1.一种应用程序的加固方法,包括以下步骤:静态扫描应用程序安装包,获取待加密的资源文件;对所述待加密的资源文件进行加密,生成包含资源文件密文的应用程序安装包;向所述包含资源文件密文的应用程序安装包添加解密模块,生成包含所述解密模块和资源文件密文的应用程序安装包。2.根据权利要求1所述的方法,其特征在于,所述静态扫描应用程序安装包,获取待加密的资源文件的步骤包括:静态扫描应用程序安装包,预判只在应用程序安装包的用户进程中加载的资源文件作为待加密的资源文件。3.根据权利要求2所述的方法,其特征在于,所述静态扫描应用程序安装包,预判只在应用程序安装包的用户进程中加载的资源文件作为待加密的资源文件的步骤包括:读取资源文件的索引文件,获取每个资源文件对应的资源文件标识,并获取资源文件标识对应的资源文件保存在待加密资源列表中;扫描配置文件,获取配置文件中引用到的资源文件标识,并获取引用到的资源文件标识对应的资源文件名称,加入到第一排除列表;扫描代码文件,获取调用了预设应用程序接口的资源文件标识,并获取所述资源文件标识对应的资源文件名称,加入到第二排除列表;将待加密资源列表中的资源文件减去第一排除列表和第二排除列表中的资源文件,剩余的资源文件作为待加密资源文件。4.根据权利要求3所述的方法,其特征在于,对所述待加密的资源文件进行加密,生成包含资源文件密文的应用程序安装包的步骤包括:获取一对公钥和私钥,使用私钥对所述待加密的资源文件进行加密,将加密后的资源文件打包进应用程序安装包中,生成包含资源文件密文的应用程序安装包,并将公钥与待加密资源列表作为资源文件打包进包含资源文件密文的应用程序安装包。5.根据权利要求1至4中任一项所述的方法,其特征在于,在向所述包含资源文件密文的应用程序安装包添加解密模块,生成包含所述解密模块和资源文件密文的应用程序安装包的步骤之后,所述方法还包括:安装所述包含解密模块和资源文件密文的应用程序安装包;在运行所述应用程序安装包时,加载所述解密模块,并挂钩系统函数,得到挂钩回调函数;通过所述解密模块透明解密所述资源文件密文为资源文件明文。6.根据权利要求5所述的方法,其特征在于,所述透明解密所述资源文件密文为资源文件明文的步骤包括:获取资源文件访问请求;根据所述访问请求中所指向的第一类数据,获取资源文件密文,解密所述资源文件密文得到资源文件明文,并将所述资源文件明文保存为第二类数据;伪造用于访问第二类数据的对象;在挂钩回调函数中,用所述伪造的第二类数据的对象替换第一类数据的对象,并将所述第二类数据的对象表示的资源文件明文作为访问结果返回。7.根据权利要求6所述的方法,其特征在于,所述伪造用于访问第二类数据的对象,所述第二类数据的对象满足以下条件:继承于系统的Asset类或Asset类的子类;重载Asset类的所有方法,将所有对第一类数据的访问重定向为对第二类数据的访问;重载Asset类的openFileDescriptor方法,将第二类数据保存为文件系统中的第三类数据,再返回所述第三类数据的文件描述符。8.根据权利要求6所述的方法,其特征在于,在挂钩回调函数...

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

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

1