跳到主要导航 跳到搜索 跳到主要内容

Android testing via synthetic symbolic execution

  • Xiang Gao*
  • , Zhen Dong
  • , Shin Hwei Tan
  • , Abhik Roychoudhury
  • *此作品的通讯作者
  • National University of Singapore
  • Southern University of Science and Technology

科研成果: 书/报告/会议事项章节会议稿件同行评审

摘要

Symbolic execution of Android applications is challenging as it involves either building a customized VM for Android or modeling the Android libraries. Since the Android Runtime evolves from one version to another, building a high-fidelity symbolic execution engine involves modeling the effect of the libraries and their evolved versions. Without simulating the behavior of Android libraries, path divergence may occur due to constraint loss when the symbolic values flow into Android framework and these values later affect the subsequent path taken. Previous works such as JPF-Android have relied on the modeling of execution environment such as libraries. In this work, we build a dynamic symbolic execution engine for Android apps, without any manual modeling of execution environment. Environment (or library) dependent control flow decisions in the application will trigger an on-demand program synthesis step to automatically deduce a representation of the library. This representation is refined on-the-fly by running the corresponding library multiple times. The overarching goal of the refinement is to enhance behavioral coverage and to alleviate the path divergence problem during symbolic execution. Moreover, our library synthesis can be made context-specific. Compared to traditional synthesis approaches which aim to synthesize the complete library code, our context-specific synthesis engine can generate more precise expressions for a given context. The evaluation of our dynamic symbolic execution engine, built on top of JDART, shows that the library models obtained from program synthesis are often more accurate than the semi-manual models in JPF-Android. Furthermore, our symbolic execution engine could reach more branch targets, as compared to using the JPF-Android models.

源语言英语
主期刊名ASE 2018 - Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering
编辑Christian Kastner, Marianne Huchard, Gordon Fraser
出版商Association for Computing Machinery, Inc
419-429
页数11
ISBN(电子版)9781450359375
DOI
出版状态已出版 - 3 9月 2018
已对外发布
活动33rd IEEE/ACM International Conference on Automated Software Engineering, ASE 2018 - Montpellier, 法国
期限: 3 9月 20187 9月 2018

出版系列

姓名ASE 2018 - Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering

会议

会议33rd IEEE/ACM International Conference on Automated Software Engineering, ASE 2018
国家/地区法国
Montpellier
时期3/09/187/09/18

指纹

探究 'Android testing via synthetic symbolic execution' 的科研主题。它们共同构成独一无二的指纹。

引用此