一种针对安卓应用程序性质的检测方法及装置制造方法及图纸

技术编号:33846250 阅读:12 留言:0更新日期:2022-06-18 10:31
本发明专利技术公开了一种针对安卓应用程序性质的检测方法及装置,包括针对不同安卓设备中的每一应用程序,基于Activity信息及Activity之间的跳转信息构建状态图,并将各状态图作为智能体进行组合,得到概率多智能体系统;将目标性质刻画为概率认知逻辑公式;将概率多智能体系统及概率认知逻辑公式,输入模型检测工具,获取目标性质的检测结果。本发明专利技术能够证明性质被满足或者给出不被满足的反例,能够建模同一安卓应用运行在不同设备上的情况下的系统,验证与不同设备上运行的安卓应用之间的交互相关的性质;可以分析在多个设备上运行的安卓应用程序组成的系统的性质,对开发者调试程序,提高程序易用性、减少程序漏洞具有积极意义。减少程序漏洞具有积极意义。减少程序漏洞具有积极意义。

【技术实现步骤摘要】
一种针对安卓应用程序性质的检测方法及装置


[0001]本专利技术属于涉及程序分析与安全领域,尤其涉及一种针对安卓应用程序性质的检测方法及装置。

技术介绍

[0002]随着智能手机的快速发展,安卓系统在日常生活中的使用越来越广泛。但作为一个开放的系统,诸多开发者在上面开发的应用程序在带来便利的同时,也夹杂着很多漏洞、隐患等异常行为。这些异常行为会影响应用程序的使用体验,甚至可能会造成用户的隐私泄露或者财产损失。因此,如何保证安卓应用程序的正确性,即排除异常行为,就成为了一个重要的研究问题。
[0003]现有技术大多基于软件测试,通过执行拟定的测试用例来检查应用程序的行为是否满足要求。然而软件测试受制于路径覆盖率,只能去尝试发现存在的异常行为,不能证明异常行为不存在。模型检测可以解决这个问题,其原理是遍历可达的状态空间来证明异常行为不存在(或者找出存在的异常行为)。
[0004]而现阶段将模型检测技术应用到安卓应用程序上的研究比较少,都没有给出如何建立安卓应用程序的模型、如何刻画要验证的性质及如何应用模型检测算法。

技术实现思路

[0005]本专利技术给出了一种针对安卓应用程序性质的检测方法及装置,使用静态分析方法从安卓应用程序安装包中提取Activity中的文本信息以及各个Activity之间的跳转信息,然后构建单个应用程序的模型,再将多个模型组合在一起构建出概率多智能体系统,最后使用概率认知逻辑模型检测方法,从而验证安卓应用程序是否满足所要求的性质。
[0006]本专利技术的技术内容包括:
[0007]一种针对安卓应用程序性质的检测方法,其步骤包括:
[0008]1)针对不同安卓设备中的每一应用程序,基于Activity信息及Activity之间的跳转信息构建状态图,并将各状态图作为智能体进行组合,得到概率多智能体系统;
[0009]2)将目标性质刻画为概率认知逻辑公式;
[0010]3)将概率多智能体系统及概率认知逻辑公式,输入模型检测工具,获取目标性质的检测结果。
[0011]进一步地,提取Activity信息及Activity之间的跳转信息的方法包括:利用静态解析工具从应用程序安装包中提取。
[0012]进一步地,静态解析工具包括:Gator或BACKSTAGE。
[0013]进一步地,通过以下步骤构建状态图:
[0014]1)将Activity信息作为状态,并作为状态图的顶点,其中把打开应用程序后进入的第一个Activity信息,作为初始状态;
[0015]2)利用Activity之间的跳转信息,构建状态图的边;
[0016]3)在相应的边上,标记触发页面迁移的事件,作为动作;
[0017]4)设定相应的原子命题及状态标签函数。
[0018]进一步地,所述状态图的元素还包括:迁移概率。
[0019]进一步地,概率认知逻辑公式包括:状态公式和路径公式。
[0020]进一步地,状态公式其中为状态公式,p为原子命题,为取非操作符,∧为合取操作符,为概率操作符,表示大于、大于等于、小于、小于等于四种关系,d代表在[0,1]之间的实数,为知识认知操作符,i为一智能体,为每个人知识认知操作符,G为多智能体集合,为分布式知识认知操作符,ψ为路径公式。
[0021]进一步地,路径公式为其中X为下一步操作符,U为直到操作符,为状态公式。
[0022]一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述所述的方法。
[0023]一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机以执行上述所述的方法。
[0024]与现有技术相比,本专利技术具有以下优势:
[0025]1)使用模型检测技术,能够证明性质被满足或者给出不被满足的反例。
[0026]2)能够建模同一安卓应用运行在不同设备上的情况下的系统,验证与不同设备上运行的安卓应用之间的交互相关的性质;
[0027]3)可以分析在多个设备上运行的安卓应用程序组成的系统的性质,对开发者调试程序,提高程序易用性、减少程序漏洞具有积极意义。
附图说明
[0028]图1为本专利技术的系统架构图。
[0029]图2为本专利技术的工作流程图。
[0030]图3为本专利技术一实施例的单个应用模型。
具体实施方式
[0031]下面结合附图,通过实施例对本专利技术作进一步的说明。
[0032]本专利技术的检测方法,从安卓应用安装包文件构建模型,使用逻辑公式刻画要验证的性质以及应用模型检测算法,通过应用这一套方法可以找出安卓应用中不满足性质的路径,或者给出性质被满足的结论。
[0033]1.系统组成
[0034]本专利技术系统架构如图1所示,主要由4个模块组成,分别是安卓应用程序解析工具模块,模型构建模块,性质输入模块和模型检测模块。
[0035]2.工作流程
[0036]本专利技术的工作流程如图2所示:
[0037](1)首先通过静态解析工具,例如Gator(http://web.cse.ohio

state.edu/
presto/software/gator/)、BACKSTAGE(https://www.st.cs.uni

saarland.de/appmining/backstage/)等,从安卓应用程序安装包提取出数据,包括Activity信息和Activity之间的跳转信息。
[0038](2)然后使用这些数据构建单个应用程序的状态图。单个应用程序的状态图包括以下元素:一个有限的状态集合,一个初始状态,一个有限的动作集合,一个状态迁移函数,一个有限的原子命题集合和一个状态标签函数。具体构建方法为:把Activity作为状态;把打开应用程序后进入的第一个Activity作为初始状态;把页面上可以触发页面迁移的事件(例如点击按钮等)作为动作;把Activity之间的跳转作为迁移,其中涉及到网络连接的迁移由于网络传输存在一定的失败概率,故而需要引入概率因素(例如当用户在登录页面点击login按钮,应用以0.99的概率进入下一个页面,以0.01的概率停留在登录页面);原子命题和状态标签函数可以根据不同的应用场景给出不同定义。
[0039]图3给出了一个简单的单个应用的模型的例子。
[0040](3)再然后将每个单个的应用程序视为一个智能体,把运行在不同设备上的多个应用程序客户端组合成概率多智能体系统,即全局状态为每个局部状态的组合,全局动作为局部动作的组合,全局迁移为局部迁移的组合。而每个智能体只能得到局部信息,即只知道自己处于哪个状态,而不知道其他智能体处于哪个状态。
[0041](4)本专利技术中的性质使用概率认知逻辑来刻画。该逻辑综合了概率计算树逻辑和认知逻辑。该逻辑包括状态公式和路径公式,其中状态公式
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对安卓应用程序性质的检测方法,其步骤包括:1)针对不同安卓设备中的每一应用程序,基于Activity信息及Activity之间的跳转信息构建状态图,并将各状态图作为智能体进行组合,得到概率多智能体系统;2)将目标性质刻画为概率认知逻辑公式;3)将概率多智能体系统及概率认知逻辑公式,输入模型检测工具,获取目标性质的检测结果。2.如权利要求1所述的方法,其特征在于,提取Activity信息及Activity之间的跳转信息的方法包括:利用静态解析工具从应用程序安装包中提取。3.如权利要求2所述的方法,其特征在于,静态解析工具包括:Gator或BACKSTAGE。4.如权利要求1所述的方法,其特征在于,通过以下步骤构建状态图:1)将Activity信息作为状态,并作为状态图的顶点,其中把打开应用程序后进入的第一个Activity信息,作为初始状态;2)利用Activity之间的跳转信息,构建状态图的边;3)在相应的边上,标记触发页面迁移的事件,作为动作;4)设定相应的原子命题及状态标签函数。5.如权利要求4所述...

【专利技术属性】
技术研发人员:付辰李勇张立军黄承超
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1