CN107169323A - 一种基于布局簇图的安卓应用重打包检测方法 - Google Patents
一种基于布局簇图的安卓应用重打包检测方法 Download PDFInfo
- Publication number
- CN107169323A CN107169323A CN201710328770.2A CN201710328770A CN107169323A CN 107169323 A CN107169323 A CN 107169323A CN 201710328770 A CN201710328770 A CN 201710328770A CN 107169323 A CN107169323 A CN 107169323A
- Authority
- CN
- China
- Prior art keywords
- msub
- layout
- cluster
- mrow
- weight
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000007689 inspection Methods 0.000 title claims abstract description 20
- 239000013598 vector Substances 0.000 claims description 12
- 230000002452 interceptive effect Effects 0.000 claims description 11
- 238000012546 transfer Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 7
- 238000010009 beating Methods 0.000 claims description 6
- 239000004744 fabric Substances 0.000 claims description 6
- 238000010606 normalization Methods 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000013499 data model Methods 0.000 claims description 4
- 230000001960 triggered effect Effects 0.000 claims description 3
- 230000000007 visual effect Effects 0.000 claims description 3
- 238000000205 computational method Methods 0.000 claims 1
- 108700041286 delta Proteins 0.000 claims 1
- 238000001514 detection method Methods 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000011524 similarity measure Methods 0.000 description 3
- 206010004950 Birth mark Diseases 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 241000406668 Loxodonta cyclotis Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种基于布局簇图的安卓软件重打包检测方法,其特征在于,包括以下步骤:1.1、动态执行安卓应用,收集用户界面信息,包括安卓应用运行时的布局、用户触发交互行为后的布局的变化与跳转;1.2、通过获得的应用布局所包含的用户界面信息构造布局簇图,并将布局簇图作为应用的软件胎记;1.3、通过比较布局簇图的相似度来判断应用之间是否重打包。本发明的软件重打包检测方法提供了动态执行安卓应用的策略,提高了对代码混淆与加这两类反检测方式的抵抗性,提高了安卓应用重打包检测的精确性。
Description
技术领域
本发明专利涉及软件应用,软件胎记,重打包检测以及应用模糊算法领域,尤其涉及一种基于布局簇图的安卓应用重打包检测方法。
背景技术
近年来,随着移动设备的普及,基于移动设备的安卓应用数量不断增加。然而,通过已有的逆向工程工具,安卓应用可以被修改、重新打包并发布。攻击者利用安卓应用的流行性,向应用中插装广告、恶意程序来达到一些非法的目的。一些非官方的或者第三方的应用市场更是助长了这一现象。对这类安卓应用重打包的常见的检测思路就是生成应用的软件胎记,然后通过比较软件胎记来计算应用之间的相似程度。按照生成软件胎记的方式划分,可分为静态生成和动态生成。但是,攻击者们为了防止重打包的应用被识别出来,会对应用进行反检测处理,例如代码混淆或者软件加密。静态生成的软件胎记并不能很有效的抵抗一些代码混淆的攻击;而当安卓应用被加密之后,静态方法几乎难以产生效果。现有的动态生成软件胎记方式仍有不足,对代码的等价语义变换同样会影响这些胎记的效果。
发明内容
本发明主要针对上述不足,提出了一种基于布局簇图的安卓应用重打包检测方法。
该方法基于以下现实:攻击者在重打包应用时,为了利用原应用的流行性,总是使得重打包后的应用保持相似的界面与行为。因此,我们提出了布局簇图,一个用于描述安卓应用用户界面和行为的数据结构,并将此作为安卓应用的软件胎记用于判断安卓应用是否重打包。
本发明具体提供的功能包括:
1)自动化地执行并遍历安卓应用;
2)收集安卓应用用户界面信息;
3)反馈安卓应用界面之间的相似度;
4)反馈安卓应用的软件胎记;
5)提供安卓应用之间的相似度;
6)检测安卓应用是否重打包。
本发明的技术方案为:基于布局簇图的安卓应用重打包检测方法,主要过程包括:
1.1 动态执行安卓应用,收集用户界面信息,包括安卓应用运行时的布局、用户触发交互行为后的布局的变化与跳转;
1.2 通过获得的应用布局所包含的用户界面信息构造布局簇图,并将布局簇图作为应用的软件胎记;
1.3 通过比较布局簇图的相似度来判断应用之间是否重打包。
安卓应用的布局是指安卓应用运行时刻呈现给用户的界面的结构信息,由一系列的View Group以及View所构成。该视觉结构是安卓应用开发者设计出并用于用户交互的应用界面,会随着应用运行状态的不同而改变。
交互行为S包括点击、长按、左右滑动、上下滑动、菜单、返回、主桌面。
基于布局簇图的安卓应用重打包检测方法,其描述安卓应用运行时用户界面信息的数据模型布局簇图特征在于:
数据模型布局簇图是一个有向图,G=(C,E,A,α)。其中,C表示一簇相似的布局,E表示簇的转移,A为交互行为集合,α为E到A的映射;
G的节点c∈C,表示一簇相似的布局,即当用户布局之间的相似度大于一个阈值时,这些用户布局将会被划分到同一个的簇中,该簇被作为图的一个节点;图的边e=c1→c2表示簇c1到c2的转移,即当用户对布局l1上的控件进行一次交互行为a=α(e)之后,l1会跳转到布局l2,其中l1∈c1,l2∈c2,a∈A,A为交互行为集合,α为E到A的映射,通过该映射,我们可以得到任意一次转移所触发的行为。
构建布局簇图过程中,布局之间的相似度、布局簇之间的相似度、边的相似度的计算方法包含以下步骤:
3.1 首先获取布局的视图层次树;
3.2 然后将视图层次树以宽度优先遍历的顺序、以视图类名为元素展开为一维向量;
3.3 以视图类名为单位,计算向量之间的编辑距离;
3.4 归一化编辑距离,并将归一化后的值作为对应的用户界面之间的相似度。所述归一化编辑距离是指:设待比较的2个布局l1,l2,其节点个数分别为N1,N2,生成对应的2个一维向量v1,v2,它们的编辑距离为D(v1,v2),那么最后得到的归一化编辑距离为:
3.5 布局簇c1,c2之间的相似度则由两个簇中相似度最大的一对布局决定,计算公式如下:
3.6 边e1=c1→c2,e2=c3→c4,e1,e2的相似度为两个边上对应的节点(起点对起点,终点对终点)的相似度的均值,其计算公式如下:
动态执行安卓应用并构造布局簇图的过程的特征在于一个启发式循环算法,包括以下步骤:
2.1 对布局中的每一个可交互控件赋予一个权重,称为控件权重;对每一个控件的每一个可交互行为赋予一个权重,称为行为权重。2.2在构造布局簇图时,不断更新这两类权重,并根据更新后的权重随机选取交互控件与行为,即权重越大,对应的控件或者行为被选择的可能性也越高;2.3在所选控件上执行所选行为,更新布局簇图;2.4当循环计数达到设定的阈值,跳出循环,输出布局簇图。
所述的启发式循环算法具体特征为:
在循环开始前,可交互的行为集合A由用户指定,所有的控件权重和行为权重都初始化为一个相同的值:10,并初始化一个空的布局簇图。
进入主循环后:首先需要获取当前的布局l以及该布局所属的布局簇c。由于每次获取的布局都是从当前的原始布局数据得到的新实例,所以该布局l当中的权重信息全是初始值。为了获取当前布局l的正确权重,需要在布局簇图中查找与l最相似的布局lm,如果两者相似度大于一个阈值,那么lm的权重就会被复制给l,且lm所属的簇即为c;否则l为一个未曾遍历的布局,其中的权重为初始值是正确的,并且还需要生成一个新的图的节点,即一个新的布局簇,作为l的所属簇cn。应用启动后的首个布局记为ls,所属簇为cs。
获取到当前布局后,判断当前布局所属簇与cs在布局簇图中的距离k(即图中节点的距离)。如果k小于一个阈值δk,则根据当前布局中各个控件的控件权重,带权重的随机挑选一个可交互控件:当控件权重越高,对应控件被选择概率也就越大,反之则相反;根据挑选的控件中的行为权重,用同样的方式带权重的随机挑选一个可交互行为。每次的挑选列表除了包含布局中本身就存在的各个控件,还添加了3个特殊的控件,包括:返回按钮,菜单按钮和主桌面按钮,这三个控件各自的可交互行为即为交互行为中的返回、菜单、主桌面。如果k大于δk,则挑选的交互控件被指定为:返回按钮,挑选的可交互行为被指定为:返回。
当在挑选的控件执行完挑选的行为后,将执行后的布局簇(即节点)以及本次布局转移(即边)添加到布局簇图中。如果布局簇图有变化,即图的节点数或边数有变化,那么当前选择的节点的权重和行为的权重会增加,增加的值为1+wa,其中,wa跳转后的布局中控件权重的平均值;反之减少1。
循环会有一个计数器用于终止循环。当每次执行完行为后,如果布局簇图有变化,则该计数器清零;反之则增加1。当计数值达到一个阈值δc时,循环跳出,算法结束。
步骤1.3的特征在于一个布局簇图相似度计算方法,当一对布局簇图之间的相似度大于阈值δl时,对应的两个应用被判断为重打包。
上述的重打包检测方法中,布局簇图相似度计算方法是指:将一对布局簇图转化为一个二部图,通过计算二部图带权最大匹配值得到布局簇图之间的相似度。
所述布局簇图转为二部图的特征为:设2个布局簇图G1和G2,二部图的节点集由2个不相交的节点集V1和V2组成,V1和V2分别对应G1与G2的边G1.E与G2.E,也就是说原布局簇图的边对应二部图的节点;二部图的边集为V1×V2,即该二部图为完全图;二部图边上含有权值,权值为二部图边所连接的2个节点相似度Sime(e1,e2),其中e1,e2为二部图节点对应原布局簇图的边。二部图转化完成后,计算带权重的二部图最大匹配,得到在最大匹配情况下权值和M。最后将权值和归一化后的值作为原图的相似度,设N1和N2分别代表G1与G2的节点个数,图相似度计算公式如下:
本发明与现有技术相比,其显著优点在于:现有技术难以对被加密了的应用进行有效的检测,使得重打包检测的对象受到很大的限制。而本发明则提供了动态执行安卓应用的策略,提高了对代码混淆与加密这两类反检测方式的抵抗性,降低了对重打包检测对象的限制要求,提高了安卓应用重打包检测的精确性。
附图说明
图1为本发明实施例的基于布局簇图的安卓应用重打包检测方法的系统框图。
图2为本发明实施例的实现框架图。
图3为本发明实施例的布局转为对应一维向量示例图。
图4为本发明实施例的图生成算法流程图。
图5为本发明实施例的图相似度计算流程图。
具体实施方式
下面结合本发明实例中的附图,对本发明实施例中的技术方案进行清楚、完整地的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
1.主要过程
图1所示为本发明提供的一种基于布局簇图的安卓应用重打包检测方法的系统框图,图1中:
对于待比较的两个安卓应用,我们分别动态执行这两个应用,收集应用运行时的用户界面信息,包括安卓应用运行时的布局、用户触发交互行为后的布局的变化与跳转。然后通过图生成器,将应用布局所包含的用户界面信息转化为布局簇图,该图将作为应用的软件胎记。最后,计算两个安卓应用对应的布局簇图的相似度,用于确定应用是否重打包。
图2所示为本发明基于上述系统的一个实现框架图,主要由三个部分组成:安卓系统端、中间代理端和策略执行端。安卓系统端负责在安卓设备上的行为执行和数据获取,行为执行包括安装/卸载应用、启动/结束应用、对当前应用的交互行为(点击、长按、左右滑动、上下滑动、菜单、返回、主桌面),数据获取包括获取系统会话堆栈、系统窗口堆栈、当前布局层次、系统日志;策略执行端负责生成布局簇图,具体的生成策略参见图4:图生成算法;中间代理端负责为策略执行端和安卓系统端提供数据交互,该部分通过Socket与安卓系统端连接,向安卓系统端发送和接受命令与数据,接受到的数据传递给策略执行端供其进行策略执行。
2.布局簇图
安卓应用的布局是指安卓应用运行时刻呈现给用户的界面的结构信息,由一系列的View Group以及View所构成。该视觉结构是安卓应用开发者设计出并用于用户交互的应用界面,会随着应用运行状态的不同而改变。
所述交互行为包括点击、长按、左右滑动、上下滑动、菜单、返回、主桌面
所述的布局簇图是一个有向图,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的映射,通过该映射,我们可以得到任意一次转移所触发的行为。
3.布局相似度算法
本发明所述的布局相似度算法可用于计算安卓应用的布局相似程度,无论该布局是静态布局XML文件中的还是运行时动态获取的布局XML数据。我们获取到的布局都是XML格式,其数据结构可被看作为一棵树,整棵树代表该布局层次,树的节点代表布局中对应的控件。我们将这棵树以宽度优先遍历的顺序展开为一个向量,向量中的元素为树节点中的控件类名。以视图类名为单位,计算向量之间的编辑距离。设待比较的2个布局l1,l2,其节点个数分别为N1,N2,我们生成了对应的2个一维向量v1,v2,它们的编辑距离为D(v1,v2),那么最后得到的归一化编辑距离为:
以图3为例,图中展示了2个布局l1,l2转为对应一维向量的结果,根据上述定义,图中的2个一维向量之间的编辑距离D(v1,v2)为1,最后得到相似度为
布局簇c1,c2之间的相似度则由两个簇中相似度最大的布局决定,计算公式如下:
边e1=c1→c2,e2=c3→c4,e1,e2的相似度为两个边上对应的节点(起点对起点,终点对终点)的相似度的均值,其计算公式如下:
4.图生成算法
本发明所述的图生成算法流程图如图4所示。该算法为一个启发式的界面遍历策略,其总体思想为:对布局中的每一个可交互控件赋予一个权重,称为控件权重;对每一个控件的每一个可交互行为赋予一个权重,称为行为权重。在构造布局簇图时,不断更新这两类权重,并根据更新后的权重随机选取交互控件与行为,即权重越大,对应的控件或者行为被选择的可能性也越高。
所述的启发式循环算法具体特征为:
在循环开始前,所有的控件权重和行为权重都初始化为一个相同的值:10,并初始化一个空的布局簇图。
进入主循环后:首先需要获取当前的布局l以及该布局所属的布局簇c。由于每次获取的布局都是从当前的原始布局数据得到的新实例,所以该布局l当中的权重信息全是初始值。为了获取当前布局l的正确权重,我们需要在布局簇图中查找与l最相似的布局lm,如果两者相似度大于一个阈值,那么lm的权重就会被复制给l,且lm所属的簇即为c;否则l为一个未曾遍历的布局,其中的权重为初始值是正确的,并且还需要生成一个新的图的节点,即一个新的布局簇,作为l的所属簇cn。
获取到当前布局后,根据当前布局中各个控件的控件权重,我们带权重的随机挑选一个可交互控件:当控件权重越高,对应控件被选择概率也就越大,反之则相反;根据挑选的控件中的行为权重,我们用同样的方式带权重的随机挑选一个可交互行为。每次的挑选列表除了包含布局中本身就存在的各个控件,我们还添加了3个特殊的控件,包括:返回按钮,菜单按钮和主桌面按钮,这三个控件各自的可交互行为是所述的交互行为中的返回、菜单、主桌面。当在挑选的控件执行完挑选的行为后,我们会将执行后的布局簇(即节点)以及本次布局转移(即边)添加到布局簇图中。如果布局簇图有变化,即图的节点数或边数有变化,那么当前选择的节点的权重和行为的权重会增加,增加的值为1+wa,其中,wa跳转后的布局中控件权重的平均值;反之减少1。
循环会有一个计数器用于终止循环。当每次执行完一次行为后,如果布局簇图有变化,则该计数器清零;反之则增加1。当计数值达到一个阈值δc时,循环跳出,算法结束。
5.图相似度计算
本发明所述的图相似度计算如图5流程图所示。我们首先将布局簇图转化为一个二部图。设2个布局簇图G1和G2,二部图的节点集由2个不相交的节点集V1和V2组成,V1和V2分别对应G1与G2的边G1.E与G2.E,也就是说原布局簇图的边对应二部图的节点;二部图的边集为V1×V2,即该二部图为完全图;二部图边上含有权值,权值为二部图边所连接的2个节点相似度Sime(e1,e2),其中e1,e2为二部图节点对应原布局簇图的边。二部图转化完成后,我们通过Kuhn-Munkres算法计算带权重的二部图最大匹配,得到在最大匹配情况下权值和为M。最后将M归一化后的值作为原图的相似度,设N1和N2分别代表G1与G2的节点个数,图相似度计算公式如下:
以上的实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。本发明未涉及的技术均可通过现有的技术加以实现。
Claims (10)
1.一种基于布局簇图的安卓软件重打包检测方法,包括一个描述安卓应用运行时用户界面信息的数据模型——布局簇图,其特征在于,包括以下步骤:
1.1、动态执行安卓应用,收集用户界面信息,包括安卓应用运行时的布局、用户触发交互行为后的布局的变化与跳转;
1.2、通过获得的应用布局所包含的用户界面信息构造布局簇图,并将布局簇图作为应用的软件胎记;
1.3、通过比较布局簇图的相似度来判断应用之间是否重打包。
2.根据权利要求1所述的重打包检测方法,其特征在于,采用启发式循环算法动态执行安装应用并构造布局簇图,包括以下步骤:
2.1对布局中的每一个可交互控件赋予一个权重,称为控件权重;对每一个控件的每一个可交互行为赋予一个权重,称为行为权重;可交互行为的范围能够由用户指定;
2.2在构造布局簇图时,不断更新控件权重及行为权重,并根据更新后的权重随机选取交互控件与行为,权重越大,对应的控件或者行为被选择的可能性也越高;
2.3在所选控件上执行所选行为,更新布局簇图;
2.4当循环计数达到设定的阈值,跳出循环,输出布局簇图。
3.根据权利要求2所述的重打包检测方法,其特征在于,启发式循环算法具体包括:
在循环开始前,所有的控件权重和行为权重都初始化为一个相同的值,并初始化一个空的布局簇图;
进入主循环后:首先需要获取当前的布局l以及该布局所属的布局簇c;在布局簇图中查找与l最相似的布局lm,如果两者相似度大于一个阈值,则将lm的权重复制给l,且lm所属的簇即为c;否则l为一个未曾遍历的布局,其中的权重均为初始值,并且还需要生成一个新的图的节点,即一个新的布局簇,作为l的所属簇cn;应用启动后的首个布局记为ls,所属簇为cs;
获取到当前布局后,判断当前布局所属簇与cs在布局簇图中的距离k;如果k小于一个阈值δk,则根据当前布局中各个控件的控件权重,带权重的随机挑选一个可交互控件;根据挑选的控件中的行为权重,带权重的随机挑选一个可交互行为;
如果k大于δk,则挑选的交互控件被指定为:返回按钮,挑选的可交互行为被指定为:返回;
当在挑选的控件执行完挑选的行为后,将执行后的布局簇,即节点,以及本次布局转移,即边,添加到布局簇图中;如果布局簇图有变化,即图的节点数或边数有变化,那么当前选择的节点的权重和行为的权重会增加,反之减少;
当每次执行完行为后,如果布局簇图有变化,则计数器清零;反之则增加1;当计数值达到一个阈值δc时,循环跳出,算法结束。
4.根据权利要求3所述的重打包检测方法,其特征在于:如果布局簇图有变化,那么当前选择的节点的权重和行为的权重会增加,增加的值为1+wa,其中,wa为跳转后的布局中控件权重的平均值;反之减少1。
5.根据权利要求2或3所述的重打包检测方法,其特征在于:构建布局簇图过程中,布局之间的相似度、布局簇之间的相似度、边的相似度的计算方法包含以下步骤:
3.1首先获取布局的视图层次树;
3.2然后将视图层次树以宽度优先遍历的顺序、以视图类名为元素展开为一维向量;
3.3以视图类名为单位,计算向量之间的编辑距离;
3.4归一化编辑距离,并将归一化后的值作为对应的用户界面之间的相似度;
3.5两个簇中相似度最大的一对布局决定布局簇c1,c2之间的相似度;
3.6两个边上对应的节点的相似度的均值为边e1,e2的相似度;e1=c1→c2,e2c3→c4。
6.根据权利要求5所述的重打包检测方法,其特征在于:
3.4中,所述归一化编辑距离是指:设待比较的2个布局l1,l2,其节点个数分别为N1,N2,我们生成了对应的2个一维向量v1,v2,它们的编辑距离为D(v1,v2),那么最后得到的归一化编辑距离为:
<mrow>
<mi>S</mi>
<mi>i</mi>
<mi>m</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>l</mi>
<mn>1</mn>
</msub>
<mo>,</mo>
<msub>
<mi>l</mi>
<mn>2</mn>
</msub>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mn>1</mn>
<mo>-</mo>
<mfrac>
<mrow>
<mi>D</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>v</mi>
<mn>1</mn>
</msub>
<mo>,</mo>
<msub>
<mi>v</mi>
<mn>2</mn>
</msub>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<mi>max</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>N</mi>
<mn>1</mn>
</msub>
<mo>,</mo>
<msub>
<mi>N</mi>
<mn>2</mn>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mfrac>
</mrow>
3.5中,布局簇c1,c2之间的相似度则由两个簇中相似度最大的一对布局决定,计算公式如下:
<mrow>
<msub>
<mi>Sim</mi>
<mi>S</mi>
</msub>
<mrow>
<mo>(</mo>
<msub>
<mi>c</mi>
<mn>1</mn>
</msub>
<mo>,</mo>
<msub>
<mi>c</mi>
<mn>2</mn>
</msub>
<mo>)</mo>
</mrow>
<mo>=</mo>
<munder>
<mrow>
<mi>m</mi>
<mi>a</mi>
<mi>x</mi>
</mrow>
<mrow>
<msub>
<mi>l</mi>
<mi>i</mi>
</msub>
<mo>&Element;</mo>
<msub>
<mi>c</mi>
<mn>1</mn>
</msub>
<mo>,</mo>
<msub>
<mi>l</mi>
<mi>j</mi>
</msub>
<mo>&Element;</mo>
<msub>
<mi>c</mi>
<mn>2</mn>
</msub>
</mrow>
</munder>
<mi>S</mi>
<mi>i</mi>
<mi>m</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>l</mi>
<mi>i</mi>
</msub>
<mo>,</mo>
<msub>
<mi>l</mi>
<mi>j</mi>
</msub>
<mo>)</mo>
</mrow>
</mrow>
3.6中,边e1=c1→c2,e2=c3→c4,e1,e2的相似度为两个边上对应的节点的相似度的均值,其计算公式如下:
<mrow>
<msub>
<mi>Sim</mi>
<mi>e</mi>
</msub>
<mrow>
<mo>(</mo>
<msub>
<mi>e</mi>
<mn>1</mn>
</msub>
<mo>,</mo>
<msub>
<mi>e</mi>
<mn>2</mn>
</msub>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mfrac>
<mrow>
<msub>
<mi>Sim</mi>
<mi>s</mi>
</msub>
<mrow>
<mo>(</mo>
<msub>
<mi>c</mi>
<mn>1</mn>
</msub>
<mo>,</mo>
<msub>
<mi>c</mi>
<mn>3</mn>
</msub>
<mo>)</mo>
</mrow>
<mo>+</mo>
<msub>
<mi>Sim</mi>
<mi>s</mi>
</msub>
<mrow>
<mo>(</mo>
<msub>
<mi>c</mi>
<mn>2</mn>
</msub>
<mo>,</mo>
<msub>
<mi>c</mi>
<mn>4</mn>
</msub>
<mo>)</mo>
</mrow>
</mrow>
<mn>2</mn>
</mfrac>
<mo>.</mo>
</mrow>
7.根据权利要求1所述的重打包检测方法,其特征在于,布局簇图相似度计算方法为:将一对布局簇图转化为一个二部图,通过计算二部图带权最大匹配值得到布局簇图之间的相似度。
8.根据权利要求7所述的重打包检测方法,其特征在于:
布局簇图转为二部图的特征为:设2个布局簇图G1和G2,二部图的节点集由2个不相交的节点集V1和V2组成,V1和V2分别对应G1与G2的边G1.E与G2.E,也就是说原布局簇图的边对应二部图的节点;二部图的边集为V1×V2,即该二部图为完全图;二部图边上含有权值,权值为二部图边所连接的2个节点相似度Sime(e1,e2),其中e1,e2为二部图节点对应原布局簇图的边;二部图转化完成后,计算带权重的二部图最大匹配,得到在最大匹配情况下权值和M。最后将权值和归一化后的值作为原图的相似度,设N1和N2分别代表G1与G2的节点个数,图相似度计算公式如下:
<mrow>
<msub>
<mi>Sim</mi>
<mi>g</mi>
</msub>
<mrow>
<mo>(</mo>
<msub>
<mi>G</mi>
<mn>1</mn>
</msub>
<mo>,</mo>
<msub>
<mi>G</mi>
<mn>2</mn>
</msub>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mfrac>
<mi>M</mi>
<mrow>
<mi>min</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>N</mi>
<mn>1</mn>
</msub>
<mo>,</mo>
<msub>
<mi>N</mi>
<mn>2</mn>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mfrac>
<mo>.</mo>
</mrow>
9.根据权利要求1或7所述的重打包检测方法,其特征在于:当一对布局簇图之间的相似度大于阈值δ1时,对应的两个应用被判断为重打包。
10.根据权利要求1所述的重打包检测方法,其特征在于:所述安卓应用运行时的布局是指安卓应用运行时刻呈现给用户的界面的结构信息,由一系列的View Group以及View所构成,该视觉结构是用于用户交互的应用界面,会随着应用运行状态的不同而改变;
所述交互行为包括点击、长按、左右滑动、上下滑动、菜单、返回、主桌面;
所述数据模型——布局簇图是一个有向图,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的映射,通过该映射,能够得到任意一次转移所触发的行为。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710328770.2A CN107169323B (zh) | 2017-05-11 | 2017-05-11 | 一种基于布局簇图的安卓应用重打包检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710328770.2A CN107169323B (zh) | 2017-05-11 | 2017-05-11 | 一种基于布局簇图的安卓应用重打包检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107169323A true CN107169323A (zh) | 2017-09-15 |
CN107169323B CN107169323B (zh) | 2020-09-15 |
Family
ID=59816551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710328770.2A Active CN107169323B (zh) | 2017-05-11 | 2017-05-11 | 一种基于布局簇图的安卓应用重打包检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107169323B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108197183A (zh) * | 2017-12-25 | 2018-06-22 | 中山大学 | 一种基于安卓应用的控件布局推荐方法及其系统 |
CN108667806A (zh) * | 2018-04-08 | 2018-10-16 | 南京邮电大学 | Android重打包恶意应用检测方法、可读存储介质和终端 |
CN108898013A (zh) * | 2018-06-14 | 2018-11-27 | 南京大学 | 一种基于布局划分特征向量的安卓应用界面相似度比较方法 |
CN109190370A (zh) * | 2018-07-02 | 2019-01-11 | 南京大学 | 一种基于控件区域分布特征的安卓界面相似度计算方法 |
CN109815699A (zh) * | 2018-12-24 | 2019-05-28 | 南京大学 | 一种基于界面图标特征的安卓软件重打包检测方法 |
CN109858249A (zh) * | 2019-02-18 | 2019-06-07 | 暨南大学 | 移动恶意软件大数据的快速智能比对和安全检测方法 |
CN109933976A (zh) * | 2017-12-15 | 2019-06-25 | 深圳Tcl工业研究院有限公司 | 一种安卓应用相似性检测方法、移动终端及存储装置 |
CN110175045A (zh) * | 2019-05-20 | 2019-08-27 | 北京邮电大学 | 安卓应用程序重打包数据处理方法及装置 |
CN110502876A (zh) * | 2019-08-07 | 2019-11-26 | 南京大学 | 一种基于资源文件的安卓界面静态混淆方法 |
CN110516445A (zh) * | 2019-08-07 | 2019-11-29 | 南方电网科学研究院有限责任公司 | 反检测恶意代码的识别方法、装置及存储介质 |
CN111273905A (zh) * | 2020-01-17 | 2020-06-12 | 南京大学 | 基于界面草图的应用检索方法和装置 |
CN111898126A (zh) * | 2020-06-09 | 2020-11-06 | 东南大学 | 一种基于动态获取用户界面的Android重打包应用检测方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679519A (zh) * | 2015-03-10 | 2015-06-03 | 于秀山 | 图形用户界面软件功能获取方法及装置 |
US20170054595A1 (en) * | 2015-08-21 | 2017-02-23 | Huawei Technologies Co., Ltd. | Method and Apparatus for Network Slicing |
-
2017
- 2017-05-11 CN CN201710328770.2A patent/CN107169323B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679519A (zh) * | 2015-03-10 | 2015-06-03 | 于秀山 | 图形用户界面软件功能获取方法及装置 |
US20170054595A1 (en) * | 2015-08-21 | 2017-02-23 | Huawei Technologies Co., Ltd. | Method and Apparatus for Network Slicing |
Non-Patent Citations (1)
Title |
---|
杨翠霞: "面向Android图形界面的逆向工程及其安全应用", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933976A (zh) * | 2017-12-15 | 2019-06-25 | 深圳Tcl工业研究院有限公司 | 一种安卓应用相似性检测方法、移动终端及存储装置 |
CN109933976B (zh) * | 2017-12-15 | 2023-05-09 | 深圳Tcl工业研究院有限公司 | 一种安卓应用相似性检测方法、移动终端及存储装置 |
CN108197183B (zh) * | 2017-12-25 | 2021-09-17 | 中山大学 | 一种基于安卓应用的控件布局推荐方法及其系统 |
CN108197183A (zh) * | 2017-12-25 | 2018-06-22 | 中山大学 | 一种基于安卓应用的控件布局推荐方法及其系统 |
CN108667806A (zh) * | 2018-04-08 | 2018-10-16 | 南京邮电大学 | Android重打包恶意应用检测方法、可读存储介质和终端 |
CN108898013A (zh) * | 2018-06-14 | 2018-11-27 | 南京大学 | 一种基于布局划分特征向量的安卓应用界面相似度比较方法 |
CN109190370A (zh) * | 2018-07-02 | 2019-01-11 | 南京大学 | 一种基于控件区域分布特征的安卓界面相似度计算方法 |
CN109190370B (zh) * | 2018-07-02 | 2022-02-08 | 南京大学 | 一种基于控件区域分布特征的安卓界面相似度计算方法 |
CN109815699B (zh) * | 2018-12-24 | 2023-06-20 | 南京大学 | 一种基于界面图标特征的安卓软件重打包检测方法 |
CN109815699A (zh) * | 2018-12-24 | 2019-05-28 | 南京大学 | 一种基于界面图标特征的安卓软件重打包检测方法 |
CN109858249A (zh) * | 2019-02-18 | 2019-06-07 | 暨南大学 | 移动恶意软件大数据的快速智能比对和安全检测方法 |
CN109858249B (zh) * | 2019-02-18 | 2020-08-07 | 暨南大学 | 移动恶意软件大数据的快速智能比对和安全检测方法 |
CN110175045A (zh) * | 2019-05-20 | 2019-08-27 | 北京邮电大学 | 安卓应用程序重打包数据处理方法及装置 |
CN110502876A (zh) * | 2019-08-07 | 2019-11-26 | 南京大学 | 一种基于资源文件的安卓界面静态混淆方法 |
CN110502876B (zh) * | 2019-08-07 | 2021-04-27 | 南京大学 | 一种基于资源文件的安卓界面静态混淆方法 |
CN110516445A (zh) * | 2019-08-07 | 2019-11-29 | 南方电网科学研究院有限责任公司 | 反检测恶意代码的识别方法、装置及存储介质 |
CN111273905B (zh) * | 2020-01-17 | 2023-04-18 | 南京大学 | 基于界面草图的应用检索方法和装置 |
CN111273905A (zh) * | 2020-01-17 | 2020-06-12 | 南京大学 | 基于界面草图的应用检索方法和装置 |
CN111898126A (zh) * | 2020-06-09 | 2020-11-06 | 东南大学 | 一种基于动态获取用户界面的Android重打包应用检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107169323B (zh) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107169323A (zh) | 一种基于布局簇图的安卓应用重打包检测方法 | |
Thathachar et al. | Learning automata with changing number of actions | |
Rodriguez et al. | An artificial bee colony algorithm for the maximally diverse grouping problem | |
CN105101093B (zh) | 一种关于地理位置信息的网络拓扑可视化方法 | |
CN103942308B (zh) | 大规模社交网络社区的检测方法及装置 | |
Caldas et al. | Federated kernelized multi-task learning | |
CN107391542A (zh) | 一种基于文件知识图谱的开源软件社区专家推荐方法 | |
CN109308438A (zh) | 动作识别库的建立方法、电子设备、存储介质 | |
Das Sarma et al. | Efficient distributed random walks with applications | |
CN105938608A (zh) | 一种基于标签影响力的半同步社区发现方法 | |
Bampas et al. | Euler tour lock-in problem in the rotor-router model: I choose pointers and you choose port numbers | |
Muelder et al. | A treemap based method for rapid layout of large graphs | |
Basilico et al. | Coordinating multiple defensive resources in patrolling games with alarm systems | |
Lamani et al. | Optimal deterministic ring exploration with oblivious asynchronous robots | |
Ghesmoune et al. | G-stream: Growing neural gas over data stream | |
CN108898013A (zh) | 一种基于布局划分特征向量的安卓应用界面相似度比较方法 | |
Fomicheva | Soft quantization of the production's knowledgebases for multi-agent systems | |
Galton | Modes of overlap | |
Mitzenmacher et al. | Better bounds for coalescing-branching random walks | |
CN110674451B (zh) | 事件过程多设备同时投切决策的混合整数规划计算方法 | |
Elouasbi et al. | Deterministic rendezvous with detection using beeps | |
Baswana et al. | Incremental DFS algorithms: a theoretical and experimental study | |
Viola | Extractors for Turing-machine sources | |
Breve | Active semi-supervised learning using particle competition and cooperation in networks | |
Mirshahvalad et al. | Dynamics of interacting information waves in networks |
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 |