一种基于控件区域分布特征的安卓界面相似度计算方法与流程

文档序号:16579053发布日期:2019-01-14 17:48阅读:409来源:国知局
一种基于控件区域分布特征的安卓界面相似度计算方法与流程

本发明属于安卓应用、软件胎记、重打包检测以及应用模糊算法领域,具体涉及一种基于控件区域分布特征的安卓界面相似度计算方法。



背景技术:

随着移动设备的不断普及,移动应用数量也呈现爆炸式的增长,也因此吸引到很多不法分子的注意。安卓应用易被重打包发布,攻击者们在重打包过程中添加、修改部分代码从而达到他们的不法目的。现有技术主要是需要通过识别应用的软件胎记来检测安卓应用重打包,通过分析应用的代码或者界面信息来提取应用的软件胎记。但是由于现如今应用混淆和加密的普遍性,从应用代码中提取的软件胎记会收到严重的干扰,因此,越来越多的工作将重点放在了从应用界面中提取胎记,而这其中的一个重要的环节就是如何计算界面之间的相似度。而随着混合安卓应用逐渐成为现如今安卓应用开发的主流方式,应用界面信息与传统的原生安卓应用有着较大的区别。从实际上讲,现阶段并没有针对混合应用界面胎记提取的工作;而从理论分析而言,web部分中动态、无类型的控件特性增加了处理的难度。



技术实现要素:

本发明针对现有技术中的不足,提供一种基于控件区域分布特征的安卓界面相似度计算方法。该方法基于以下现实:安卓应用界面中的控件总是占据了一个矩形区域(包含位置和大小信息),这些矩形区域构成了一个界面的骨架,对这个骨架的部分修改并不会过多的影响整个界面的相似程度。因此,我们提出了控件区域分布树,一个用于安卓运行时应用界面信息的模型。

为实现上述目的,本发明采用以下技术方案:

一种基于控件区域分布特征的安卓界面相似度计算方法,其特征在于,包括如下步骤:

步骤一、动态执行安卓应用,收集用户界面信息;

步骤二、通过用户界面信息构造控件区域分布树;

步骤三、通过比较控件区域分布树的相似度来判断应用界面之间的相似度。

为优化上述技术方案,采取的具体措施还包括:

步骤一中,对于待比较的安卓应用运行时界面,获取安卓应用用户界面的结构信息。

步骤二中,控件区域分布树是一个树形数据结构,一个应用界面对应一个控件区域分布树,树的节点与应用界面中的控件一一对应,每个节点包含了对应控件的区域信息,控件的区域信息是指控件在界面呈现上占据的矩形区域的位置与大小信息。

步骤二具体包括:

步骤2.1、首先获取应用界面布局的视图层次信息;

步骤2.2、然后按任意顺序逐个遍历视图层次中的最底层的控件的矩形区域信息,将这些矩形区域作为节点,插入并构建为一棵r树;

步骤2.3、将构建出来的r树作为控件区域分布树。

步骤三具体包括:

步骤3.1、一个控件区域分布树的每个节点包含了控件所占据矩形区域的位置和大小信息,矩形区域的相似度由jaccard距离定义;

设两个矩形r1、r2,其对应的面积大小分别是s1、s2,两者重叠面积是so,那么这两个矩形的相似度为:

步骤3.2、设两个控件区域分布树为t1、t2,对于t1中每个矩形ri∈t1,求得:

其中,t2中每个矩形为rj,即rj∈t2;

最终将simm的平均值作为树的相似度,也就是对应界面的相似度。

本发明的有益效果是:本发明具体提供的功能包括:1、收集安卓应用用户界面信息并构造控件区域分布树;2、反馈安卓应用界面之间的相似度。与现有技术相比,其显著特点是:提高了对代码混淆与加这两类反检测方式的抵抗性,提高了针对混合安卓应用界面的相似度计算的精确性。

附图说明

图1是一种基于控件区域分布特征的安卓界面相似度计算方法的系统框图。

图2是控件区域分布树的生成流程图。

图3是提供的一个界面例子。

图4是界面的视图层次。

图5是界面中控件对应的矩形区域以及生成的r树中mbr的划分。

图6是最终生成的控件区域分布树。

具体实施方式

现在结合附图对本发明作进一步详细的说明。

一、主要过程

如图1所示的一种基于控件区域分布特征的安卓界面相似度计算方法,对于待比较的一对安卓应用运行时界面,我们利用第三方工具获取安卓应用用户界面的结构信息。然后将应用每个布局所包含的用户界面结构信息转化为控件区域分布树,作为应用界面的特征。最后计算两个安卓应用界面对应的控件区域分布树的相似度,用于确定应用界面是否相似。

二、控件区域分布树的生成

控件区域分布树的生成流程图如图2,详细步骤如下:

我们获取到的布局都是xml格式,其数据结构可被看作为一棵树,整棵树代表该布局层次,树的节点代表布局中对应的控件。利用第三方工具可以获取运行界面布局的视图层次树。

界面中的每一个控件都占据着一个矩形区域,不同的控件会在这些大小不同的矩形中绘制不同的内容(比如颜色、文本或者图片)。这些控件都是界面视图层次中最底层的元素,对应的矩形彼此之间不会出现嵌套重叠的情况。我们构建一棵r树来存放这些矩形信息,r树是一棵用于高维度信息索引的平衡多叉树,在本发明中,我们使用的矩形信息就是二维的(宽度和高度)。r树利用最小边界矩形(minimumboundingrectangle,mbr)将相邻的物体组合在一起构成节点,并保证了树的平衡性。通过向r树不断插入每个控件的矩形信息,最终构造出的r树就作为了该界面的控件区域分布树。不同插入顺序可能会导致不同的r树,但不影响之后控件区域分布树的相似度计算结果。

图3展示了一个界面例子,图4则是该界面的视图层次,其中的每个节点都对应了界面中可见或者不可见的元素(一般而言,不可见元素是用来组织其子元素的布局结构的,例如linearlayout),我们只考虑其中的叶子节点元素并将对应的矩形信息添加到r树中。图5则是该界面中控件对应的矩形区域以及生成的r树中mbr的划分,图6就是最终生成的控件区域分布树。

三、控件区域分布树相似度计算

一个控件区域分布树的每个节点包含了控件所占据矩形区域的位置和大小信息,矩形区域的相似度有jaccard距离定义:设两个矩形r1、r2,其对应的面积大小分别是s1、s2,两者重叠面积是so,那么这两个矩形的相似度为:

其次,设两个控件区域分布树为t1、t2,对于t1中每个矩形ri∈t1,求得:

其中,t2中每个矩形为rj,即rj∈t2;

最终将simm的平均值作为树的相似度,也就是对应界面的相似度。

需要注意的是,发明中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。

以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1