首页 / 专利库 / 软件 / 黑盒测试 / 一种应用完整性保护的测试方法、智能终端及存储介质

一种应用完整性保护的测试方法、智能终端及存储介质

阅读:76发布:2020-05-11

专利汇可以提供一种应用完整性保护的测试方法、智能终端及存储介质专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种应用完整性保护的测试方法、智能终端及存储介质,所述方法包括:获取待测试应用的APK包,根据测试 用例 修改 所述APK包;将修改后的所述APK包进行重新签名,并将重新签名的所述APK包安装到智能终端上;启动安装在所述智能终端上的所述待测试应用,当检测到所述待测试应用正常运行时则所述待测试应用不安全,当检测到所述待测试应用无法正常运行时则所述待测试应用安全。本发明通过采用 黑盒测试 的方式,全自动地增删、修改APK包的内容,重新签名后安装APK包,检测APK包功能是否能正常运行,使用黑盒测试的方式,能够准确地检测出APK是否有防篡改的和自我防护的功能。,下面是一种应用完整性保护的测试方法、智能终端及存储介质专利的具体信息内容。

1.一种应用完整性保护的测试方法,其特征在于,所述应用完整性保护的测试方法包括如下步骤:
获取待测试应用的APK包,根据测试用例修改所述APK包;
将修改后的所述APK包进行重新签名,并将重新签名的所述APK包安装到智能终端上;
启动安装在所述智能终端上的所述待测试应用,当检测到所述待测试应用正常运行时则所述待测试应用不安全,当检测到所述待测试应用无法正常运行时则所述待测试应用安全。
2.根据权利要求1所述的应用完整性保护的测试方法,其特征在于,所述应用完整性保护的测试方法还包括:
获取所述待测试应用的APK包,将所述APK包进行程序配置修改。
3.根据权利要求2所述的应用完整性保护的测试方法,其特征在于,所述将所述APK包进行程序配置修改,具体为:
在所述APK包中加入多个用于测试的配置信息安全测试权限。
4.根据权利要求1所述的应用完整性保护的测试方法,其特征在于,所述应用完整性保护的测试方法还包括:
获取所述待测试应用的APK包,将所述APK包进行Native层修改。
5.根据权利要求4所述的应用完整性保护的测试方法,其特征在于,所述将所述APK包进行Native层修改,具体为:
在所述APK包中修改lib目录下面的so文件。
6.根据权利要求1所述的应用完整性保护的测试方法,其特征在于,所述应用完整性保护的测试方法还包括:
获取所述待测试应用的APK包,将所述APK包进行Java层修改。
7.根据权利要求6所述的应用完整性保护的测试方法,其特征在于,所述将所述APK包进行Java层修改,具体为:
在所述APK包中修改smali文件和布局文件,当在所述smali文件中插入无意义代码后,DEX文件的内容发生变化,用于验证所述待测试应用是否能防止DEX文件被改变。
8.根据权利要求1所述的应用完整性保护的测试方法,其特征在于,所述应用完整性保护的测试方法还包括:
获取所述待测试应用的APK包,将所述APK包进行文件结构修改,增加文件到所述APK包内。
9.一种智能终端,其特征在于,所述智能终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的应用完整性保护的测试程序,所述应用完整性保护的测试程序被所述处理器执行时实现如权利要求1-8任一项所述的应用完整性保护的测试方法的步骤。
10.一种存储介质,其特征在于,所述存储介质存储有应用完整性保护的测试程序,所述应用完整性保护的测试程序被处理器执行时实现如权利要求1-8任一项所述的应用完整性保护的测试方法的步骤。

说明书全文

一种应用完整性保护的测试方法、智能终端及存储介质

技术领域

[0001] 本发明涉及应用检测技术领域,尤其涉及一种应用完整性保护的测试方法、智能终端及存储介质。

背景技术

[0002] 黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。黑盒测试是以用户的度,从输入数据与输出数据的对应关系出发进行测试的。
[0003] 应用完整性验证即验证APK中的文件是否被修改或者删除。对于未进行完整性验证的应用(APP),攻击者可以通过反编译工具对APK反编译后,随意修改或删除APK中的资源文件、源码文件、配置文件等,二次打包成其他应用,导致大量盗版应用的出现,损害开发者的利益,还能添加恶意代码,实现应用钓鱼,窃取登录账号密码、支付密码等非法操作。
[0004] 现有技术通过黑盒测试安卓应用是否有完整性保护的方法一般是手动改变APK包,然后安装到手机上测试是否能正常运行,但是这种测试方法不是自动化完成,检测效率低,而且没有经过系统性的测试,得出的测试报告也非常片面。
[0005] 因此,现有技术还有待于改进和发展。

发明内容

[0006] 本发明的主要目的在于提供一种应用完整性保护的测试方法、智能终端及存储介质,旨在解决现有技术的上述缺陷,本发明提供一种应用完整性保护的测试方法,包括如下步骤:
[0007] 获取待测试应用的APK包,根据测试用例修改所述APK包;
[0008] 将修改后的所述APK包进行重新签名,并将重新签名的所述APK包安装到智能终端上;
[0009] 启动安装在所述智能终端上的所述待测试应用,当检测到所述待测试应用正常运行时则所述待测试应用不安全,当检测到所述待测试应用无法正常运行时则所述待测试应用安全。
[0010] 可选地,所述的应用完整性保护的测试方法,其中,所述应用完整性保护的测试方法还包括:
[0011] 获取所述待测试应用的APK包,将所述APK包进行程序配置修改。
[0012] 可选地,所述的应用完整性保护的测试方法,其中,所述将所述APK包进行程序配置修改,具体为:
[0013] 在所述APK包中加入多个用于测试的配置信息安全测试权限。
[0014] 可选地,所述的应用完整性保护的测试方法,其中,所述应用完整性保护的测试方法还包括:
[0015] 获取所述待测试应用的APK包,将所述APK包进行Native层修改。
[0016] 可选地,所述的应用完整性保护的测试方法,其中,所述将所述APK包进行Native层修改,具体为:
[0017] 在所述APK包中修改lib目录下面的so文件。
[0018] 可选地,所述的应用完整性保护的测试方法,其中,所述应用完整性保护的测试方法还包括:
[0019] 获取所述待测试应用的APK包,将所述APK包进行Java层修改。
[0020] 可选地,所述的应用完整性保护的测试方法,其中,所述将所述APK包进行Java层修改,具体为:
[0021] 在所述APK包中修改smali文件和布局文件,当在所述smali文件中插入无意义代码后,DEX文件的内容发生变化,用于验证所述待测试应用是否能防止DEX文件被改变。
[0022] 可选地,所述的应用完整性保护的测试方法,其中,所述应用完整性保护的测试方法还包括:
[0023] 获取所述待测试应用的APK包,将所述APK包进行文件结构修改,增加文件到所述APK包内。
[0024] 此外,为实现上述目的,本发明还提供一种智能终端,其中,所述智能终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的应用完整性保护的测试程序,所述应用完整性保护的测试程序被所述处理器执行时实现如上所述的应用完整性保护的测试方法的步骤。
[0025] 此外,为实现上述目的,本发明还提供一种存储介质,其中,所述存储介质存储有应用完整性保护的测试程序,所述应用完整性保护的测试程序被处理器执行时实现如上所述的应用完整性保护的测试方法的步骤。
[0026] 本发明通过获取待测试应用的APK包,根据测试用例修改所述APK包;将修改后的所述APK包进行重新签名,并将重新签名的所述APK包安装到智能终端上;启动安装在所述智能终端上的所述待测试应用,当检测到所述待测试应用正常运行时则所述待测试应用不安全,当检测到所述待测试应用无法正常运行时则所述待测试应用安全。本发明通过采用黑盒测试的方式,全自动地增删、修改APK包的内容,重新签名后安装APK包,检测APK包功能是否能正常运行,使用黑盒测试的方式,能够准确地检测出APK是否有防篡改的和自我防护的功能。附图说明
[0027] 图1是本发明应用完整性保护的测试方法的较佳实施例流程图
[0028] 图2为本发明智能终端的较佳实施例的运行环境示意图。

具体实施方式

[0029] 为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0030] 本发明较佳实施例所述的应用完整性保护的测试方法,如图1所示,所述应用完整性保护的测试方法包括以下步骤:
[0031] 步骤S10、获取待测试应用的APK包,根据测试用例修改所述APK包;
[0032] 步骤S20、将修改后的所述APK包进行重新签名,并将重新签名的所述APK包安装到智能终端上;
[0033] 步骤S30、启动安装在所述智能终端上的所述待测试应用,当检测到所述待测试应用正常运行时则所述待测试应用不安全,当检测到所述待测试应用无法正常运行时则所述待测试应用安全。
[0034] 本发明中,黑盒测试理论上只有采用穷举输入测试,把所有可能的输入都作为测试情况考虑,才能查出程序中所有的错误。实际上测试情况有无穷多个,不仅要测试所有合法的输入,而且还要对那些不合法但可能的输入进行测试。这样看来,完全测试是不可能的,所以要进行有针对性的测试,通过制定测试案例指导测试的实施,保证软件测试有组织、按步骤、以及有计划地进行。黑盒测试行为必须能够加以量化,才能真正保证软件质量,而测试用例就是将测试行为具体量化的方法之一。具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景法等。
[0035] 其中,错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。
[0036] 错误推测法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。例如,在单元测试时曾列出的许多在模中常见的错误,以前产品测试中曾经发现的错误等,这些就是经验的总结。还有,输入数据和输出数据为0的情况,输入表格为空格或输入表格只有一行,这些都是容易发生错误的情况,可选择这些情况下的例子作为测试用例。
[0037] 具体地,先进行APK反编译操作,例如可以用过使用apktool-d命令(该命令用于进行反编译APK文件)对APK包进行自动反编译,方便后面能生成smali反编译代码,反编译后才能进行插入代码,修改文件等操作。
[0038] 对APK包进行相应的修改,根据测试方案中的各个方面对APK包中的文件进行修改替换,每个方法的操作有所不同。对修改后的APK文件(即APK包)进行重新签名,之所以重新签名是因为修改了APK文件都需要进行重新签名,才能安装到安卓手机上,本发明中,可以使用jarsigner工具(jarsigner是JDK提供的针对APK包签名的通用工具)对修改后的APK文件进行自动签名。
[0039] 将签名后的新的APK文件(APK包)安装到智能终端(例如手机终端设备),使用adb:install-r命令将签名后的APK文件自动安装到手机上,例如使用adb shell am start-n命令将APK自动安装到手机上,最后启动APP,检验APP包是否正常运行;等待30秒以上时间,使用adb shell dumpsys activity top命令自动检验当前正在跑的APP的包名,若可以正常启动,则存在险(即所述待测试应用不安全);若无法正常启动,则不存在风险(即所述待测试应用安全),如果无法正常启动,那说明修改后APK是无法运行的。
[0040] 进一步地,本发明中的测试方案还包括:获取所述待测试应用的APK包,将所述APK包进行程序配置修改,具体地,在所述APK包中加入多个用于测试的配置信息安全测试权限;例如修改AndroidManifest.xml;在文件中加入几个自定义权限,用于测试。
[0041] 进一步地,本发明中的测试方案还包括:获取所述待测试应用的APK包,将所述APK包进行Native层修改,具体地,在所述APK包中修改lib目录下面的so文件(Android中的so文件是动态链接库,是二进制文件,即ELF文件,多用于NDK开发中;so文件是Linux下共享库文件,它的文件格式被称为ELF文件格式,由于Android操作系统的底层基于Linux系统,所以so文件可以运行在Android平台上);例如,在so文件的纯00区域(数据段用0表示的区域)修改一些数值。
[0042] 进一步地,本发明中的测试方案还包括:获取所述待测试应用的APK包,将所述APK包进行Java层修改,具体地,在所述APK包中修改smali文件(smali是Android应用程序(*.apk)反编译生成的文件格式,是一种类似于汇编语言的底层计算机语言)和布局文件,当在所述smali文件中插入无意义代码(插入后不会改变程序的逻辑)后,DEX文件的内容发生变化,用于验证所述待测试应用是否能防止DEX文件被改变。
[0043] 例如:
[0044]
[0045]
[0046] 进一步地,本发明中的测试方案还包括:获取所述待测试应用的APK包,将所述APK包进行文件结构修改,增加文件(测试文件,例如ijm_configtest.ini)到所述APK包内;例如,在assets目录下拷贝一个ijm_configtest.ini的文件。
[0047] 进一步地,本发明中的测试方案还包括:资源文件修改,将APK包内的图标文件进行替换(这个文件是图标文件,替换后安装到手机上,APK的图标会变化)。例如,将icon.png拷贝到\res\drawable\目录下,替换icon.png和app_icon.png文件。
[0048] 本发明有系统性的从程序配置修改、Native层修改、Java层修改、文件结构修改、以及资源文件修改,五个方面进行APK完整性检测,系统的检验APK完整性保护的强度,形成的完整性的检测报告,能够高效系统地判断一个APK包的完整性的保护程度。
[0049] 进一步地,如图2所示,基于上述应用完整性保护的测试方法,本发明还相应提供了一种智能终端,所述智能终端包括处理器10、存储器20及显示器30。图2仅示出了智能终端的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
[0050] 所述存储器20在一些实施例中可以是所述智能终端的内部存储单元,例如智能终端的硬盘或内存。所述存储器20在另一些实施例中也可以是所述智能终端的外部存储设备,例如所述智能终端上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器20还可以既包括所述智能终端的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述智能终端的应用软件及各类数据,例如所述安装智能终端的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有应用完整性保护的测试程序40,该应用完整性保护的测试程序40可被处理器10所执行,从而实现本申请中应用完整性保护的测试方法。
[0051] 所述处理器10在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述应用完整性保护的测试方法等。
[0052] 所述显示器30在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。所述显示器30用于显示在所述智能终端的信息以及用于显示可视化用户界面。所述智能终端的部件10-30通过系统总线相互通信。
[0053] 在一实施例中,当处理器10执行所述存储器20中应用完整性保护的测试程序40时实现以下步骤:
[0054] 获取待测试应用的APK包,根据测试用例修改所述APK包;
[0055] 将修改后的所述APK包进行重新签名,并将重新签名的所述APK包安装到智能终端上;
[0056] 启动安装在所述智能终端上的所述待测试应用,当检测到所述待测试应用正常运行时则所述待测试应用不安全,当检测到所述待测试应用无法正常运行时则所述待测试应用安全。
[0057] 所述应用完整性保护的测试方法还包括:
[0058] 获取所述待测试应用的APK包,将所述APK包进行程序配置修改。
[0059] 所述将所述APK包进行程序配置修改,具体为:
[0060] 在所述APK包中加入多个用于测试的配置信息安全测试权限。
[0061] 所述应用完整性保护的测试方法还包括:
[0062] 获取所述待测试应用的APK包,将所述APK包进行Native层修改。
[0063] 所述将所述APK包进行Native层修改,具体为:
[0064] 在所述APK包中修改lib目录下面的so文件。
[0065] 所述应用完整性保护的测试方法还包括:
[0066] 获取所述待测试应用的APK包,将所述APK包进行Java层修改。
[0067] 所述将所述APK包进行Java层修改,具体为:
[0068] 在所述APK包中修改smali文件和布局文件,当在所述smali文件中插入无意义代码后,DEX文件的内容发生变化,用于验证所述待测试应用是否能防止DEX文件被改变。
[0069] 所述应用完整性保护的测试方法还包括:
[0070] 获取所述待测试应用的APK包,将所述APK包进行文件结构修改,增加文件到所述APK包内。
[0071] 本发明还提供一种存储介质,其中,所述存储介质存储有应用完整性保护的测试程序,所述应用完整性保护的测试程序被处理器执行时实现如上所述的应用完整性保护的测试方法的步骤。
[0072] 综上所述,本发明提供一种应用完整性保护的测试方法、智能终端及存储介质,所述方法包括:获取待测试应用的APK包,根据测试用例修改所述APK包;将修改后的所述APK包进行重新签名,并将重新签名的所述APK包安装到智能终端上;启动安装在所述智能终端上的所述待测试应用,当检测到所述待测试应用正常运行时则所述待测试应用不安全,当检测到所述待测试应用无法正常运行时则所述待测试应用安全。本发明通过采用黑盒测试的方式,全自动地增删、修改APK包的内容,重新签名后安装APK包,检测APK包功能是否能正常运行,使用黑盒测试的方式,能够准确地检测出APK是否有防篡改的和自我防护的功能。
[0073] 当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的存储介质中,所述程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、光盘等。
[0074] 应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈