欢迎来到天天文库
浏览记录
ID:31359114
大小:134.50 KB
页数:19页
时间:2019-01-09
《基于apk的android应用程序gui遍历自动化方法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于APK的Android应用程序GUI遍历自动化方法 摘要:为了提高应用程序自动执行技术的图形用户界面(GUI)覆盖率和自动化程度以满足Android应用程序动态安全分析和GUI测试的需求,提出了一种基于应用程序安装包(APK)的Android应用程序GUI遍历自动化方法。该方法通过动态地捕捉目标应用程序GUI并模拟用户行为与之交互,驱动应用程序自动执行。基于开源框架Appium实现了一个能够自动化遍历轻量Android应用程序GUI的跨平台原型工具。实验结果表明,该自动化方法能够获得较高的GUI覆盖率。 关键词:图形用户界面;图形用户界面遍历;行为模拟;高覆盖率;移动应用程序
2、;Android 中图分类号:TP302 文献标志码:A 文章编号:1001-9081(2016)11-3178-05 0引言 移动终端上各式各样的应用程序数量呈爆炸性增长,其中Android应用程序更是占据了绝对的优势。Android应用程序分析已经成为一个研究热点。通常Android应用程序拥有丰富的图形用户界面(GraphicalUserInterface,19GUI),用户通过与应用程序GUI交互触发一系列的事件运行应用程序。近年来出现了一些基于GUI的方法用以分析、测试Android应用程序的正确性、安全性和性能,例如:文献[1]通过遍历应用程序GUI检测应用程序
3、是否存在隐私泄露、恶意功能以及其他敏感行为;文献[2-4]通过探测和遍历应用程序GUI检测程序漏洞;文献[5]基于受控环境的Android应用程序动态分析框架Appsplayground遍历应用程序GUI、自动化运行应用程序以监控并分析应用程序的运行时行为。探测和遍历应用程序GUI主要有两个途径:一是通过静态分析提取应用程序GUI事件集[6]或Activity转换图[7],然后基于该事件集或转换图遍历应用程序GUI;二是动态探测应用程序GUI并模拟用户行为与之交互实现对应用程序GUI的遍历,如文献[8]。 上述方法[1-8]结果的有效性和实用性很大程度上取决于其遍历方法的GUI覆盖
4、率和自动化程度,而且这些方法还存在一定的限制:文献[1]使用静态分析方法分析应用程序Activity和Function调用图、提取期望的Activity转换路径,然后据此路径遍历应用程序GUI,其覆盖率完全依赖于所提取的Activity转换路径;文献[2-3]根据探测到的应用程序GUI状态发送事件到事件队列,其稳定性有待进一步验证;文献[4]需要一定程度的人工参与,方法自动化程度不高;AppsPlayground[5]使用模糊测试的方法遍历应用程序GUI,难以保证获得较高的GUI覆盖率;文献[6]利用静态分析方法提取应用程序GUI的事件集,然后对运行中的该应用程序系统地执行这些事件集
5、,动态构建应用程序GUI模型,需要应用程序源码;TargetedExploration[7]通过静态分析技术构建应用程序的Activity转换图,然后基于此转换图遍历应用程序GUI,过程比较复杂;文献[8]只能探测简单的应用程序,实用性不高。另外,这些方法都不支持自动进行WebView交互,只能遍历原生应用。19 本文的主要研究内容是针对Android应用程序在不依赖于源码的情况下能够自动化地探测管理应用程序GUI,模拟用户行为与应用程序GUI进行交互以驱动应用程序自动执行,实现了一种基于应用程序APK文件的Android应用程序GUI遍历自动化方法。实验表明,该方法可以有效自动化
6、遍历Android应用程序GUI,具有较高的实用性,能够广泛适用于其他基于GUI的方法研究。 1方法概述 本文方法的总体架构如图1所示。该GUI遍历自动化方法主要包括以下4个模块。 1)预处理模块通过反编译目标应用程序APK文件,解析其中的AndroidManifest.xml文件获得目标应用的包名和所有Activity名等信息,并在Android模拟器上启动目标应用程序。 2)GUI获取模块自动化地获取应用程序当前GUI并表示为可扩展标记语言(ExtensibleMarkupLanguage,XML)文件。若发生GUI转换则暂停正在执行的GUI任务,根据GUI转换的结果重启
7、暂停状态的GUI任务或提取当前GUI上的控件信息如控件的层次结构、各控件属性等建立新的GUI任务;否则继续执行当前GUI任务。 3)遍历引擎模块负责获取当前要执行的GUI任务并依照遍历模型,以近似于程序执行的逻辑产生待模拟用户界面(UserInterface,UI)控件交付用户行为模拟模块模拟相应的用户行为。 4)用户行为模拟模块接收遍历引擎交付的UI控件,模拟该控件相应的用户行为包括简单动作和复杂动作。19 2关键技术 2.1UI元素的获取 构
此文档下载收益归作者所有