[发明专利]一种基于布局簇图的安卓应用重打包检测方法有效
申请号: | 201710328770.2 | 申请日: | 2017-05-11 |
公开(公告)号: | CN107169323B | 公开(公告)日: | 2020-09-15 |
发明(设计)人: | 岳胜涛;马骏;陶先平;吕建 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F21/56 |
代理公司: | 南京知识律师事务所 32207 | 代理人: | 张苏沛 |
地址: | 210046 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 布局 应用 打包 检测 方法 | ||
1.一种基于布局簇图的安卓软件重打包检测方法,包括一个描述安卓应用运行时用户界面信息的数据模型——布局簇图,其特征在于,所述数据模型——布局簇图是一个有向图,G=(C,E,A,α);其中,G的节点c∈C,表示一簇相似的布局,即当用户布局之间的相似度大于一个阈值时,这些用户布局将会被划分到同一个的簇中,该簇被作为图的一个节点;图的边e=c1→c2表示簇c1到c2的转移,即当用户对布局l1上的控件进行一次交互行为a=α(e)之后,l1会跳转到布局l2,其中l1∈c1,l2∈c2,a∈A,A为交互行为集合,α为E到A的映射,通过该映射,能够得到任意一次转移所触发的行为;
包括以下步骤:
1.1、动态执行安卓应用,收集用户界面信息,包括安卓应用运行时的布局、用户触发交互行为后的布局的变化与跳转;
采用启发式循环算法动态执行安装应用并构造布局簇图,包括以下步骤:
2.1对布局中的每一个可交互控件赋予一个权重,称为控件权重;对每一个控件的每一个可交互行为赋予一个权重,称为行为权重;可交互行为的范围能够由用户指定;
2.2在构造布局簇图时,不断更新控件权重及行为权重,并根据更新后的权重随机选取交互控件与行为,权重越大,对应的控件或者行为被选择的可能性也越高;
2.3在所选控件上执行所选行为,更新布局簇图;
2.4当循环计数达到设定的阈值,跳出循环,输出布局簇图;
启发式循环算法具体包括:
在循环开始前,所有的控件权重和行为权重都初始化为一个相同的值,并初始化一个空的布局簇图;
进入主循环后:首先需要获取当前的布局l以及该布局所属的布局簇c;在布局簇图中查找与l最相似的布局lm,如果两者相似度大于一个阈值,则将lm的权重复制给l,且lm所属的簇即为c;否则l为一个未曾遍历的布局,其中的权重均为初始值,并且还需要生成一个新的图的节点,即一个新的布局簇,作为l的所属簇cn;应用启动后的首个布局记为ls,所属簇为cs;
获取到当前布局后,判断当前布局所属簇与cs在布局簇图中的距离k;如果k小于一个阈值δk,则根据当前布局中各个控件的控件权重,带权重的随机挑选一个可交互控件;根据挑选的控件中的行为权重,带权重的随机挑选一个可交互行为;
如果k大于δk,则挑选的交互控件被指定为:返回按钮,挑选的可交互行为被指定为:返回;
当在挑选的控件执行完挑选的行为后,将执行后的布局簇,即节点,以及本次布局转移,即边,添加到布局簇图中;如果布局簇图有变化,即图的节点数或边数有变化,那么当前选择的节点的权重和行为的权重会增加,反之减少;
当每次执行完行为后,如果布局簇图有变化,则计数器清零;反之则增加1;当计数值达到一个阈值δc时,循环跳出,算法结束;
1.2、通过获得的应用布局所包含的用户界面信息构造布局簇图,并将布局簇图作为应用的软件胎记;
1.3、通过比较布局簇图的相似度来判断应用之间是否重打包。
2.根据权利要求1所述的重打包检测方法,其特征在于:如果布局簇图有变化,那么当前选择的节点的权重和行为的权重会增加,增加的值为1+wa,其中,wa为跳转后的布局中控件权重的平均值;反之减少1。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710328770.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种大豆肽饮料及其制备工艺
- 下一篇:一种豆汁加工的方法