Android 字节码动态分析分布式框架

被引量 : 0次 | 上传用户:jpy_2008
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着安卓(Android)智能手机和平板设备的流行,运行于上面的各种应用也广泛的深入到人们的生活中,安卓应用程序扮演了越来越重要的角色。因此,如何保证应用质量以提高用户体验也引起越来越多学术界和企业界的关注。程序分析是实现这个目标可以采取的最好的技术之一。程序分析是一种对应用程序的行为自动分析的技术,它能够被用来提升应用程序的性能、寻找程序的漏洞或者发现程序的恶意行为等。本文的主要工作是基于字节码注入技术,在安卓平台上实现了一个分布式的动态分析框架。安卓平台是个多进程同时运行的系统,它还缺少合适的动态分析接口。因此,在安卓平台上进行全面的动态分析具有高难度和挑战性。已有的研究大多是针对一些安全问题的分析方法或者框架,无法为实现更加灵活、通用的动态分析工具的开发提供支持。此外,很多研究只是针对单进程的分析,在安卓平台多个应用进程协作完成事务的情境下,则无法进行很好的分析。本文提供了一个分布式分析框架,它为用户提供了一个便捷的高层语言编程模型,能够支持在安卓平台开发通用的动态分析工具。它通过在安卓系统外维护一个“影子虚拟机”,接收注入以及框架提供的事件并保证事件执行的有序性,使得分析的逻辑可以异步地运行在安卓系统以外的分析服务器。“影子虚拟机”的设计能够把分析逻辑与原程序逻辑分开,加强了隔离性,并减少了注入代码对原程序的影响。同时基于本框架开发的一些分析也适用于JVM平台,具有高可移植性。本文主要创新点还包括支持对多进程的分析,该框架不仅在安卓系统实现了虚拟机事件,还扩展了系统跨进程调用Binder库,使其可以对涉及多个进程的应用情景进行分析。在实现部分,采用了一个基于安卓匿名共享内存技术的事件队列,大大减少了事件传送的性能开销。最后本文通过两个案例,展示了本文的主要思想。程序覆盖率分析案例显示了如何利用本框架实现一个通用的覆盖率分析工具,展示了本文框架使用高层语言编写操作字节码逻辑的易用性和可扩展性。安卓应用权限使用情况案例分析则展示了如何利用本框架提供的跨进程调用事件进行多进程的联合分析。
其他文献
消费者都有隐性的或显性的消费者偏好,企业能根据这些偏好为消费者定制他们所期望的产品,并且一旦消费者认为企业所提供的定制产品或服务能够真正符合他们的既定偏好,企业就
随着城镇化建设,房地产行业的发展,电梯越来越普及。对于生活在城市里面的人们来说,电梯几乎是必需品。试想一下,在高楼林立的大都市中,如果没有电梯,人们的生活工作都将受到
本文采用试验方法研究陶瓷脆性材料在准静态和冲击压缩载荷作用下的破坏过程和强度特性,观察典型材料的压缩动态破碎现象,获得材料压缩破坏后产生的碎片的宏观统计规律。分析
随着现代工业控制技术的不断发展,PID控制器因结构简单、各控制器参数调整方便、不依赖对象模型等诸多优点,深受工程技术人员喜爱,已经应用在多种学科、各个领域。然而常规的
随着产业转型升级的不断深入,传统制造企业生存环境的持续恶化,单纯依靠出售设备作为企业的盈利手段,已不能适应市场的需求和变化。随着服务型制造业的发展,很多大型设备制造
随着全球性的气候变化以及生态环境的恶化,土地日益沙漠化和盐碱化,伴随着水土流失及自然灾害的频繁,水资源的匮乏已成为全球面临的严峻生态问题。水资源缺乏直接影响植物的
沉积盆地和造山带为大陆地壳上最为重要的构造单元,二者之间的耦合关系是大陆动力学研究的热点。盆地沉积碎屑物则是盆地沉积和构造演化的直接证据,更反映了物源区和沉积盆地
随着高速铁路的快速发展,如何保障高速铁路的安全运营成为一个非常重要的课题。目前,在高速铁路建设初期还广泛采用人工检测的方法,该方法检测效率低下,检测周期较长;在铁路
自从我国改革开放以来,经济爆炸式增长,随之我国工业水平也不断提高,尤其是进入21世纪后,市场对高效率的工业自动化设备和绿色环保的新型能源产品的需求愈加明显。作为工业自
汉语拼音是认识汉字的拐杖,也是学好语文的基础。小学生进入一年级首先面临的学习内容就是汉语拼音,它也是很多小学生学习生涯中遇到的第一只“拦路虎”。长期以来,汉语拼音