一种同质化应用的检测方法和装置的制造方法

文档序号:9787668阅读:820来源:国知局
一种同质化应用的检测方法和装置的制造方法
【技术领域】
[0001]本发明涉及数据业务中的应用检测技术,尤其涉及一种同质化应用的检测方法和
目.ο
【背景技术】
[0002]随着电子信息的快速发展,系统应用尤其是安卓(Android)系统的应用已经迅速崛起。Android系统的使用涵盖了智能手机、平板电脑、电视机顶盒以及其它嵌入式便携电子设备。
[0003]Android系统的成功很大程度上要归功于系统的开放性和易于上手的开发套件,但正是由于系统的开放性和技术的透明化,又导致市面上大量同质化应用的出现;这里,所谓同质化是指相似度极高。所述同质化应用通常包括两类:一种类型为盗版应用,即盗版开发者可以对源应用进行反向工程,对源应用进行小幅度篡改或替换源应用内部的资源文件,并将修改后的应用作为自己的应用推向市场,从而从中获利;另一种类型为滥造应用,即滥造开发者也可以将自己的源码和资源文件进行替换修改,将一个应用作为多个应用在应用市场多次发布,从而躲避应用市场对于某一应用的事后监管和考核。
[0004]对于各种应用发布平台而言,诸多同质化应用会导致平台产品品质下降。从长远来看,这种同质化应用的行为将严重扰乱Android应用市场秩序,且影响整个产业链的健康发展。
[0005]目前,各种应用发布平台仅能做到对版权文档进行书面审核和人工测试。这种测试主观因素高,费时费力且准确性较差。虽然已经存在一些同质化应用检测的方法,但由于应对场景单一,无法同时对盗版应用和滥造应用做到有效的检测。

【发明内容】

[0006]有鉴于此,本发明实施例提供一种同质化应用的检测方法和装置,能够准确确定出源应用和目标应用之间的相似度,从而能有效检测盗版应用和滥造应用。
[0007]为达到上述目的,本发明实施例的技术方案是这样实现的:
[0008]本发明实施例提供一种同质化应用的检测方法,该方法包括:
[0009]分别对源应用和目标应用进行代码反编译处理,获得源应用信息和目标应用信息;
[0010]对所述源应用信息和目标应用信息进行解析处理,得到组件相似度、类布局相似度、代码控制流相似度和文本相似度;
[0011]根据所述组件相似度、类布局相似度、代码控制流相似度和文本相似度确定出所述源应用和目标应用的相似度。
[0012]上述方案中,所述源应用信息包括源配置文件和源程序包;
[0013]相应地,所述目标应用信息包括目标配置文件和目标程序包。
[0014]上述方案中,所述对所述源应用信息和目标应用信息进行解析处理,得到组件相似度、类布局相似度、代码控制流相似度和文本相似度包括:
[0015]对所述源配置文件和目标配置文件进行解析,得到组件相似度;
[0016]对所述源程序包和目标程序包进行解析,得到类布局相似度、代码控制流相似度和文本相似度。
[0017]上述方案中,所述对所述源配置文件和目标配置文件进行解析,得到组件相似度,包括:
[0018]分别将所述源配置文件和目标配置文件转化为对应的二维数组;
[0019]计算转换后的两个二维数组的相似度,作为组件相似度。
[0020]上述方案中,所述对所述源程序包和目标程序包进行解析,得到类布局相似度,包括:
[0021]分别解析所述源程序包和目标程序包,获得源应用的类布局树序列和目标应用的类布局树序列;
[0022]计算确定所述源应用的类布局树序列和目标应用的类布局树序列中所有节点的路径信息;
[0023]根据所述路径信息确定类布局相似度。
[0024]上述方案中,所述对所述源程序包和目标程序包进行解析,得到代码控制流相似度,包括:
[0025]分别解析所述源程序包和目标程序包,建立源应用的控制流有向图和目标应用的控制流有向图;
[0026]根据所述源应用的控制流有向图和目标应用的控制流有向图,确定代码控制流相似度。
[0027]上述方案中,所述对所述源程序包和目标程序包进行解析,得到文本相似度,包括:
[0028]分别解析所述源程序包和目标程序包,建立源应用的所有关键字向量集合和目标应用的所有关键字向量集合;
[0029]对所述源应用的所有关键字向量集合和目标应用的所有关键字向量集合进行比较处理,获得文本相似度。
[0030]上述方案中,所述根据所述组件相似度、类布局相似度、代码控制流相似度和文本相似度确定出所述源应用和目标应用的相似度,包括:
[0031]对所述组件相似度、类布局相似度、代码控制流相似度和文本相似度进行加权平均计算,确定出所述源应用和目标应用的相似度。
[0032]本发明实施例还提供一种同质化应用的检测装置,该装置包括反编译处理模块、解析处理模块和确定模块;
[0033]所述反编译处理模块,用于分别对源应用和目标应用进行代码反编译处理,获得源应用信息和目标应用信息;
[0034]所述解析处理模块,用于对所述源应用信息和目标应用信息进行解析处理,得到组件相似度、类布局相似度、代码控制流相似度和文本相似度;
[0035]所述确定模块,用于根据所述组件相似度、类布局相似度、代码控制流相似度和文本相似度确定出所述源应用和目标应用的相似度。
[0036]上述方案中,所述源应用信息包括源配置文件和源程序包;
[0037]相应地,所述目标应用信息包括目标配置文件和目标程序包。
[0038]上述方案中,所述解析处理模块包括第一解析处理子模块和第二解析处理子模块;其中,
[0039]所述第一解析处理子模块,用于对所述源配置文件和目标配置文件进行解析,得到组件相似度;
[0040]所述第二解析处理子模块,用于对所述源程序包和目标程序包进行解析,得到类布局相似度、代码控制流相似度和文本相似度。
[0041]上述方案中,所述第一解析处理子模块621包括转换单元和计算单元;其中,
[0042]所述转换单元,用于分别将所述源配置文件和目标配置文件转化为对应的二维数组;
[0043]所述计算单元,用于计算转换后的两个二维数组的相似度,作为组件相似度
[0044]上述方案中,所述第二解析处理子模块包括解析单元和确定单元;其中,
[0045]所述解析单元,用于分别解析所述源程序包和目标程序包,获得源应用的类布局树序列和目标应用的类布局树序列;
[0046]所述确定单元,用于计算确定所述源应用的类布局树序列和目标应用的类布局树序列中所有节点的路径信息;根据所述路径信息确定类布局相似度。
[0047]上述方案中,所述解析单元,还用于分别解析所述源程序包和目标程序包,建立源应用的控制流有向图和目标应用的控制流有向图;
[0048]所述确定单元,还用于根据所述源应用的控制流有向图和目标应用的控制流有向图,确定代码控制流相似度。
[0049]上述方案中,所述解析单元,还用于分别解析所述源程序包和目标程序包,建立源应用的所有关键字向量集合和目标应用的所有关键字向量集合;
[0050]所述确定单元,还用于对所述源应用的所有关键字向量集合和目标应用的所有关键字向量集合进行比较处理,获得文本相似度。
[0051]上述方案中,所述确定模块,用于对所述组件相似度、类布局相似度、代码控制流相似度和文本相似度进行加权平均计算,确定出所述源应用和目标应用的相似度。
[0052]本发明实施例所提供的同质化应用的检测方法和装置,分别对源应用和目标应用进行代码反编译处理,获得源应用信息和目标应用信息;对所述源应用信息和目标应用信息进行解析处理,得到组件相似度、类布局相似度、代码控制流相似度和文本相似度;根据所述组件相似度、类布局相似度、代码控制流相似度和文本相似度确定出所述源应用和目标应用的相似度。如此,能够准确确定出源应用和目标应用之间的相似度,从而对盗版应用和滥造应用做到有效地检测。
【附图说明】
[0053]图1为本发明实施例同质化应用的检测方法的实现流程示意图;
[0054]图2为本发明实施例对所述源应用信息和目标应用信息进行解析处理的实现流程TJK意图;
[0055]图3为本发明实施例对所述源配置文件和目标配置文件进行解析的实现流程示意图;
[0056]图4为本发明实施例对所述源程序包和目标程序包进行解析的实现流程示意图;
[0057]图5为本发明一应用实例同质化应用的检测方法的实现流程示意图;
[0058]图6为本发明实施例同质化应用的检测装置的组成结构示意图;
[0059]图7为本发明实施例所述解析处理模块的组成结构示意图;
[0060]图8为本发明实施例所述第一解析处理子模块的组成结构示意图;
[0061]图9为本发明实施例所述第二解析处理子模块的组成结构示意图。
【具体实施方式】
[0062]相关技术中,Android应用的可执行文件(apk文件)在通过反向工程工具如APKTools进行反编译后,可以获得应用信息;所述应用信息包括资源文件包、配置文件、程序包(即Smali代码)和动态链接库文件包。其中,所述资源文件包是一个Android应用在执行过程中所需要的一些图片、布局和字符串等文件;所述配置文件是Android应用的权限设置和一些基本程序信息;所述Smali代码实质上为反编译后的代码,但是可读性较差,如果源程序开发者在编译时使用了代码混淆,则Smali代码属于基本不可读代码;所述动态链接库为程序运行过程中需要调用的一些外部函数。
[0063]通常情况下,盗版应用开发者会将上述应用信息中的资源文件包中的图片和字符串等进行替换;更有能力的开发者则可以通过修改配置文件和Smali代码的方式绕过一些校验功能,同时注入一些自己的代码,使得新的程序与原有
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1