一种测试Android应用程序的方法和装置的制造方法

文档序号:8339506阅读:203来源:国知局
一种测试Android应用程序的方法和装置的制造方法
【技术领域】
[0001]本发明涉及软件测试,并且尤其涉及一种测试Android应用程序的方法和装置。
【背景技术】
[0002]在应用程序中,通常会使用标准的密码算法和协议来保护数据。但是,在应用程序的开发过程中可能会错误地设置参数(例如,密钥长度、密钥内容)和/或使用步骤(例如,是否使用证书、是否校验证书链),使得安全性得不到保证。为此,需要对应用程序进行测试来避免这样的问题。
[0003]现有技术未公开针对上述问题的解决方案。现有技术中的静态自动化测试方法存在的问题是无法获取运行时参数,而运行时的参数对于应用程序的涉及密码算法与协议使用的部分的分析是至关重要的。现有技术中的动态测试方法往往需要修改应用程序或者添加断点来调试,而这样做将降低程序监控的透明性和稳定性,例如,修改应用程序可能导致应用程序运行错误,也会破坏应用程序的签名机制。
[0004]另一方面,现有技术的测试方法仅仅针对通用性的代码问题,而无法正对应用程序中的特定命令调用进行测试和分析。例如,无法对应用程序的涉及密码算法与协议使用的部分进行特定性的安全分析(例如,证书是否缺失或者被篡改),从而无法进行测试并发现应用程序中的错误的密码算法和协议使用。
[0005]为此,本发明提出一种测试Android应用程序的方法和装置。

【发明内容】

[0006]根据本发明的一个目的,公开一种测试Android应用程序的方法,包括以下步骤: A:定位应用程序的命令调用,
B:监控所述命令调用并获取运行时数据,
C:对获取的运行时数据进行分析。
[0007]在一个技术方案中,步骤A包括:
对应用程序进行静态代码反编译,获取类描述符;
根据类描述符,定位命令调用。
[0008]在一个技术方案中,步骤A包括:
定位与密码算法和/或协议使用相关的命令调用。
[0009]在一个技术方案中,步骤B包括:
利用被附加到Dalvik虚拟机的Zygote进程上的监控模块来监控所述命令调用并获取运行时数据。
[0010]在一个技术方案中,所述运行时数据是与密码算法和/或协议使用相关的参数。
[0011]在一个技术方案中,在步骤A中,在应用程序的二进制代码中定位其命令调用。
[0012]在一个技术方案中,所述命令调用是方法调用或者指令调用。
[0013]根据本发明的另一个目的,公开一种测试Android应用程序的装置,包括: 定位模块,用于定位应用程序的命令调用,
监控模块,用于监控所述命令调用并获取运行时数据,
分析模块,用于对获取的运行时数据进行分析。
[0014]在一个技术方案中,定位模块被配置成:
对应用程序进行静态代码反编译,获取类描述符;
根据类描述符,定位命令调用。
[0015]在一个技术方案中,定位模块被配置成:
定位与密码算法和/或协议使用相关的命令调用。
[0016]在一个技术方案中,所述监控模块被附加到Dalvik虚拟机的Zygote进程上,由此来监控所述命令调用并获取运行时数据。
[0017]在一个技术方案中,所述运行时数据是与密码算法和/或协议使用相关的参数。
[0018]在一个技术方案中,所述定位模块在应用程序的二进制代码中定位其命令调用。
[0019]本发明对待测试程序进行动态监控,获取其密码算法和协议使用的操作内容。本发明的一个优势是在程序运行期间能够主动检查代码运行的机制、模式、问题以及收集代码的各种运行信息,从而可以分阶段执行汇总分析,根据指定的标准,获得代码质量相关判断结果。特别地,本发明可以直接对程序的二进制代码进行分析,无需依赖于程序的源代码,并且在程序运行的时候,本发明的技术方案动态地对内存中加载的程序代码进行分析,找到插入指令的位置,并加入特定指令进行程序监控。
【附图说明】
[0020]在参照附图阅读了本发明的【具体实施方式】以后,本领域技术人员将会更清楚地了解本发明的各个方面。本领域技术人员应当理解的是,这些附图仅仅用于配合【具体实施方式】说明本发明的技术方案,而并非意在对本发明的保护范围构成限制。
[0021]图1是根据本发明实施例的测试Android应用程序的方法的步骤示意图。
[0022]图2是根据本发明实施例的测试Android应用程序的装置的结构示意图。
【具体实施方式】
[0023]下面参照附图,对本发明的【具体实施方式】作进一步的详细描述。在下面的描述中,为了解释的目的,陈述许多具体细节以便提供对实施例的一个或多个方面的透彻理解。然而,对于本领域技术人员可以显而易见的是,可以这些具体细节的较少程度来实践各实施例的一个或多个方面。因此下面的描述不被视为局限性的,而是通过所附权利要求来限定保护范围。
[0024]图1是根据本发明实施例的测试Android应用程序的方法的步骤示意图。如图1所示,该方法包括以下步骤:
A:定位应用程序的命令调用,
B:监控所述命令调用并获取运行时数据,
C:对获取的运行时数据进行分析。
[0025]在步骤A中,可以定位应用程序的特定命令调用,例如与密码算法和/或协议使用相关的命令调用。命令调用可以是该应用程序的方法调用、接口调用或更细粒度的指令调用。在一个示例中,对应用程序进行静态代码反编译,获取APK程序的类描述符;根据类描述符,对方法调用进行筛选,过滤出特定的方法调用。
[0026]在步骤B中,利用被附加到Dalvik虚拟机(Dalvik VM)的Zygote进程上的监控模块来监控所述命令调用并获取运行时数据。
[0027]在一个示例中,在应用程序的二进制代码中定位其命令调用。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1