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

摘要:

随着安卓(Android)智能手机和平板设备的流行,运行于上面的各种应用也广泛的深入到人们的生活中,安卓应用程序扮演了越来越重要的角色.因此,如何保证应用质量以提高用户体验也引起越来越多学术界和企业界的关注.程序分析是实现这个目标可以采取的最好的技术之一.程序分析是一种对应用程序的行为自动分析的技术,它能够被用来提升应用程序的性能,寻找程序的漏洞或者发现程序的恶意行为等.本文的主要工作是基于字节码注入技术,在安卓平台上实现了一个分布式的动态分析框架.安卓平台是个多进程同时运行的系统,它还缺少合适的动态分析接口.因此,在安卓平台上进行全面的动态分析具有高难度和挑战性.已有的研究大多是针对一些安全问题的分析方法或者框架,无法为实现更加灵活,通用的动态分析工具的开发提供支持.此外,很多研究只是针对单进程的分析,在安卓平台多个应用进程协作完成事务的情境下,则无法进行很好的分析.本文提供了一个分布式分析框架,它为用户提供了一个便捷的高层语言编程模型,能够支持在安卓平台开发通用的动态分析工具.它通过在安卓系统外维护一个"影子虚拟机",接收注入以及框架提供的事件并保证事件执行的有序性,使得分析的逻辑可以异步地运行在安卓系统以外的分析服务器."影子虚拟机"的设计能够把分析逻辑与原程序逻辑分开,加强了隔离性,并减少了注入代码对原程序的影响.同时基于本框架开发的一些分析也适用于JVM平台,具有高可移植性.本文主要创新点还包括支持对多进程的分析,该框架不仅在安卓系统实现了虚拟机事件,还扩展了系统跨进程调用Binder库,使其可以对涉及多个进程的应用情景进行分析.在实现部分,采用了一个基于安卓匿名共享内存技术的事件队列,大大减少了事件传送的性能开销.最后本文通过两个案例,展示了本文的主要思想.程序覆盖率分析案例显示了如何利用本框架实现一个通用的覆盖率分析工具,展示了本文框架使用高层语言编写操作字节码逻辑的易用性和可扩展性.安卓应用权限使用情况案例分析则展示了如何利用本框架提供的跨进程调用事件进行多进程的联合分析.

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值