Android应用中反射函数的解析

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:m123987679
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
自从Google于2008年9月发布Android操作系统以来,搭载Android操作系统的手机出货量呈爆炸式增长,很快占据了智能手机的主要市场份额,与此同时,各种各样功能丰富的Android应用程序也纷纷出现,方便着人们生活的方方面面。Android应用程序是通过Java语言编写的,所以继承了 Java反射的特性。一方面,反射机制能够在程序运行过程中动态地观察和改变应用程序的行为,提高了 Android应用开发的灵活性;另一方面,反射机制给研究人员分析Android应用程序带来了挑战,静态分析的时候很难确定反射调用的目标,包括目标方法、目标字段和目标对象,那么反射在静态分析时就阻断了程序的控制流和数据流,因此很难对程序的运行时行为进行完整建模,导致下游的分析如指向分析和污点分析等难以进行。针对该问题本文提出了一种动态运行和静态插桩相结合的方法来解析An-droid 应用中反射相关的函数, 解析之后反射调用的 目标对静态分析程序来说就是可见的,静态分析就能够分析更多的程序行为,从而提高分析的准确率。我们的解析方法分为动态运行和静态插桩两部分:动态运行是将Android应用运行于特定的Android操作系统中,当反射调用触发时,就通过系统记录下反射调用的目标,这步的关键是实现这样的特定的Android操作系统,我们通过对Android操作系统源码中反射相关的代码做了修改来完成这部分工作;静态插桩是将通过动态运行得到的反射调用的目标转换成显式的Java调用,并且将显式的Java调用写入Android应用程序中,反射就不会再对静态分析工具的准确率造成影响了。我们用本文提出的方法对不同来源的Android应用程序中的反射调用做了解析,针对分析结果分别做了横向比较和纵向比较。实验结果表明,我们的方法相比其他解析Android应用中反射的方法能解析出更多的反射调用目标,并且下游的静态分析程序在分析本文方法处理后的Android应用时,会有更准确的分析结果,从而证明了本文提出方法的有效性和实用性。
其他文献
图像复原作为计算机视觉领域中的一个重要分支,在提高图像质量,重建图像信息等方面具有重要的意义。图像复原的实质是逆问题的求解,正则化方法通过约束目标病态性问题使其转
极值波(也称畸形波、聚焦波)是一种强非线性波浪,它具有单波峰、极大波高、能量集中以及存在时间短等特点。由于其危害性极大,已经被认为是众多海洋平台结构和船舶失事的重要
面向2020年及未来,移动互联网、物联网业务将成为推动移动通信发展的主要力量。为了应对移动互联网和物联网业务的挑战,5G应运而生。作为5G的关键技术之一,全维多天线(Full-D
全球气候变暖与极地区域冰川加速消融有着最直接的联系。海冰作为全球气候系统的重要组成部分,它的变化不仅影响着海气间的能量、动量的传递交换,还将造成盐度突变层的不稳定
RNA在表达蛋白质的遗传信息中起重要作用。为了了解RNA如何执行它们的功能,我们需要知道它们的结构。假结是RNA中一种重要的二级结构,由于建模的困难导致它更难被预测。本文
三磷酸腺苷(ATP)是一种非常重要的辅酶类药物并且是一种高能化合物,可以改善体内脂肪、蛋白质、核酸等的代谢。ATP不仅可以治疗体内细胞损伤引起的疾病,而且可以辅助治疗心力衰
近年报道多种在免疫系统发现并起重要作用的蛋白质,在发育及成年神经系统也有表达。其中,经典MHCⅠ类分子在中枢神经系统的表达和功能逐渐成为神经发育及神经免疫领域的研究
随着用户数据服务需求的日益增长,传统无线网络的容量和传输速率面临严峻挑战。可见光通信以发光二极管LED (Light Emitting Diode)发射的光作为传输媒介,具有高速率、大容量
汽油加氢反应器是汽油加氢系统的关键所在,冷氢系统又是影响加氢性能的一个重要的反应器内构件,所以对于冷氢系统性能的提升也就显得更加重要。冷氢系统包括冷氢箱和冷氢管,
随着信息化时代的到来,用户在通讯时需要越来越大的传输容量,为了达到高传输容量、高频谱利用率的目的,多进制相移键控(MPSK multilevel phase shift keying)凭借其较强的抗