一句话:提出 ProMal,融合静态分析、动态分析与机器学习,为移动应用构建精确的窗口转换图(WTG)。
移动应用日益复杂,自动化分析依赖窗口转换图(WTG)来建模窗口及其跳转关系。然而,现有静态分析因过近似会引入不可行转移,动态分析因覆盖不足会遗漏转移,导致构建的 WTG 不精确。ProMal 提出一种“三元”协同分析:先通过静态分析生成静态 WTG,再利用动态分析验证其中的转移;对于未能验证的转移,进一步使用机器学习,借助运行时截图、UI 布局和文本信息预测其是否可行。在 40 个真实应用上的评估表明,ProMal 在构建 WTG 方面优于单独使用的静态分析、动态分析和机器学习技术。
Mobile apps have been an integral part in our daily life. As these apps become more complex, it is critical to provide automated analysis techniques to ensure the correctness, security, and performance of these apps. A key component for these automated analysis techniques is to create a graphical user interface (GUI) model of an app, i.e., a window transition graph (WTG), that models windows and transitions among the windows. While existing work has provided both static and dynamic analysis to build the WTG for an app, the constructed WTG misses many transitions or contains many infeasible transitions due to the coverage issues of dynamic analysis and over-approximation of the static analysis. We propose ProMal, a "tribrid" analysis that synergistically combines static analysis, dynamic analysis, and machine learning to construct a precise WTG. Specifically, ProMal first applies static analysis to build a static WTG, and then applies dynamic analysis to verify the transitions in the static WTG. For the unverified transitions, ProMal further provides machine learning techniques that leverage runtime information (i.e., screenshots, UI layouts, and text information) to predict whether they are feasible transitions. Our evaluations on 40 real-world apps demonstrate the superiority of ProMal in building WTGs over static analysis, dynamic analysis, and machine learning techniques when they are applied separately.