著录项信息
专利名称 | 一种识别山寨应用程序的方法和装置 |
申请号 | CN201310077476.0 | 申请日期 | 2013-03-12 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2013-07-10 | 公开/公告号 | CN103198243A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F21/14 | IPC分类号 | G;0;6;F;2;1;/;1;4;;;G;0;6;F;2;1;/;5;0查看分类表>
|
申请人 | 百度在线网络技术(北京)有限公司 | 申请人地址 | 北京市海淀区上地十街10号百度大厦
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 百度在线网络技术(北京)有限公司 | 当前权利人 | 百度在线网络技术(北京)有限公司 |
发明人 | 江军;杨锴;李翔;郭远丽;翟健成 |
代理机构 | 北京鸿德海业知识产权代理事务所(普通合伙) | 代理人 | 袁媛 |
摘要
本发明提供了一种识别山寨应用程序的方法和装置,其中方法包括:获取同一应用的程序安装包,并从程序安装包中分别提取开发者签名和应用权限信息;在同一应用的各程序安装包中,依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况以及程序安装包的应用权限偏离其他程序安装包的应用权限的状况,判断程序安装包是否为山寨应用程序。本发明无需依靠人工测试,也无需依赖用户反馈,能够即时地实现山寨应用程序的识别,提高了时效性,降低了成本。
1.一种识别山寨应用程序的方法,其特征在于,该方法包括:
S1、获取同一应用的程序安装包,并从程序安装包中分别提取开发者签名和应用权限信息;
S2、在同一应用的各程序安装包中,依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况,确定该程序安装包的第一权重,依据程序安装包的应用权限偏离其他程序安装包的应用权限的状况,确定该程序安装包的第二权重,根据第一权重和第二权重得到该程序安装包的总权重,将总权重值大于或等于预设的权重阈值的程序安装包识别为山寨应用程序。
2.根据权利要求1所述的方法,其特征在于,在所述步骤S1中,从程序安装包的元信息META-INF目录下提取开发者签名,从程序安装包的项目自描述文件manifast.xml中的许可permission组件解析得到应用权限信息。
3.根据权利要求1所述的方法,其特征在于,在所述步骤S2中,程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况越严重,第一权重值越大,程序安装包的应用权限偏离其他程序安装包的应用权限的状况越严重,第二权重值越大。
4.根据权利要求3所述的方法,其特征在于,所述程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况体现为:程序安装包的开发者签名占同一应用中各程序安装包的开发者签名的比重,其中所述比重越低,偏离其他程序安装包的开发者签名的状况越严重;
所述第一权重进一步取决于:程序安装包的开发者签名与该应用的低版本程序安装包的开发者签名的重合状况,所述重合状况越低,该程序安装包的第一权重值越大。
5.根据权利要求3所述的方法,其特征在于,所述程序安装包的应用权限偏离其他程序安装包的应用权限的状况体现为:程序安装包的应用权限与该应用的基础应用权限的差异,差异越大,偏离其他程序安装包的应用权限的状况越严重,其中若同一应用的程序安装包中具有某应用权限的程序安装包数量最多,则确定所述某应用权限为该应用的基础应用权限;
所述第二权重进一步取决于:程序安装包的应用权限在包含风险权限名单中的数量,数量越大,该程序安装包的第二权重值越大。
6.一种识别山寨应用程序的装置,其特征在于,该装置包括:
安装包获取单元,用于获取同一应用的程序安装包;
安装包解析单元,用于从各程序安装包中分别提取开发者签名和应用权限信息;
程序识别单元,用于在同一应用的各程序安装包中判断程序安装包是否为山寨应用程序,
所述程序识别单元具体包括:
第一确定子单元,用于依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况,确定该程序安装包的第一权重,
第二确定子单元,用于依据程序安装包的应用权限偏离其他程序安装包的应用权限的状况,确定该程序安装包的第二权重,
识别子单元,用于根据第一权重和第二权重得到该程序安装包的总权重,将总权重值大于或等于预设的权重阈值的程序安装包识别为山寨应用程序。
7.根据权利要求6所述的装置,其特征在于,所述安装包解析单元从程序安装包的META-INF目录下提取开发者签名,从程序安装包的manifast.xml中的permission组件解析得到应用权限信息。
8.根据权利要求6所述的装置,其特征在于,所述程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况越严重,第一权重值越大,所述程序安装包的应用权限偏离其他程序安装包的应用权限的状况越严重,第二权重值越大。
9.根据权利要求8所述的装置,其特征在于,所述程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况体现为:程序安装包的开发者签名占同一应用中各程序安装包的开发者签名的比重,其中所述比重越低,偏离其他程序安装包的开发者签名的状况越严重;
所述第一确定子单元进一步结合程序安装包的开发者签名与该应用的低版本程序安装包的开发者签名的重合状况确定所述第一权重,所述重合状况越低,该程序安装包的第一权重值越大。
10.根据权利要求8所述的装置,其特征在于,所述程序安装包的应用权限偏离其他程序安装包的应用权限的状况体现为:程序安装包的应用权限与该应用的基础应用权限的差异,差异越大,偏离其他程序安装包的应用权限的状况越严重,其中若同一应用的程序安装包中具有某应用权限的程序安装包数量最多,则确定所述某应用权限为该应用的基础应用权限;
所述第二确定子单元进一步结合程序安装包的应用权限在包含风险权限名单中的数量确定所述第二权重,数量越大,该程序安装包的第二权重值越大。
一种识别山寨应用程序的方法和装置\n【技术领域】\n[0001] 本发明涉及计算机应用的安全技术领域,特别涉及一种识别山寨应用程序的方法和装置。\n【背景技术】\n[0002] 近年来安卓因其开放性的特点得到了广泛的应用,其应用数量乘爆炸式增长,但也因安卓的开放性导致安卓应用易于被篡改或伪造,通常将篡改或伪造已有应用程序而产生的应用程序称为山寨应用程序。一方面基于知识产权保护方面的考虑,另一方面基于安全性方面考虑(山寨应用程序通常包含木马、病毒、广告、泄露隐私等危害用户的恶意代码),需要对山寨应用程序进行识别,从而为用户下载安装安卓应用提供一个更加良好的环境,并为安卓应用的搜索提升权威性。\n[0003] 现有识别山寨应用程序的方式主要通过人工测试的方式或基于用户反馈的方式:\n其中,人工测试的方式是指安排专人通过实际使用应用来鉴别是否为山寨应用,显然这种识别方式耗时较长,不可能在短时间内测试大量应用,且成本高。基于用户反馈的方式是指根据用户投诉、评论等渠道收集信息,确定应用是否为山寨应用,但用户反馈具有滞后性,发现问题时已经对大量用户造成了伤害,另外同样耗时较长,需要等待较长一段时间的用户反馈。\n【发明内容】\n[0004] 有鉴于此,本发明提供了一种识别山寨应用程序的方法和装置,以便于提高山寨应用程序识别的时效性,降低成本。\n[0005] 具体技术方案如下:\n[0006] 一种识别山寨应用程序的方法,该方法包括:\n[0007] S1、获取同一应用的程序安装包,并从程序安装包中分别提取开发者签名和应用权限信息;\n[0008] S2、在同一应用的各程序安装包中,依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况以及程序安装包的应用权限偏离其他程序安装包的应用权限的状况,判断程序安装包是否为山寨应用程序。\n[0009] 根据本发明一优选实施方式,在所述步骤S1中,从程序安装包的META-INF目录下提取开发者签名,从程序安装包的manifast.xml中的permission组件解析得到应用权限信息。\n[0010] 根据本发明一优选实施方式,在所述步骤S2中,依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况,确定该程序安装包的第一权重,依据程序安装包的应用权限偏离其他程序安装包的应用权限的状况,确定该程序安装包的第二权重,根据第一权重和第二权重得到该程序安装包的总权重,将总权重值大于或等于预设的权重阈值的程序安装包识别为山寨应用程序;\n[0011] 其中,程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况越严重,第一权重值越大,程序安装包的应用权限偏离其他程序安装包的应用权限的状况越严重,第二权重值越大。\n[0012] 根据本发明一优选实施方式,所述程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况体现为:程序安装包的开发者签名占同一应用中各程序安装包的开发者签名的比重,其中所述比重越低,偏离其他程序安装包的开发者签名的状况越严重;\n[0013] 所述第一权重进一步取决于:程序安装包的开发者签名与该应用的低版本程序安装包的开发者签名的重合状况,所述重合状况越低,该程序安装包的第一权重值越大。\n[0014] 根据本发明一优选实施方式,所述程序安装包的应用权限偏离其他程序安装包的应用权限的状况体现为:程序安装包的应用权限与该应用的基础应用权限的差异,差异越大,偏离其他程序安装包的应用权限的状况越严重,其中若同一应用的程序安装包中具有某应用权限的程序安装包数量最多,则确定所述某应用权限为该应用的基础应用权限;\n[0015] 所述第二权重进一步取决于:程序安装包的应用权限在包含风险权限名单中的数量,数量越大,该程序安装包的第二权重值越大。\n[0016] 一种识别山寨应用程序的装置,该装置包括:\n[0017] 安装包获取单元,用于获取同一应用的程序安装包;\n[0018] 安装包解析单元,用于从各程序安装包中分别提取开发者签名和应用权限信息;\n[0019] 程序识别单元,用于在同一应用的各程序安装包中,依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况以及程序安装包的应用权限偏离其他程序安装包的应用权限的状况,判断程序安装包是否为山寨应用程序。\n[0020] 根据本发明一优选实施方式,所述安装包解析单元从程序安装包的META-INF目录下提取开发者签名,从程序安装包的manifast.xml中的permission组件解析得到应用权限信息。\n[0021] 根据本发明一优选实施方式,所述程序识别单元具体包括:\n[0022] 第一确定子单元,用于依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况,确定该程序安装包的第一权重,其中程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况越严重,第一权重值越大;\n[0023] 第二确定子单元,用于依据程序安装包的应用权限偏离其他程序安装包的应用权限的状况,确定该程序安装包的第二权重,其中程序安装包的应用权限偏离其他程序安装包的应用权限的状况越严重,第二权重值越大;\n[0024] 识别子单元,用于根据第一权重和第二权重得到该程序安装包的总权重,将总权重值大于或等于预设的权重阈值的程序安装包识别为山寨应用程序。\n[0025] 根据本发明一优选实施方式,所述程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况体现为:程序安装包的开发者签名占同一应用中各程序安装包的开发者签名的比重,其中所述比重越低,偏离其他程序安装包的开发者签名的状况越严重;\n[0026] 所述第一确定子单元进一步结合程序安装包的开发者签名与该应用的低版本程序安装包的开发者签名的重合状况确定所述第一权重,所述重合状况越低,该程序安装包的第一权重值越大。\n[0027] 根据本发明一优选实施方式,所述程序安装包的应用权限偏离其他程序安装包的应用权限的状况体现为:程序安装包的应用权限与该应用的基础应用权限的差异,差异越大,偏离其他程序安装包的应用权限的状况越严重,其中若同一应用的程序安装包中具有某应用权限的程序安装包数量最多,则确定所述某应用权限为该应用的基础应用权限;\n[0028] 所述第二确定子单元进一步结合程序安装包的应用权限在包含风险权限名单中的数量确定所述第二权重,数量越大,该程序安装包的第二权重值越大。\n[0029] 由以上技术方案可以看出,本发明提供的方法和装置利用同一应用的程序安装包中提取出的开发者签名和应用权限信息即可实现山寨应用程序的识别,无需依靠人工测试,也无需依赖用户反馈,能够即时地实现山寨应用程序的识别,提高了时效性,降低了成本。\n【附图说明】\n[0030] 图1为本发明实施例一提供的识别山寨应用程序的方法流程图;\n[0031] 图2为本发明实施例二提供的识别山寨应用程序的装置结构图。\n【具体实施方式】\n[0032] 为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。\n[0033] 实施例一、\n[0034] 图1为本发明实施例一提供的识别山寨应用程序的方法流程图,在本发明中转换了一种思路,从应用程序的本身的特征出发,通过山寨应用程序与正常应用程序在该特征上的不同体现来进行识别,如图1所示,该方法主要包括以下步骤:\n[0035] 步骤101:获取同一应用的程序安装包,并从程序安装包中分别提取开发者签名和应用权限信息。\n[0036] 此处同一应用的程序安装包通常会包含不同版本的程序安装包,以及不同来源的程序安装包。\n[0037] 在提取开发者签名时,对于安卓应用而言,可以从程序安装包的元信息(META-INF)目录下提取,META-INF目录用于存储包和扩展的配置数据,例如安全性信息和版本信息,其中开发者签名就存储于此。\n[0038] 在提取应用权限信息时,对于安卓应用而言,可以从程序安装包的项目自描述文件(manifast.xml)中解析得到,manifast.xml是每个android程序中必须的文件,位于整个项目的根目录中,描述了包中暴露的组件,除了能声明程序中的活动(Activities)、内容管理器(ContentProviders)、服务(Services)和意图接收器(Intent Receivers)等组件之外,还能指定许可(permissions)和检测(instrumentation),应用权限信息就包含在permissions中。\n[0039] 步骤102:依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况,确定程序安装包的第一权重。\n[0040] 由于正版应用程序的传播能力强且会持续发版,因此对应的开发者签名分布较广,数量通常也较多,而山寨应用程序则反之,鉴于这种状况,如果某程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况越严重,则该程序安装包是山寨应用程序的可能性越高,就可以将该程序安装包的第一权重值设置的越大。\n[0041] 具体可以统计某程序安装包的开发者签名占同一应用中各程序安装包的开发者签名的比重,如果比重越低,则说明偏离其他程序安装包的开发者签名的状况越严重,可以将第一权重值设置的越大。举个例子,假设“疯狂的小鸟”对应的程序安装包有20个,这些程序安装包的签名状况可以为:开发者签名1存在1个(假设是程序安装包1),开发者签名2存在2个(假设是程序安装包2和3),开发者签名3存在17个(假设是程序安装包4至20),可以看出,程序安装包1、2和3偏离其他程序安装包的开发者签名的状况都比较严重,在设置第一权重值时,可以设置程序安装包1的第一权重为1-1/20=0.95,程序安装包2和3的第一权重为1-2/20=0.9,程序安装包4至20的第一权重为1-17/20=0.15。\n[0042] 除此之外,如果从另外一个维度考虑还存在一种因素,即对于不同版本的程序安装包而言,通常第一版本的程序安装包由于普及程度还不那么高,是山寨应用程序的可能性较小,其对应的开发者签名更加权威,后续版本的程序安装包就可以第一版本的程序安装包的开发者签名作为参考,正版应用程序变更开发者签名的可能性较小,因此可以进一步考虑程序安装包的开发者签名与该应用的低版本程序安装包的开发者签名的重合状况,例如如果某个程序安装包与第一版本的程序安装包的开发者签名重合度很低,那么其是山寨应用程序的可能性就越高,因此在确定第一权重时,也可以将该因素考虑进去。如果将该因素同时考虑进去,则可以分别依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况以及程序安装包的开发者签名与该应用的低版本程序安装包的开发者签名的重合状况分别确定权重,再进行加权后确定该程序安装包的第一权重。或者,程序安装包的开发者签名与该应用的低版本程序安装包的开发者签名的重合状况用于对依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况确定的第一权重进行调权处理。\n[0043] 步骤103:依据程序安装包的应用权限偏离其他程序安装包的应用权限的状况,确定程序安装包的第二权重。\n[0044] 通常对于正版应用程序而言,应用权限的要求通常是相同的,如果应用权限发生了变化的程序安装包,则很可能是山寨应用程序。鉴于这种状况,如果某程序安装包的应用权限偏离其他程序安装包的应用权限的状况越严重,则说明该程序安装包是山寨应用程序的可能性越大,将该程序安装包的第二权重设置的越大。通常可以通过以下方式确定:首先确定同一应用程序的所有程序安装包中具有某应用权限的程序安装包数量最多,则可以认为这些程序安装包为正版应用程序,将对应的所述某应用权限作为基础应用权限,对于某程序安装包而言,其应用权限与基础应用权限的差异越大,则可以认为程序安装包的应用权限偏离其他程序安装包的应用权限的状况越严重。举个例子,假设对于“疯狂的小鸟”对应的程序安装包有20个,其中有16个程序安装包(假设是程序安装包5至20)的应用权限都是相同的,而4个程序安装包的应用权限与上述的应用权限不同,则可以将上述16个具有相同应用权限的程序安装包的应用权限作为基础应用权限,假设程序安装包1的应用权限相比较基础应用权限而言多了拨打电话,程序安装包的应用程序相比较基础应用权限而言多了拨打电话、连接网络和收发短信。如果基础应用权限中的权限个数为3,那么程序安装包1的第二权重可以设置为1/(3+1)=0.25,程序安装包2至4的第二权重均可以设置为3/(3+1)=\n0.75,程序安装包5至20的第二权重为0。\n[0045] 除此之外,还可以从另外一个方面考虑,对于某些应用权限而言,是程序安装包正常运行所不需要的并且是涉及到用户隐私或影响用户安全的,这些应用权限可以设置在高风险权限名单中,例如拨打电话的应用权限、收发短信的应用权限等。因此,可以进一步考虑程序安装包的应用权限包含在高风险权限名单中的数量,数量越大,该程序安装包是山寨应用程序的可能性越大,可以设置该程序安装包的第二权重值越大。如果将该因素考虑进去,则可以分别依据程序安装包的应用权限偏离其他程序安装包的应用权限的状况以及程序安装包的应用权限包含在高风险权限名单中的数量分别确定权重,再进行加权后确定该程序安装包的第二权重。或者,程序安装包的应用权限包含在高风险权限名单中的数量分别确定权重用于对依据程序安装包的应用权限偏离其他程序安装包的应用权限的状况确定的第二权重进行调权处理。\n[0046] 仍以上例来说明,程序安装包1中拨打电话这个应用权限包含在高风险权限名单中,程序安装包2中2个应用权限包含在高风险权限名单中,则可以将程序安装包1的第二权重向上调整一个步长,假设步长是0.05,则程序安装包1的第二权重变为0.3,程序安装包2至4的第二权重向上调整两个步长,变为0.85。\n[0047] 步骤104:根据第一权重和第二权重得到程序安装包的总权重,将总权重之大于或等于预设的权重阈值的程序安装包识别为山寨应用程序。\n[0048] 上述的权重阈值可以根据实际需求进行调整,选取经验值或者实验值。在根据第一权重和第二权重得到程序安装包的总权重时,可以采用加权的方式,例如加权求和或者加权求平均等。假设第一权重和第二权重的加权系统分别是0.5和0.5,那么接续上例,程序安装包1的总权重为:0.95*0.5+0.25*0.5=0.6,程序安装包2和3的总权重均为:0.9*0.5+\n0.75*0.5=0.825,程序安装包4的总权重为:0.15*0.5+0.75*0.5=0.45,程序安装包5至20的总权重均为:0.15*0.5+0=0.075。如果权重阈值设置为0.6,那么可以识别出程序安装包1、2和3均为山寨应用程序。上述实例中的第一权重和第二权重的计算方法均为所举的例子,也可以分别依据上述的因素采用其他计算方法,在此不再一一举例。\n[0049] 需要说明的是,在本发明中采用依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况以及程序安装包的应用权限偏离其他程序安装包的应用权限的状况分别计算权重再将权重进行融合的方式来综合两方面状况。但本发明并不限于这种方式,也可以采用除了计算权重之外的其他方式来体现和综合两方面状况,从而完成山寨应用程序的识别。\n[0050] 除了上述根据程序安装包的开发者签名和应用权限两个因素作为基础之外,还可以进一步结合其他因素进行山寨应用程序的识别,例如如果对时效性要求不那么高,则可以进一步结合用户行为来进行识别。可以根据用户对程序安装包的使用次数、卸载次数等确定程序安装包的第三权重,然后在确定总权重时,除了第一权重和第二权重之外,进一步结合该第三权重进行确定;或者在利用第一权重和第二权重确定出程序安装包的总权重之后,可以进一步根据用户对程序安装包的使用次数、卸载次数等对程序安装包的总权重进行调权。\n[0051] 在通过上述实施例中的步骤识别出山寨应用程序后,可以将识别出的山寨应用程序提交后台服务进行下线处理,或者提交给测试人员进行进一步的验证。\n[0052] 以上是对本发明提供的方法进行的详细描述,下面结合实施例二对本发明提供的装置进行详细描述。\n[0053] 实施例二、\n[0054] 图2为本发明实施例二提供的识别山寨应用程序的装置结构图,如图2所示,该装置主要包括:安装包获取单元00、安装包解析单元10和程序识别单元20。\n[0055] 首先安装包获取单元00获取同一应用的程序安装包。该获取的操作可以通过应用搜索引擎从网络中或者安卓应用库中进行获取。\n[0056] 安装包解析单元10从各程序安装包中分别提取开发者签名和应用权限信息。具体可以从程序安装包的META-INF目录下提取开发者签名,从程序安装包的manifast.xml中的permission组件解析得到应用权限信息。\n[0057] 程序识别单元20的功能在于依据程序安装包的开发者签名和应用权限信息这两个因素实现山寨应用程序的识别,具体为:在同一应用的各程序安装包中,依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况以及程序安装包的应用权限偏离其他程序安装包的应用权限的状况,判断程序安装包是否为山寨应用程序。\n[0058] 在本发明实施例中提供了一种优选的判断方法,此时的程序识别单元20具体包括:第一确定子单元21、第二确定子单元22和识别子单元23。\n[0059] 其中第一确定子单元21依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况,确定该程序安装包的第一权重,其中程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况越严重,第一权重值越大。程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况可以体现为:程序安装包的开发者签名占同一应用中各程序安装包的开发者签名的比重,其中比重越低,偏离其他程序安装包的开发者签名的状况越严重。\n[0060] 除此之外,第一确定子单元21可以进一步结合程序安装包的开发者签名与该应用的低版本程序安装包的开发者签名的重合状况确定第一权重,重合状况越低,该程序安装包的第一权重值越大。\n[0061] 如果将程序安装包的开发者签名与该应用的低版本程序安装包的开发者签名的重合状况同时考虑进去,则可以分别依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况以及程序安装包的开发者签名与该应用的低版本程序安装包的开发者签名的重合状况分别确定权重,再进行加权后确定该程序安装包的第一权重。或者,程序安装包的开发者签名与该应用的低版本程序安装包的开发者签名的重合状况用于对依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况确定的第一权重进行调权处理。\n[0062] 第二确定子单元22依据程序安装包的应用权限偏离其他程序安装包的应用权限的状况,确定该程序安装包的第二权重,其中程序安装包的应用权限偏离其他程序安装包的应用权限的状况越严重,第二权重值越大。其中程序安装包的应用权限偏离其他程序安装包的应用权限的状况体现为:程序安装包的应用权限与该应用的基础应用权限的差异,差异越大,偏离其他程序安装包的应用权限的状况越严重,其中若同一应用的程序安装包中具有某应用权限的程序安装包数量最多,则确定某应用权限为该应用的基础应用权限。\n[0063] 除此之外第二确定子单元22可以进一步结合程序安装包的应用权限在包含风险权限名单中的数量确定第二权重,数量越大,该程序安装包的第二权重值越大。\n[0064] 如果将程序安装包的应用权限在包含风险权限名单中的数量同时考虑进去,则可以分别依据程序安装包的应用权限偏离其他程序安装包的应用权限的状况以及程序安装包的应用权限包含在高风险权限名单中的数量分别确定权重,再进行加权后确定该程序安装包的第二权重。或者,程序安装包的应用权限包含在高风险权限名单中的数量分别确定权重用于对依据程序安装包的应用权限偏离其他程序安装包的应用权限的状况确定的第二权重进行调权处理。\n[0065] 最后识别子单元23根据第一权重和第二权重得到该程序安装包的总权重,将总权重值大于或等于预设的权重阈值的程序安装包识别为山寨应用程序。在根据第一权重和第二权重得到程序安装包的总权重时,可以采用加权的方式,例如加权求和或者加权求平均等。上述的权重阈值可以根据实际需求进行调整,选取经验值或者实验值。\n[0066] 通过上述实施例提供的方法和装置可以有效的识别山寨应用程序,经过测试,对于热门应用,其识别准确率可以达到99%。本发明的上述实施例以安卓应用为例,对于其他开源系统的应用本发明均适用。\n[0067] 在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。\n[0068] 上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。\n[0069] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
法律信息
- 2016-06-01
- 2014-03-05
实质审查的生效
IPC(主分类): G06F 21/14
专利申请号: 201310077476.0
申请日: 2013.03.12
- 2013-07-10
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-10-24
|
2012-06-20
| | |
2
| |
2012-11-07
|
2012-06-29
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |