VeriDroid: automating Android application verification

MDS '13 Pub Date : 2013-12-09 DOI:10.1145/2541534.2541594
Yepang Liu, Chang Xu
{"title":"VeriDroid: automating Android application verification","authors":"Yepang Liu, Chang Xu","doi":"10.1145/2541534.2541594","DOIUrl":null,"url":null,"abstract":"Smartphone applications' quality is vital. Many smartphone applications, however, suffer from various defects. One major reason is that developers lack viable techniques to expose potential defects in their applications. This paper presents a tool VeriDroid to help automatically verify Android applications. We built VeriDroid by extending Java PathFinder (JPF), a widely-used verification framework for general Java programs. Our extension addresses two technical challenges. First, Android applications are event-driven and lack explicit calling relationships between event handlers for verification. Second, Android applications closely hinge on different framework libraries, whose implementations are platform-dependent. To address these challenges, we derive event handler scheduling policies from Android documentations, and encode them to guide JPF to realistically execute Android applications. Besides, we model side effects for a critical set of Android APIs such that one can conduct verification precisely. By doing so, our VeriDroid can verify Android applications in a fully automated manner. We implemented a prototype checker on VeriDroid and applied it to detect null-pointer dereference and resource leak defects in Android applications. Our experiments with five large-scale and popularly-downloaded subjects showed that VeriDroid can effectively detect real defects and provide actionable information to facilitate program debugging.","PeriodicalId":318237,"journal":{"name":"MDS '13","volume":"60 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2013-12-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"9","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"MDS '13","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2541534.2541594","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 9

Abstract

Smartphone applications' quality is vital. Many smartphone applications, however, suffer from various defects. One major reason is that developers lack viable techniques to expose potential defects in their applications. This paper presents a tool VeriDroid to help automatically verify Android applications. We built VeriDroid by extending Java PathFinder (JPF), a widely-used verification framework for general Java programs. Our extension addresses two technical challenges. First, Android applications are event-driven and lack explicit calling relationships between event handlers for verification. Second, Android applications closely hinge on different framework libraries, whose implementations are platform-dependent. To address these challenges, we derive event handler scheduling policies from Android documentations, and encode them to guide JPF to realistically execute Android applications. Besides, we model side effects for a critical set of Android APIs such that one can conduct verification precisely. By doing so, our VeriDroid can verify Android applications in a fully automated manner. We implemented a prototype checker on VeriDroid and applied it to detect null-pointer dereference and resource leak defects in Android applications. Our experiments with five large-scale and popularly-downloaded subjects showed that VeriDroid can effectively detect real defects and provide actionable information to facilitate program debugging.
veridoid:自动验证Android应用程序
智能手机应用程序的质量至关重要。然而,许多智能手机应用程序存在各种缺陷。一个主要原因是开发人员缺乏可行的技术来暴露其应用程序中的潜在缺陷。本文提出了一个工具VeriDroid来帮助自动验证Android应用程序。我们通过扩展Java PathFinder (JPF)来构建VeriDroid, JPF是一个广泛用于一般Java程序的验证框架。我们的扩展解决了两个技术挑战。首先,Android应用程序是事件驱动的,缺乏用于验证的事件处理程序之间的显式调用关系。其次,Android应用程序密切依赖于不同的框架库,其实现依赖于平台。为了应对这些挑战,我们从Android文档中派生出事件处理程序调度策略,并对其进行编码,以指导JPF实际执行Android应用程序。此外,我们对一组关键的Android api的副作用进行了建模,这样就可以精确地进行验证。通过这样做,我们的VeriDroid可以以完全自动化的方式验证Android应用程序。我们在veridoid上实现了一个原型检查器,并应用它来检测Android应用程序中的空指针解引用和资源泄漏缺陷。我们对5个大规模、热门下载的实验对象的实验表明,VeriDroid可以有效地检测出真实的缺陷,并提供可操作的信息,方便程序调试。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信