【技术实现步骤摘要】
一种针对安卓应用对传感器的能耗漏洞的分析与检测系统
本专利技术涉及安卓应用对传感器能耗漏洞的检测系统。
技术介绍
由于安卓移动操作系统是一个开源的平台,它吸引了众多的应用开发者,使得近年来安卓系统在移动设备市场中占据了极大的份额。为了实现丰富多彩的应用,智能手机都配备了各种各样的传感器。这些传感器通过感知用户当前的物理环境,从而为用户提供更加个性化的服务。但是另一方面,这些传感器会消耗大量的电量,从而极大地缩短智能手机的续航时间。因此,传感器采集到的数据应当被应用很好地利用,并对用户产生一定的益处。如果传感器数据的利用率过低,则说明相应的电量被浪费了,该应用存在着能耗漏洞。能耗漏洞的存在会造成较差的用户体验,并对安卓应用的进一步发展产生负面作用。目前传统的解决办法都只考虑产生相应的事件,包括普通事件和传感器事件,并不考虑传感器事件中所包含的数据。传统的工具在产生传感器事件时,会随机产生所需要的数据并将其附着在事件之中。这导致相应的处理函数中的许多与传感器数据相关的路径都无法被执行,即较低的路径覆盖率。这进一步造成应用无法到达一些与传感器数据相关的特定状态,从而漏报许多存在问题的状态。并且由于产生的数据的随机性,多次分析将会出现不一样的结果。这会极大地困扰用户,降低工具的稳定性和实用性。另一方面,传统的工具在处理传感器事件时,不论程序执行了哪一条路径,都只会转移到同一个新的状态。然而大多数应用都会根据传感器数据的不同而转移到不同的状态以实现智能化的服务,因此这些应用都无法被传统的工具分析。
技术实现思路
1、所要解决的技术问题:目前的安卓应用的传感器分析检测系统 ...
【技术保护点】
一种针对安卓应用对传感器的能耗漏洞的分析与检测系统,其特征在于:由安卓应用执行模块,传感器数据产生模块和传感器数据利用率分析模块构成,安卓应用执行模块分别和传感器数据产生模块和传感器数据利用率分析模块连接,并且所有的模块运行于验证可执行Java程序的JPF系统上。
【技术特征摘要】
1.一种针对安卓应用对传感器的能耗漏洞的分析与检测系统,由安卓应用执行模块,传感器数据产生模块和传感器数据利用率分析模块构成;安卓应用执行模块分别和传感器数据产生模块和传感器数据利用率分析模块连接,其特征在于:所有的模块运行于验证可执行Java程序的JPF系统上;安卓应用执行模块是指解析得到应用的所有事件处理方法,产生模拟事件以激活相应的处理方法,并在事件处理结束后更新事件处理方法的集合,通过产生特定的事件序列,到达对应的程序状态;安卓应用执行模块的工作流程为:安卓应用执行模块首先读入应用的字节码文件和资源文件,并解析得到应用的GUI部件和初始时刻能够调用的事件处理方法集合,该模块将初始应用状态和与之对应的能够调用的事件处理方法集合压入一个栈的数据结构中,并进入一个循环;这个循环的结束判定条件为栈内元素是否为空,如果是空,表明分析已经结束,则从传感器数据利用率分析模块获取结果,整理并报告给用户;如果不为空,将按照如下的步骤进行处理:首先,获取得到栈顶的应用状态作为当前的应用状态及其对应的事件处理方法集合,此时并不将栈顶元素出栈,判断是否存在一个之前未调用过的非传感器事件处理方法,如果存在,则选择一个这样的处理方法并产生相应的事件以激活该方法,如果不存在,则判断当前状态下是否能够产生传感器事件,如果能够产生,则调用传感器数据产生模块利用多维的白盒采样算法生成数据,如果能够继续生成新数据,则开启传感器数据利用率分析模块的功能,并产生一个包裹了新数据的传感器事件,该事件会附着一个特殊的标记以实现动态染色技术,如果不能够产生传感器数据或者传感器数据产生模块不能生成新数据,则移除栈顶的元素并开始下一次循环;传感器数据产生模块的算法工作流程为:传感器数据产生模块首先获取需要采样的数据的初始范围空间,表明组成该传感器数据的变量的个数和每个变量的值域,数据的初始范围的边界点,即由各个变量的最大或最小值组成的数据点,作为第一批采样得到的数据,将会传递给应用程序执行,在执行的过程中将会记录它们的关键指令的执行情况,即在JPF虚拟机上判断当前执行的指令是否属于关键指令,并保存下来,接着数据的初始范围将会被压入一个栈,并进入一个循环,循环体结束的判定条件是栈内元素是否为空,若为空,则跳出循环并结束采样;若不为空,则开始执行循环内的代码,栈顶元素被弹出,并作为当前的数据范围空间;接下来判断当前数据范围的所有的边界数据点对应的关键代码是否一致,每个边界数据点之前已经被处理过一次,并且保存了对应的关键代码,这里的一致指所有的边界数据点对应的关键代码都一样,只要存在一个数据点不同,则被认为不一致,如果一致,则判断当前数据范围的大小是否大于阈值1;如果不一致,则判断当前数据范围的大小是否大于阈值2,如果一致但不大于阈值1或者不一致但不大于阈值2,则将会结束此次循环,如果一致且大于阈值1或者不...
【专利技术属性】
技术研发人员:许畅,马晓星,吕建,李其玮,
申请(专利权)人:南京大学,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。