百度显示网站正在建设中,网站开发哪种语言好,做网站最好的公,中国工商注册网官方安卓平台是个多进程同时运行的系统#xff0c;它还缺少合适的动态分析接口。因此#xff0c;在安卓平台上进行全面的动态分析具有高难度和挑战性。已有的研究大多是针对一些安全问题的分析方法或者框架#xff0c;无法为实现更加灵活、通用的动态分析工具的开发提供支持。此… 安卓平台是个多进程同时运行的系统它还缺少合适的动态分析接口。因此在安卓平台上进行全面的动态分析具有高难度和挑战性。已有的研究大多是针对一些安全问题的分析方法或者框架无法为实现更加灵活、通用的动态分析工具的开发提供支持。此外很多研究只是针对单进程的分析在安卓平台多个应用进程协作完成事务的情境下则无法进行很好的分析。 目录
1 绪论
1.1 研究背景
1.2 当前分析技术及难点
1.3 本文的解决方案
1.4 本章小结 1 绪论
随着智能手机的普及Android 系统作为主要的移动操作系统平台有着广泛的应用。安卓平台的火爆也吸引了大量的开发者和应用用户越来越离不开移动系统以及上面的丰富的应用。然而由于安卓市场的开放性第三方市场的存在安卓应用的质量良莠不齐用户的体验和数据安全受到了不小的挑战。程序分析作为一种有效的技术一直被广泛采用在软件领域。作为程序分析重要的一种动态分析因为能够在运行时检测应用程序分析应用程序行为和状态以及对目标进行丰富而灵活的诊断一直是研究领域一个重要的课题。
本文通过对 Android 系统的研究和开发实现了一个高效、可扩展同时支持多进程分析的分布式的动态分析框架能够使分析者方便的进行动态分析。框架为用户提供丰富的事件使得用户能够通过编写高层语言的 Java 代码即可方便的进行动态分析的开发。本文通过两个案例实验验证本框架的正确性并充分展现出本框架的研究以及实用价值。
1.1 研究背景
自发布以来Android 系统凭借开放源代码的方式以及其丰富的应用市场迅速获得消费者的青睐。Android 系统在智能手机市场中占有很大的比例。在享受应用带来的便利的同时用户也在不断追求更好的交互体验和安全保障。然而用户也要面对随之而来的安卓系统的安全问题 [1, 2] 。不严格的安全审查以及第三方市场的合法性导致 Android 恶意应用程序广泛存在严重威胁用户的手机安全和隐私。安卓手机安全迅问题速成为业界和学术界的研究焦点。
1.2 当前分析技术及难点
当前对一般程序进行分析的技术主要包含静态分析和动态分析两种。
静态分析是指在不运行程序的情况下从程序的静态源代码或者二进制文件入手利用词法分析、语法分析、程序控制流分析等手段对程序进行分析并研究程序行为的技术。能够被用来检测程序的规范性、安全性、可靠性等指标广泛被用于测试和程序验证。静态程序分析不需要在执行时进行因而与运行平台独立不依赖于运行时环境且静态分析往往具有很高的执行效率能够进行快速的检测。尽管如此静态分析由于缺乏运行时的信息在很多分析场合下往往不能够精确地分析程序的行为造成较高的误判或者漏判。因而一般来说单纯的静态分析不能完全满足程序分析的需要。因此实现一个高效、易用、功能强大的动态分析框架有很大的研究价值。
1.3 本文的解决方案
针对 1.2 节提出的难点本文提出了一个针对安卓多进程进行全面分析的高可用、灵活可靠、易扩展、分布式的基于字节码注入的分析框架该框架通过将安卓系统中不同虚拟机进程的分析事件收集到影子虚拟机ShadowVM [13] 里解析并保证事件执行的顺序性从而实现一个全面的安卓平台的异步动态分析。
主要贡献包括
1为了能够让安卓系统提供 JVMTI 类似的接口以完善动态分析需要的虚拟机事件本文修改了 Dalvik 虚拟机的实现提供了动态分析需要的虚拟机事件
2为了解决字节码注入的难题提高字节码注入的可靠性本文采取了一个间接注入的策略。通过开源的 dex2jar 把 DVM 的字节码转换成 JVM 的字节码再利用 JVM 上成熟的框架 DiSL 来进行注入最后再转回 DVM 字节码并为所有注入开辟了一个注入通道使得实现全覆盖的注入成为可能
3为了能够在目标虚拟机与分析服务建立通信在安卓系统增加一个系统服务 ACSAnalysis Communication Service来实现原先通过 Java Agent 实现的通信模块
4为了能够实现多进程的分析本文继续拓展了 ShadowVM 框架扩展了其原先的单进程模型并针对安卓跨进程调用Inter process call简称 IPCBinder 系统库进行扩展在影子虚拟机中实现了 Binder 相关的事件从而能够将影子虚拟机分析与安卓系统的 IPC 调用事件结合。这些 Binder 事件能够将不同进程的事件联系起来极大丰富了本文动态分析框架的功能
5此外本文还针对发送事件采用共享内存的方式来降低性能开销使得系统更具有实用性。
1.4 本章小结
本章首先介绍了安卓平台的发展以及当前安卓应用市场的问题说明了当前为安卓应用程序进行程序分析的必要性和重要性。接着结合主流的程序分析技术介绍了静态分析以及动态分析的特点通过对比 Dalvik 虚拟机与 JVM 的差别分析了在安卓进行动态分析的难点。最后简单介绍了本文解决上述难点的思路和技术要点阐述了本文的主要贡献。
接下来的文章内容按如下方式进行组织第二章通过详细描述本文依赖的主要技术点并通过与已有工作的比较来进一步说明本文框架的创新点和实用意义第三章介绍了本文框架的宏观设计第四章则结合实现来描述本文框架是如何被构建起来的第五章为实验的实例部分结合两个实例来介绍框架的运行模式以及强大功能。第六章对文章进行了总结并展望了未来可以继续完成的工作。