一句话:提出基于保存-恢复二分图与数据流分析的静态分析器,自动检测 Android 应用中的数据丢失问题。
本文针对 Android 应用在 activity 重启或应用重新启动时用户数据丢失的问题,提出了静态分析器 DDLDroid。其核心思想是先构建一张保存-恢复二分图(saving-restoring bipartite graph),依据变量所属的载体控件(carrier widgets)将需要保存的变量与需要恢复的变量关联起来;随后在此基础上对保存数据流与恢复数据流进行分析,一旦发现数据流缺失或断裂,即报告潜在的数据丢失问题。作者在 66 个真实 Android 应用上对 DDLDroid 进行了评估,在 73 分钟内检测出 302 个真实的数据丢失问题,其中 180 个为此前未知的问题,表明该工具兼具良好的效果与效率。
DDLDroid is a static analyzer for detecting data loss issues in Android apps during activity restart or app relaunch. It is bootstrapped by a saving-restoring bipartite graph which correlates variables that need saving to those that need restoring according to their carrier widgets, and is based on the analysis of saving and restoring data flows. It reports data loss issues once missed or broken data flows are identified. DDLDroid detects 302 true data loss issues out of 66 Android apps in 73 minutes, including 180 previously-unknown issues, demonstrating its effectiveness and efficiency.
DOI 原文 ·
@inproceedings{paperbot8060,
title = {DDLDroid: A Static Analyzer for Automatically Detecting Data Loss Issues in Android Applications},
author = {Yuhao Zhou and Wei Song},
booktitle = {ISSTA},
year = {2023},
doi = {10.1145/3597926.3604916}
}