Inter-component communication (ICC) is a widely used mechanism in mobile apps, which enables message-based control flow transferring and data passing between Android components. Effective ICC resolution requires precisely identifying entry points, analyzing data values of ICC fields, modeling related framework APIs, etc. Due to various control-flow- and data-flow-related characteristics involved and the lack of oracles for real-world apps, the comprehensive evaluation of ICC resolution techniques is challenging. To fill this gap, we collect multiple-type benchmark suites with 4,104 apps, covering hand-made apps, open-source, and commercial ones. Considering their differences, various evaluation metrics, e.g., number count, graph structure, and reliable oracle based metrics, are adopted on-demand. As the oracle for real-world apps is unavailable, we design a dynamic analysis approach to extract the real ICC links triggered during GUI exploration. By auditing the code implementations, we carefully check the extracted ICCs and confirm 1,680 ones to form a reliable oracle set, in which each ICC is labeled with 25 code characteristic tags. The evaluation performed on six state-of-the-art ICC resolution tools shows that 1) the completeness of static ICC resolution results on real-world apps is not satisfactory, as up to 38%-85% ICCs are missed by tools; 2) many wrongly reported ICCs are sent from or received by only a few components and the graph structure information can help the identification; 3) the efficiency of fundamental tools, like ICC resolution ones, should be optimized in both engineering and research aspects. By investigating both the missed and wrongly reported ICCs, we discuss the strengths of different tools for users and summarize eight common FN/FP patterns in ICC resolution for tool developers.
翻译:组件间通信(ICC) 是移动应用程序中广泛使用的一种机制, 它使基于信息的控制流程传输和数据在安格丽特组件之间传递。 有效的国际商会决议要求精确地识别切入点, 分析ICC字段的数据值, 建模相关的框架 API 等 。 由于所涉及的各种控制- 流量和数据流量相关特性, 以及缺乏真实世界应用程序的神器, 对国际商会分辨率技术的全面评估具有挑战性。 为了填补这一空白, 我们收集了多类型基准套件, 有4 104个应用程序, 涵盖了手工制作的应用程序、 开放源代码和商用应用程序。 考虑到它们的差异, 有效的国际商会决议需要精确地识别各种评估指标, 例如, 数字计数、 图表结构以及基于标准的可靠标准等。 由于无法找到真实世界应用程序的预告, 我们设计了一个动态分析方法来提取在图形探索过程中触发的真正的ICC链接。 通过审计代码执行情况, 我们仔细检查所提取的ICC 和确认的1 680 个错误的用户应该组成一个可靠或神奇的套套,, 其中我们每个中心都标有25个代码的FI 。 。 IT 上的报告显示, IP IP II 报告 。