仿冒应用检测方法以及系统与流程

文档序号:11774844阅读:1353来源:国知局
仿冒应用检测方法以及系统与流程

本发明涉及移动终端技术领域,尤其是涉及一种仿冒应用检测方法以及系统。



背景技术:

在仿冒应用中,最明显的现象便是在多个应用商城或同一个商城出现多个相同或相似的应用,而开发者或团队却不相同。仿冒应用无疑侵害了应用最初开发者的权益并会造成严重的经济损失,更为严重的是会有不法分子将恶意代码写入应用并通过仿冒某些知名应用吸引用户进行下载,进而传播恶意程序。

目前,安卓仿冒应用方式可分为两种,一种是功能上的抄袭,抄袭者通过解析应用源码对应用的核心功能进行复制。另一种是界面外观上的抄袭,通过对原应用的界面内容进行复制或仿冒,界面内容包括应用界面控件(如按钮,窗格等)及界面的布局架构。由于移动设备端屏幕比pc端小,用户的体验要求更高,用户通常会根据应用的外观判断是否下载,优秀的ui设计和人性化的交互结构直接影响了应用的下载量,这也成为复制者进行仿造的直接原因。此外,相较于仿冒功能,对界面的仿冒更为简单,除了获取原应用的资源文件外,亦可以通过直接对应用界面截屏后进行盗版制作。

但是,通过外观与功能方面检测仿冒应用的方法比较主观,检测结果的精确度不高,目前无法脱离外观与功能方面,通过更客观的方法检测仿冒应用。



技术实现要素:

有鉴于此,本发明的目的在于提供一种仿冒应用检测方法以及系统,以解决现有技术中存在的目前无法脱离外观与功能方面,通过更客观的方法检测仿冒应用的技术问题。

第一方面,本发明实施例提供了一种仿冒应用检测方法,包括:

获取应用的文本信息;

通过分词器对所述文本信息进行分词,获得词库;

将所述词库中的词与所述文本信息进行匹配,获得向量;

通过分类器对所述向量进行聚类,获得相似应用的集合;

通过自动化测试工具将原版应用与所述集合中的相似应用进行动态运行,获得应用界面的控件信息;

根据所述控件信息获得综合特征向量;

将原版应用的综合特征向量与相似应用的综合特征向量进行相似度计算,获得仿冒应用检测结果。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述通过分词器对所述文本信息进行分词,获得词库,具体包括:

通过分词器对所述文本信息进行分词,获得分词结果;

删除所述分词结果中的停用词,提取所述分词结果中的名词,获得词库。

结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述将所述词库中的词与所述文本信息进行匹配,获得向量,具体包括:

将所述词库中的词与所述文本信息中的软件描述文字进行匹配,获得向量;

所述向量的值为所述词库对应位置上的词在所述软件描述文字中出现的次数。

结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述通过分类器对所述向量进行聚类,获得相似应用的集合,具体包括:

将所有应用的所述向量送入硬聚类算法分类器中进行聚类,形成多个簇,所述簇为相似应用的集合。

结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述通过自动化测试工具将原版应用与所述集合中的相似应用进行动态运行之前,还包括:

根据开发者信息、用户评论信息、点击量、下载量中至少一种信息,确定所述相似应用的原版应用。

结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述通过自动化测试工具将原版应用与所述集合中的相似应用进行动态运行,获得应用界面的控件信息,具体包括:

对自动化测试工具中的运行次数、控件遍历方式进行定制,获得测试规则;

将原版应用与所述集合中的相似应用送入自动化测试工具中,根据所述测试规则进行动态运行;

在动态运行过程中,安卓自动化测试工具通过adb命令启动应用进入界面,获取应用的界面状态信息;

通过对所述界面状态信息进行控件提取、解析与收集,获得界面的控件列表;

根据所述控件列表获得应用界面的控件信息。

结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述测试规则包括:

先遍历按钮控件与提示框控件,再搜索其他控件。

结合第一方面,本发明实施例提供了第一方面的第七种可能的实施方式,其中,所述根据所述控件信息获得综合特征向量,具体包括:

对所述控件信息中的节点内容进行编码,获得一维序列;

将所述一维序列转化为一维向量,作为应用界面的结构特征向量;

通过符号对所述控件信息进行分词处理与匹配,获得应用界面的语义特征向量;

结合所述结构特征向量与所述语义特征向量,形成应用界面的综合特征向量。

结合第一方面,本发明实施例提供了第一方面的第八种可能的实施方式,其中,所述将原版应用的综合特征向量与相似应用的综合特征向量进行相似度计算,获得仿冒应用检测结果,具体包括:

将原版应用中所有应用界面的所述综合特征向量与相似应用中所有应用界面的所述综合特征向量进行向量距离计算,获得向量距离;

根据所述向量距离确定相似度;

如果所述相似度小于预设值的应用界面个数,大于预设个数,则确定为仿冒应用。

第二方面,本发明实施例还提供一种仿冒应用检测系统,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的方法的步骤。

本发明实施例提供的技术方案带来了以下有益效果:本发明实施例提供的仿冒应用检测方法以及系统中,仿冒应用检测方法包括:首先,获取应用的文本信息,通过分词器对所述文本信息进行分词从而获得词库,然后,将所述词库中的词与所述文本信息进行匹配从而获得向量,通过分类器对所述向量进行聚类从而获得相似应用的集合,之后通过自动化测试工具将原版应用与所述集合中的相似应用进行动态运行,获得应用界面的控件信息,之后根据所述控件信息获得综合特征向量,最后,将原版应用的综合特征向量与相似应用的综合特征向量进行相似度计算,从而获得仿冒应用检测结果,通过对应用的文本信息进行分词、匹配,对获得的向量进行聚类,再对原版应用与获得的相似应用进行动态运行,对获得的二者综合特征向量进行相似度计算,最终获得仿冒应用检测结果,实现了根据应用的文本信息进行仿冒应用的检测,使检测结果更加客观,从而解决了现有技术中存在的目前无法脱离外观与功能方面,通过更客观的方法检测仿冒应用的技术问题。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本发明实施例一所提供的仿冒应用检测方法的流程图;

图2示出了本发明实施例二所提供的仿冒应用检测方法的流程图;

图3示出了本发明实施例二所提供的仿冒应用检测方法的另一流程图;

图4示出了本发明实施例二所提供的动态运行过程的流程图;

图5示出了本发明实施例二所提供的仿冒应用检测方法的另一流程图;

图6示出了本发明实施例三所提供的一种仿冒应用检测系统的结构示意图。

图标:100-仿冒应用检测系统;101-存储器;102-处理器;103-总线;104-通信接口。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前无法脱离外观与功能方面,通过更客观的方法检测仿冒应用,基于此,本发明实施例提供的一种仿冒应用检测方法以及系统,可以解决现有技术中存在的目前无法脱离外观与功能方面,通过更客观的方法检测仿冒应用的技术问题。

为便于对本实施例进行理解,首先对本发明实施例所公开的一种仿冒应用检测方法以及系统进行详细介绍。

实施例一:

本发明实施例提供的一种仿冒应用检测方法,如图1所示,包括:

s11:获取应用的文本信息。

作为本实施例的优选实施方式,可以从安卓应用商店获取应用和该应用的文本信息。

s12:通过分词器对文本信息进行分词,获得词库。

具体的,可以利用分词器对这些应用的文本信息中的软件描述部分的字段进行分词。

s13:将词库中的词与文本信息进行匹配,获得向量。

其中,向量的值为词库对应位置上的词在软件描述文字中出现的次数,即词袋模型。

s14:通过分类器对向量进行聚类,获得相似应用的集合。

s15:通过自动化测试工具将原版应用与集合中的相似应用进行动态运行,获得应用界面的控件信息。

作为本实施例的另一种实施方式,自动化测试工具可以为安卓自动化测试工具。

s16:根据控件信息获得综合特征向量。

本步骤中,对控件信息进行转化与处理,获得综合特征向量。

s17:将原版应用的综合特征向量与相似应用的综合特征向量进行相似度计算,获得仿冒应用检测结果。

本实施例中,该方法可以为基于应用文本聚类和页面特征的动态仿冒应用检测方法,可以相当于安卓移动终端应用的仿冒软件检测方法。通过本发明实施例提供的仿冒应用检测方法,实现了根据应用的文本信息进行仿冒应用的检测,脱离了通过外观与功能进行仿冒检测,使检测结果更加客观。

实施例二:

本发明实施例提供的一种仿冒应用检测方法,如图2所示,包括:

s21:获取应用的文本信息。

作为一个优选方案,可以从任意的安卓应用商店中获取一批应用和其文本信息。如图3所示,应用文件文本信息可以包括:应用介绍、下载量等。

s22:通过分词器对文本信息进行分词,获得分词结果。

在实际应用中,可以利用分词器对这些应用的文本信息中的软件描述部分的字段进行分词。

s23:删除分词结果中的停用词,提取分词结果中的名词,获得词库。

作为本实施例的优选实施方式,在获得所有的词后,去除其中的停用词,只提取名词形成词库。

s24:将词库中的词与文本信息中的软件描述文字进行匹配,获得向量。

进一步的是,将词库中的词匹配每一个应用的软件描述字段,形成向量。其中,向量的值为词库对应位置上的词在软件描述文字中出现的次数,也可以为词袋模型。如图3所示,针对文本信息先提取关键词,之后形成词袋模型。

s25:将所有应用的向量送入硬聚类算法分类器中进行聚类,形成多个簇,簇为相似应用的集合。

对于该批所有应用的向量,可以送入k均值硬聚类算法(简称k-means)分类器中进行聚类,聚类之后形成多个簇,每个簇中即为可能相似应用的集群。

s26:根据开发者信息、用户评论信息、点击量、下载量中至少一种信息,确定相似应用的原版应用。

如图3所示,对于每个簇,可以根据下载量、评论量和品牌信息等确定原版应用。

s27:对自动化测试工具中的运行次数、控件遍历方式进行定制,获得测试规则。

需要说明的是,自动化测试工具即动态运行工具,也可以为安卓自动化测试工具,它可以实时获取应用运行时的状态,并提供当前界面中的控件信息,可以用来进行控件的特征提取和分析。

优选的,测试规则包括:先遍历按钮控件与提示框控件,再搜索其他控件。在使用安卓自动化测试工具时,需要对其中的测试规则进行自主定制,包括运行次数,控件遍历策略等。本方法是通过广度优先搜索(breadth-firstsearch,简称bfs)的方法定制可交互的控件的遍历规则,在控件遍历过程中,先获取当前应用的状态信息再搜索没有点击的控件。为了获取应用运行时尽可能多的界面状态信息,优先遍历可以使应用界面产生明显变化的控件,可以优先遍历按钮与提示框等控件。当搜索到合适的控件后,可以根据控件的相关信息产生相应的动作。

s28:将原版应用与集合中的相似应用送入自动化测试工具中,根据测试规则进行动态运行。

如图3所示,将原版应用的安装包(androidpackage,缩写apk)文件与可能相似应用的apk文件,分别送入自动化测试工具即动态运行模块中,根据制定的测试规则进行自动的动态运行。

s29:在动态运行过程中,安卓自动化测试工具通过adb命令启动应用进入界面,获取应用的界面状态信息。

s30:通过对界面状态信息进行控件提取、解析与收集,获得界面的控件列表。

如图3与图4所示,控件遍历的流程及算法为:安卓自动化测试工具通过安卓通用的调试工具(androiddebugbridge,简称adb命令)先进入开始,启动安卓应用进入应用主界面,并获取应用的主状态,通过分析应用主状态信息获得控件列表,该控件列表可以为主界面中可交互的控件列表。即对主要界面的控件信息进行解析,该主要界面的控件信息可以包含多个界面。

本步骤中,每当安卓自动化测试工具产生动作后都会对当前状态进行收集,通过层级观察器(hierarchyviewer)获取界面层次结构化信息,并通过当前状态再次进行控件查找和筛选,控件1、控件2至控件n,探索控件并产生相应的动作,状态1、状态2至状态n。在当前页面没有可探索控件时,安卓自动化测试工具会触发返回动作(back),返回上一界面。在达到动作触发总次数后,安卓自动化测试工具会执行退出指令,出于对效率及应用状态探索程度的考虑,本方法的动作总次数可以设定为20次,在实际情况中也可根据需求进行动态调整。

在实际应用中,为了通过尽可能少的动作获得应用尽可能多的状态,安卓自动化测试工具会优先探索按钮、提示框等控件。安卓自动化测试工具通过控件的类型和位置信息产生一个动作,并将该控件放入已探索控件列表,以防之后产生重复动作。

s31:根据控件列表获得应用界面的控件信息。

运行结束后,根据步骤s30中获得的控件列表,输出应用各个界面的控件信息,控件信息可以是一颗树的形式。

s32:对控件信息中的节点内容进行编码,获得一维序列。

需要说明的是,一个应用经过以上步骤的处理后,该应用的每个页面可以对应一个控件树。如图3所示,对于每个控件树,可以解析其结构信息与语义信息,对其结构信息进行层级遍历,生成结构特征向量;对其语义信息进行词袋模型处理,生成语义特征向量。

对于结构特征向量的获取过程,是先层次遍历该树形式的控件信息,将控件信息转化成一维序列。对于上述簇中的全部应用的全部界面的控件信息,编码出现过的节点内容,例如对控件信息中的第一节内容编码为1,对控件信息中的第二节内容编码为2。

s33:将一维序列转化为一维向量,作为应用界面的结构特征向量。

作为本实施例的另一种实施方式,编码后即可将每个一维序列转化成数字形式的一维向量,即该页面的结构特征向量。

s34:通过符号对控件信息进行分词处理与匹配,获得应用界面的语义特征向量。

对于语义特征向量的获取过程,是先对控件信息中的字段内容做与步骤s22、s23与s24相同的处理,即最终形成词袋模型,唯一不同的的是此处控件信息的内容为英文,不需要分词器切词,直接通过符号分割即可,最后形成该页面的语义特征向量。

s35:结合结构特征向量与语义特征向量,形成应用界面的综合特征向量。

如图3所示,拼接结构特征向量与语义特征向量,从而形成综合特征向量。

s36:将原版应用中所有应用界面的综合特征向量与相似应用中所有应用界面的综合特征向量进行向量距离计算,获得向量距离。

进一步,一个应用经过以上步骤后,该应用的每个页面被一个综合特征向量表示,之后开始进入相似度计算模块,相似度计算即两个页面之间的向量距离计算,使用欧式距离公式:即两个向量对应位置数值相减的平方,累加后开根号。

s37:根据向量距离确定相似度。

作为一个优选方案,计算得出的两个页面之间的向量距离越小,则代表相似度越高。

s38:如果相似度小于预设值的应用界面个数,大于预设个数,则确定为仿冒应用。

对于每两个应用之间,依次计算两个应用中所有页面的相似度。如图3所示,对于原版应用的综合特征向量与可能相似应用的综合特征向量,计算欧氏距离,若存在预设个数x个的欧氏距离在预设值y以内的页面,则判断这两个应用为相似应用,即判为仿冒应用。可以简单理解为:对于每个上述中的簇:依次将该簇内其他应用与原版应用进行相似度计算,得到最后仿冒应用的结果。

如图5所示,在整个仿冒检测过程中,首先获取应用的apk文件与文本信息,可以是安卓的应用apk文件。之后进入文本信息处理模块,对该文本信息进行处理。然后进入动态运行模块,对其进行控件遍历。再进入界面控件特征提取模块,对界面的控件特征进行提取。之后进入相似度计算模块,对其进行相似度计算,最终获得仿冒检测的结果。

因此,仿冒应用检测方法可以基于应用文本和动态运行应用后获得的页面特征。其中,应用文本可以是应用商店中应用开发者给出的介绍信息等文字内容;页面特征即结构特征和语义特征。

实施例三:

本发明实施例提供的一种仿冒应用检测系统,如图6所示,仿冒应用检测系统100包括存储器101、处理器102、总线103和通信接口104,存储器101中存储有可在处理器102上运行的计算机程序,处理器102执行计算机程序时实现上述实施例一或实施例二提供的方法的步骤,处理器102、通信接口104和存储器101通过总线103连接。

其中,存储器101可能包含高速随机存取存储器(ram,randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口104(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。

总线103可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

处理器102可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器102中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现成可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本发明实施例提供的仿冒应用检测系统,与上述实施例提供的仿冒应用检测方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。

本发明实施例所提供的进行仿冒应用检测方法以及系统的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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