IacCE:跨应用数据泄漏动态分析工具详解
1. 测试脚本生成与事件重放
首先,依据路径上事件和输入的触发顺序,为每条路径生成包含可直接注入事件的脚本。例如,对于 UI 事件,可根据其在屏幕上的位置生成 Monkey 脚本;对于系统事件,则根据其具体类型和事件参数的解决方案,生成 Activity Manager 工具(am)命令列表。由于模拟器屏幕的分辨率和大小完全可控,可根据布局文件静态确定 UI 小部件的位置。
事件重放时,通过不同机制分别重放 UI 事件和系统事件。原始 UI 事件使用 monkeyrunner 工具直接注入到模拟器,系统事件则使用 am 触发。具体而言,需要通过 am 发送显式 Intent 来启动当前污点路径的入口组件。文本输入被视为 UI 事件的组合,例如向可编辑文本小部件注入文本输入解决方案时,会生成一系列事件,包括点击可编辑文本小部件、通过点击相应软/硬键输入解决方案字符串的每个字符,以及点击提交软/硬键。
对于无法直接注入的与环境相关的 API 或字段,如模拟器检查器或定时炸弹,使用通过 Android InstrumentationTestRunner 辅助的 SMT 求解器得到的解决方案进行设置。最后,通过观察每条污点路径触发的行为,确认原始应用集中是否存在数据泄漏。
2. 实现细节
- IC3 和 AppCombiner :IC3 用于构建 ICC 链接,并将其存储在数据库中,以便进一步分析组件间/应用间的污点路径。ApkCombiner 将目标应用集中的所有应用作为输入,输出一个组合应用。
- IccTA(修
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



