CN108898013B - 一种基于布局划分特征向量的安卓应用界面相似度比较方法 - Google Patents

一种基于布局划分特征向量的安卓应用界面相似度比较方法 Download PDF

Info

Publication number
CN108898013B
CN108898013B CN201810612813.4A CN201810612813A CN108898013B CN 108898013 B CN108898013 B CN 108898013B CN 201810612813 A CN201810612813 A CN 201810612813A CN 108898013 B CN108898013 B CN 108898013B
Authority
CN
China
Prior art keywords
layout
feature vector
interface
android
android application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810612813.4A
Other languages
English (en)
Other versions
CN108898013A (zh
Inventor
马骏
孙清伟
陶先平
吕建
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University
Original Assignee
Nanjing University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University filed Critical Nanjing University
Priority to CN201810612813.4A priority Critical patent/CN108898013B/zh
Publication of CN108898013A publication Critical patent/CN108898013A/zh
Application granted granted Critical
Publication of CN108898013B publication Critical patent/CN108898013B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本发明公开了一种基于布局划分特征向量的安卓应用界面相似度比较方法。所述方法包括一个描述安卓应用运行时用户界面信息的数据模型——布局划分特征向量以及界面之间的相似度计算方法:1)通过第三方工具获得的应用布局,用布局所包含的用户界面信息构造布局划分特征向量;2)通过比较布局划分特征向量的相似度来判断应用界面之间是否相似。该方法的特点在于:提供了可获取的安卓应用界面的一种特征,提高了对代码混淆与加密这两类反检测方式的抵抗性,提高了安卓应用界面检测的精确性,大大加快了相似度计算,可以作为第三方动态重打包检测方法的软件胎记,提高了安卓应用重打包检测的精确性。

Description

一种基于布局划分特征向量的安卓应用界面相似度比较方法
技术领域
本发明涉及安卓应用,软件胎记,重打包检测领域,具体涉及一种基于布局划分特征向量的安卓应用界面相似度比较方法。
背景技术
近年来,随着移动设备的普及,基于移动设备的安卓应用数量不断增加。然而,通过已有的逆向工程工具,安卓应用可以被修改、重新打包并发布。攻击者利用安卓应用的流行性,向应用中插装广告、恶意程序来达到一些非法的目的。一些非官方的或者第三方的应用市场更是助长了这一现象。对这类安卓应用重打包的常见的检测思路就是生成应用的软件胎记,然后通过比较软件胎记来计算应用之间的相似程度,判断是否重打包。按照生成软件胎记的方式划分,可分为静态生成和动态生成。但是,攻击者们为了防止重打包的应用被识别出来,会对应用进行反检测处理,例如代码混淆或者软件加密。静态生成的软件胎记并不能很有效的抵抗一些代码混淆的攻击;而当安卓应用被加密之后,静态方法几乎难以产生效果。现有的动态生成软件胎记方式仍有不足,对代码的等价语义变换同样会影响这些胎记的效果。
发明内容
本发明主要针对上述不足,提出了一种基于布局划分特征向量的安卓应用界面相似度比较方法。攻击者在重打包应用时,为了利用原应用的流行性,总是使得重打包后的应用保持相似的界面。因此,提出了一种基于布局划分特征向量的安卓应用界面相似度比较方法,并将此作为安卓应用的软件胎记生成的信息之一,可运用于多种安卓动态重打包检测方法中。
本发明通过以下技术方案来实现:一种基于布局划分特征向量的安卓应用界面相似度比较方法,包括一个描述安卓应用运行时用户界面信息的数据模型——布局划分特征向量以及特征向量相似度计算方法:
安卓应用界面是指安卓应用运行时刻呈现给用户的界面的结构信息,由一系列的View Group以及View所构成;
布局格划分特征向量是一个一维特征向量。首先是将安卓界面按照整个界面大小平均划分成若干数量的格子,界面中的每个控件占据的矩形区域会落在某个或者某些数量的格子中,所以每个格子中包含了一部分安卓控件矩形区域的信息,按照一定顺序将所有格子的信息依次排列构成一个一维特征向量,I=(i1,i2…),其中元素i,表示某一个划分的格子中包含的控件信息,通过计算两个布局划分特征向量的相似度,来衡量两个界面布局的相似度。
进一步的,所述布局划分特征向量的生成包含以下步骤:
1获取安卓应用运行时的界面,利用第三方工具获取运行界面布局的视图层次树;
2安卓界面中每个控件都有一个其所占据的矩形区域对应,只考虑布局结构信息的最底层的控件,对应了布局视图层次树的叶子结点,所以遍历界面布局的视图层次树,获取所有叶子结点代表的控件占据的矩形区域的信息,记录这些叶子结点矩形区域的左上角和右下角坐标;
3将安卓界面按照整个界面大小划分成m*n个格子,视图层次树所有叶子结点代表的控件的矩形左上角和右下角坐标分别落在某个格子中,不同控件矩形区域的坐标点可能落在同一个格子,统计落在同一个格子的坐标点数量,根据所有格子信息构成两个一维特征向量,Ia=(i1,i2,…im*n)和Ib=(i1,i2,…im*n),其中在特征向量Ia中的元素ik,表示划分的第k格中包含的矩形区域左上角坐标的数量,在特征向量Ib中的元素ik,表示划分的第k格中包含的矩形区域右下角坐标的数量;
4对特征向量Ia和Ib中的元素,进行如下变换:考虑以第k格为中心的9宫格区域以及中心的元素ik,第k格的上下左右的格子代表的特征向量元素加上A*ik,第k格的左上、左下、右上和右下格子代表的特征向量元素加上B*ik,特别的,对于安卓页面布局划分之后处在页面边缘的第k格只考虑其九宫格范围内实际存在的格子,其中A、B是预设的系数;
5然后将Ia和Ib首尾相连合并成一个一维向量I=(i1,i2…im*n,im*n+1,…im*n*2),即布局划分特征向量。
进一步的,所述布局划分特征向量的相似度计算如下:
两个布局Lp,Lq之间的相似度则由两个布局划分特征向量Ip,Iq的Dice系数的变体决定,计算公式如下:
Figure GDA0003118620730000021
其中N=m*n*2,表示特征向量长度,ipk表示特征向量Ip的第k个元素,iqk表示特征向量Iq的第k个元素,min函数表示取最小。
有益效果:
本发明提供了可获取的安卓应用界面的一种特征,提高了对代码混淆与加密这两类反检测方式的抵抗性,提高了安卓应用界面检测的精确性,大大加快了相似度计算,可以作为第三方动态重打包检测方法的软件胎记,提高了安卓应用重打包检测的精确性。
附图说明
图1为基于布局划分特征向量的安卓应用界面相似度比较方法的系统框图。
图2为基于布局划分的特征向量生成流程图。
图3为一种安卓界面示例。
图4为安卓界面的布局结构图。
图5为安卓界面的布局结构划分图。
图6为安卓界面布局结构划分的矩形区域的左上角坐标落点示例。
图7为安卓界面布局结构划分的矩形区域的右下角坐标落点示例。
图8为特征向量中的元素变换原理图。
图9为特征向量变换示例。
具体实施方式
下面结合本发明实例中的附图,对本发明实施例中的技术方案进行清楚、完整地的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
1、主要过程
图1所示为本发明提供的一种基于布局划分特征向量的安卓应用界面相似度比较方法的系统框图,对于待比较的若干安卓应用运行时界面,利用第三方工具获取安卓应用用户界面的结构信息。然后将应用每个布局所包含的用户界面结构信息转化为基于布局划分的特征向量,该特征向量将作为应用界面的特征。最后,计算两个安卓应用界面对应的布局划分的特征向量的相似度,用于确定应用界面是否相似。
2、布局划分特征向量
安卓应用的布局是指安卓应用运行时刻呈现给用户的界面的结构信息,由一系列的View Group以及View所构成。该视觉结构是安卓应用开发者设计出并用于用户交互的应用界面,可以利用第三方工具如Android UIAutomator,在安卓应用运行时获取。
所述数据模型布局格划分特征向量是一个一维特征向量。首先是将安卓界面按照整个界面大小平均划分成若干数量的格子,界面中的每个控件占据的矩形区域会落在某个或者某些数量的格子中,所以每个格子中包含了一部分安卓控件矩形区域的信息,按照一定顺序将所有格子的信息依次排列构成一个一维特征向量,I=(i1,i2…),其中元素i,表示某一个划分的格子中包含的控件信息,通过计算两个布局划分特征向量的相似度,来衡量两个界面布局的相似度。
3、布局划分特征向量生成
本发明所述的基于布局划分的特征向量生成流程图如图2,详细步骤如下:
获取到的布局都是XML格式,其数据结构可被看作为一棵树,整棵树代表该布局层次,树的节点代表布局中对应的控件。利用第三方工具可以获取运行界面布局的视图层次树。
安卓界面中每个控件都有一个其所占据的矩形区域对应,只考虑布局结构信息的最底层的控件,对应了布局视图层次树的叶子结点,所以遍历界面布局的视图层次树,获取所有叶子结点代表的控件占据的矩形区域的信息,记录这些叶子结点矩形区域的左上角和右下角坐标。如图3的示例安卓界面,可以获得每个控件的矩形区域信息,包括位置以及大小等,可以抽象出这个界面的布局结构如图4。
将安卓界面按照整个界面大小划分成m*n个格子,视图层次树所有叶子结点代表的控件的矩形左上角和右下角坐标分别落在某个格子中,不同控件矩形区域的坐标点可能落在同一个格子,统计落在同一个格子的坐标点数量,根据所有格子信息依次排列构成两个一个一维特征向量,Ia=(i1,i2,…im*n)和Ib=(i1,i2,…im*n),其中在特征向量Ia中的元素ik,表示划分的第k格中包含的矩形区域左上角坐标的数量,在特征向量Ib中的元素ik,表示划分的第k格中包含的矩形区域右下角坐标的数量。如将图4进行布局划分,可以看到控件的矩形区域的分布情况,如图5。分别观察矩形区域的左上角坐标落点以及右下角坐标落点,分别对两者统计出每个格子的坐标点数量,可以得到Ia和ib,如图6和图7。
对特征向量Ia和Ib中的元素,进行如下变换:考虑以第k格为中心的9宫格区域以及中心的元素ik,第k格的上下左右的格子代表的特征向量元素加上A*ik,第k格的左上、左下、右上和右下格子代表的特征向量元素加上B*ik,特别的,对于安卓页面布局划分之后处在页面边缘的第k格只考虑其九宫格范围内实际存在的格子,其中A、B是预设的系数。如图8,取A=0.75,B=0.5,如果某个9宫格中间代表的特征向量元素为1,那么经过变换可以将9宫格更新为右边的状态。Ia和Ib经过变换后如图9。
最后将Ia和Ib降维成一维向量,用索引来表示格子之间的相对位置关系,将Ia和ib首尾相连合并成一个一维向量I=(i1,i2…im*n,im*n+1,…im*n*2),即布局划分特征向量。
4、布局划分特征向量相似度计算:
两个布局Lp,Lq之间的相似度则由两个布局划分特征向量Ip,Iq的Dice系数的变体决定,计算公式如下:
Figure GDA0003118620730000051
其中N=m*n*2,表示特征向量长度,ipk表示特征向量Ip的第k个元素,iqk表示特征向量Iq的第k个元素,min函数表示取最小值。

Claims (1)

1.一种基于布局划分特征向量的安卓应用界面相似度比较方法,其特征在于:包含一个描述安卓应用运行时用户界面信息的数据模型——布局划分特征向量以及特征向量相似度计算方法:
所述安卓应用界面是指安卓应用运行时刻呈现给用户的界面的结构信息,由一系列的View Group以及View所构成;
所述布局划分特征向量是一个一维特征向量;首先是将安卓界面按照整个界面大小平均划分成若干数量的格子,界面中的每个控件占据的矩形区域会落在某个或者某些数量的格子中,每个格子中包含了一部分安卓控件矩形区域的信息,将所有格子的信息依次排列构成一个一维特征向量,I=(i1,i2...),其中元素i,表示某一个划分的格子中包含的控件信息,通过计算两个布局划分特征向量的相似度,来衡量两个界面布局的相似度;
所述布局划分特征向量的生成包含以下步骤:
步骤一、获取安卓应用运行时的界面,利用第三方工具获取运行界面布局的视图层次树;
步骤二、安卓界面中每个控件都有一个其所占据的矩形区域对应,只考虑布局结构信息的最底层的控件,对应了布局视图层次树的叶子结点,遍历界面布局的视图层次树,获取所有叶子结点代表的控件占据的矩形区域的信息,记录这些叶子结点矩形区域的左上角和右下角坐标;
步骤三、将安卓界面按照整个界面大小划分成m*n个格子,视图层次树所有叶子结点代表的控件的矩形左上角和右下角坐标分别落在某个格子中,不同控件矩形区域的坐标点可能落在同一个格子,统计落在同一个格子的坐标点数量,根据所有格子信息构成两个一维特征向量,Ia=(i1,i2,...im*n)和Ib=(i1,i2,...im*n),其中在特征向量Ia中的元素ik,表示划分的第k格中包含的矩形区域左上角坐标的数量,在特征向量Ib中的元素ik,表示划分的第k格中包含的矩形区域右下角坐标的数量;
步骤四、对特征向量Ia和Ib中的元素,进行如下变换:考虑以第k格为中心的9宫格区域以及中心的元素ik,第k格的上下左右的格子代表的特征向量元素加上A*ik,第k格的左上、左下、右上和右下格子代表的特征向量元素加上B*ik,对于安卓页面布局划分之后处在页面边缘的第k格只考虑其九宫格范围内实际存在的格子,其中A、B是预设的系数;
步骤五、将Ia和Ib首尾相连合并成一个一维向量I=(i1,i2...im*n,im*n+1,...im*n*2),即布局划分特征向量;
所述布局划分特征向量的相似度计算如下:
两个布局Lp,Lq之间的相似度则由两个布局划分特征向量Ip,Iq的Dice系数的变体决定,计算公式如下:
Figure FDA0003118620720000021
其中N=m*n*2,表示特征向量长度,ipk表示特征向量Ip的第k个元素,iqk表示特征向量Iq的第k个元素,min函数表示取最小。
CN201810612813.4A 2018-06-14 2018-06-14 一种基于布局划分特征向量的安卓应用界面相似度比较方法 Active CN108898013B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810612813.4A CN108898013B (zh) 2018-06-14 2018-06-14 一种基于布局划分特征向量的安卓应用界面相似度比较方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810612813.4A CN108898013B (zh) 2018-06-14 2018-06-14 一种基于布局划分特征向量的安卓应用界面相似度比较方法

Publications (2)

Publication Number Publication Date
CN108898013A CN108898013A (zh) 2018-11-27
CN108898013B true CN108898013B (zh) 2021-09-28

Family

ID=64344997

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810612813.4A Active CN108898013B (zh) 2018-06-14 2018-06-14 一种基于布局划分特征向量的安卓应用界面相似度比较方法

Country Status (1)

Country Link
CN (1) CN108898013B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684005B (zh) * 2018-12-11 2021-08-24 浙江口碑网络技术有限公司 图形界面中组件相似度确定方法及装置
CN109815699B (zh) * 2018-12-24 2023-06-20 南京大学 一种基于界面图标特征的安卓软件重打包检测方法
CN112487437B (zh) * 2020-11-17 2023-04-18 北京航空航天大学 一种基于用户界面特征的安卓仿冒应用检测方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107169323B (zh) * 2017-05-11 2020-09-15 南京大学 一种基于布局簇图的安卓应用重打包检测方法
CN107315680B (zh) * 2017-05-26 2020-11-03 北京航空航天大学 Hybrid移动应用用户界面的检测方法及系统
CN108108618B (zh) * 2017-12-28 2021-05-25 中国信息通信研究院 伪造攻击的应用界面检测方法及装置

Also Published As

Publication number Publication date
CN108898013A (zh) 2018-11-27

Similar Documents

Publication Publication Date Title
CN108898013B (zh) 一种基于布局划分特征向量的安卓应用界面相似度比较方法
CN107169323B (zh) 一种基于布局簇图的安卓应用重打包检测方法
Ying et al. An intrinsic algorithm for parallel poisson disk sampling on arbitrary surfaces
Brodie et al. Index formulae for line bundle cohomology on complex surfaces
CN110298164A (zh) 验证码处理方法及装置
Ko et al. COAT: Code obfuscation tool to evaluate the performance of code plagiarism detection tools
CN113516077A (zh) 地表环境变化监测方法、装置、可读存储介质和设备
CN103280152A (zh) 一种基于经纬度坐标转化码的楼宇建筑编码方法
CN109241706B (zh) 基于静态胎记的软件抄袭检测方法
EP2890041A1 (en) Space division method, space division device, and space division program
CN114124564B (zh) 一种仿冒网站检测方法、装置、电子设备及存储介质
CN114116948B (zh) 地理矢量数据空间缓冲区分析方法、装置、设备及介质
Wang et al. An effective algorithm for lines and polygons overlay analysis using uniform spatial grid indexing
CN111382299A (zh) 加快图像检索的方法、装置、计算机设备和存储介质
KR101975404B1 (ko) 절차적 콘텐츠 생성장치 및 방법
EP3696704A1 (en) Pseudo-data generating device, method and program
CN113452503A (zh) 一种基于区块链的私钥找回方法、设备及介质
Goodrich et al. Graph drawing in the cloud: Privately visualizing relational data using small working storage
Li et al. APT malicious sample organization traceability based on text transformer model
Zope-Chaudhari et al. Evaluation of spatial relations in watermarked geospatial data
CN117351368B (zh) 自然村边界的获取方法、装置、电子设备及存储介质
Kettner et al. One sided error predicates in geometric computing
KR102157764B1 (ko) 히스토그램을 이용한 CityGML 파일 워터마킹 방법, 워터마크 추출 방법 및 워터마킹 시스템
CN111694911B (zh) 一种在指定范围内生成随机分布点的方法、设备和系统
US10754879B2 (en) Signal identification

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant