[发明专利]一种测试Android应用程序的方法和装置有效
申请号: | 201310598510.9 | 申请日: | 2013-11-22 |
公开(公告)号: | CN104657259B | 公开(公告)日: | 2018-05-18 |
发明(设计)人: | 柴洪峰;杨文博;何朔;李卷孺;杨阳;徐泽伟 | 申请(专利权)人: | 中国银联股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 中国专利代理(香港)有限公司 72001 | 代理人: | 郑冀之;汤春龙 |
地址: | 200135 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 测试 android 应用程序 方法 装置 | ||
本发明公开测试Android应用程序的方法和装置。该方法包括以下步骤:A:定位应用程序的命令调用,B:监控所述命令调用并获取运行时数据,C:对获取的运行时数据进行分析。
技术领域
本发明涉及软件测试,并且尤其涉及一种测试Android应用程序的方法和装置。
背景技术
在应用程序中,通常会使用标准的密码算法和协议来保护数据。但是,在应用程序的开发过程中可能会错误地设置参数(例如,密钥长度、密钥内容)和/或使用步骤(例如,是否使用证书、是否校验证书链),使得安全性得不到保证。为此,需要对应用程序进行测试来避免这样的问题。
现有技术未公开针对上述问题的解决方案。现有技术中的静态自动化测试方法存在的问题是无法获取运行时参数,而运行时的参数对于应用程序的涉及密码算法与协议使用的部分的分析是至关重要的。现有技术中的动态测试方法往往需要修改应用程序或者添加断点来调试,而这样做将降低程序监控的透明性和稳定性,例如,修改应用程序可能导致应用程序运行错误,也会破坏应用程序的签名机制。
另一方面,现有技术的测试方法仅仅针对通用性的代码问题,而无法正对应用程序中的特定命令调用进行测试和分析。例如,无法对应用程序的涉及密码算法与协议使用的部分进行特定性的安全分析(例如,证书是否缺失或者被篡改),从而无法进行测试并发现应用程序中的错误的密码算法和协议使用。
为此,本发明提出一种测试Android应用程序的方法和装置。
发明内容
根据本发明的一个目的,公开一种测试Android应用程序的方法,包括以下步骤:
A:定位应用程序的命令调用,
B:监控所述命令调用并获取运行时数据,
C:对获取的运行时数据进行分析。
在一个技术方案中,步骤A包括:
对应用程序进行静态代码反编译,获取类描述符;
根据类描述符,定位命令调用。
在一个技术方案中,步骤A包括:
定位与密码算法和/或协议使用相关的命令调用。
在一个技术方案中,步骤B包括:
利用被附加到Dalvik虚拟机的Zygote进程上的监控模块来监控所述命令调用并获取运行时数据。
在一个技术方案中,所述运行时数据是与密码算法和/或协议使用相关的参数。
在一个技术方案中,在步骤A中,在应用程序的二进制代码中定位其命令调用。
在一个技术方案中,所述命令调用是方法调用或者指令调用。
根据本发明的另一个目的,公开一种测试Android应用程序的装置,包括:
定位模块,用于定位应用程序的命令调用,
监控模块,用于监控所述命令调用并获取运行时数据,
分析模块,用于对获取的运行时数据进行分析。
在一个技术方案中,定位模块被配置成:
对应用程序进行静态代码反编译,获取类描述符;
根据类描述符,定位命令调用。
在一个技术方案中,定位模块被配置成:
定位与密码算法和/或协议使用相关的命令调用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国银联股份有限公司,未经中国银联股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310598510.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于脚本的源代码插桩系统及方法
- 下一篇:指针分析方法及装置