好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

一种识别山寨应用程序的方法和装置的制作方法.docx

5页
  • 卖家[上传人]:ting****789
  • 文档编号:309455803
  • 上传时间:2022-06-13
  • 文档格式:DOCX
  • 文档大小:20.95KB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 一种识别山寨应用程序的方法和装置的制作方法专利名称:一种识别山寨应用程序的方法和装置的制作方法一种识别山寨应用程序的方法和装置技术领域:本发明涉及计算机应用的安全技术领域,特别涉及一种识别山寨应用程序的方法和装置背景技术:近年来安卓因其开放性的特点得到了广泛的应用,其应用数量乘爆炸式增长,但也因安卓的开放性导致安卓应用易于被篡改或伪造,通常将篡改或伪造已有应用程序而产生的应用程序称为山寨应用程序一方面基于知识产权保护方面的考虑,另一方面基于安全性方面考虑(山寨应用程序通常包含木马、病毒、广告、泄露隐私等危害用户的恶意代码),需要对山寨应用程序进行识别,从而为用户下载安装安卓应用提供一个更加良好的环境,并为安卓应用的搜索提升权威性现有识别山寨应用程序的方式主要通过人工测试的方式或基于用户反馈的方式:其中,人工测试的方式是指安排专人通过实际使用应用来鉴别是否为山寨应用,显然这种识别方式耗时较长,不可能在短时间内测试大量应用,且成本高基于用户反馈的方式是指根据用户投诉、评论等渠道收集信息,确定应用是否为山寨应用,但用户反馈具有滞后性,发现问题时已经对大量用户造成了伤害,另外同样耗时较长,需要等待较长一段时间的用户反馈。

      发明内容有鉴于此,本发明提供了一种识别山寨应用程序的方法和装置,以便于提高山寨应用程序识别的时效性,降低成本具体技术方案如下:一种识别山寨应用程序的方法,该方法包括:S1、获取同一应用的程序安装包,并从程序安装包中分别提取开发者签名和应用权限信息;S2、在同一应用的各程序安装包中,依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况以及程序安装包的应用权限偏离其他程序安装包的应用权限的状况,判断程序安装包是否为山寨应用程序根据本发明一优选实施方式,在所述步骤SI中,从程序安装包的META-1NF目录下提取开发者签名,从程序安装包的manifast.xml中的permission组件解析得到应用权限信息根据本发明一优选实施方式,在所述步骤S2中,依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况,确定该程序安装包的第一权重,依据程序安装包的应用权限偏离其他程序安装包的应用权限的状况,确定该程序安装包的第二权重,根据第一权重和第二权重得到该程序安装包的总 权重,将总权重值大于或等于预设的权重阈值的程序安装包识别为山寨应用程序;其中,程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况越严重,第一权重值越大,程序安装包的应用权限偏离其他程序安装包的应用权限的状况越严重,第二权重值越大。

      根据本发明一优选实施方式,所述程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况体现为:程序安装包的开发者签名占同一应用中各程序安装包的开发者签名的比重,其中所述比重越低,偏离其他程序安装包的开发者签名的状况越严重;所述第一权重进一步取决于:程序安装包的开发者签名与该应用的低版本程序安装包的开发者签名的重合状况,所述重合状况越低,该程序安装包的第一权重值越大根据本发明一优选实施方式,所述程序安装包的应用权限偏离其他程序安装包的应用权限的状况体现为:程序安装包的应用权限与该应用的基础应用权限的差异,差异越大,偏离其他程序安装包的应用权限的状况越严重,其中若同一应用的程序安装包中具有某应用权限的程序安装包数量最多,则确定所述某应用权限为该应用的基础应用权限;所述第二权重进一步取决于:程序安装包的应用权限在包含风险权限名单中的数量,数量越大,该程序安装包的第二权重值越大一种识别山寨应用程序的装置,该装置包括:安装包获取单元,用于获取同一应用的程序安装包;安装包解析单元,用于从各程序安装包中分别提取开发者签名和应用权限信息;程序识别单元,用于在同一应用的各程序安装包中,依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况以及程序安装包的应用权限偏离其他程序安装包的应用权限的状况,判断程序安装包是否为山寨应用程序。

      根据本发明一优选实施方式,所述安装包解析单元从程序安装包的META-1NF目录下提取开发者签名,从程序安装包的manifast.xml中的permission组件解析得到应用权限信息根据本发明一优选实施方式,所述程序识别单元具体包括:第一确定子单元,用于依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况,确定该程序安装包的第一权重,其中程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况越严重,第一权重值越大;第二确定子单元,用于依据程序安装包的应用权限偏离其他程序安装包的应用权限的状况,确定该程序安装包的第二权重,其中程序安装包的应用权限偏离其他程序安装包的应用权限的状况越严重,第二权重值越大;识别子单元,用于根据第一权重和第二权重得到该程序安装包的总权重,将总权重值大于或等于预设的权重阈值的程序安装包识别为山寨应用程序根据本发明一优选实施方式,所述程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况体现为:程序安装包的开发者签名占同一应用中各程序安装包的开发者签名的比重,其中所述比重越低,偏离其他程序安装包的开发者签名的状况越严重;所述第一确定子单元进一步结合程序安装包的开发者签名与该应用的低版本程序安装包的开发者签名的重合状况确定所述第一权重,所述重合状况越低,该程序安装包的第一权重值越大。

      根据本发明一优选实施方式,所述程序安装包的应用权限偏离其他程序安装包的应用权限的状况体现为:程序安装包的应用权限与该应用的基础应用权限的差异,差异越大,偏离其他程序安装包的应用权限的状况越严重,其中若同一应用的程序安装包中具有某应用权限的程序安装包数量最多,则确定所述某应用权限为该应用的基础应用权限;所述第二确定子单元进一步结合程序安装包的应用权限在包含风险权限名单中的数量确定所述第二权重,数量越大,该程序安装包的第二权重值越大由以上技术方案可以看出,本发明提供的方法和装置利用同一应用的程序安装包中提取出的开发者签名和应用权限信息即可实现山寨应用程序的识别,无需依靠人工测试,也无需依赖用户反馈,能够即时地实现山寨应用程序的识别,提高了时效性,降低了成本图1为本发明实施例一提供的识别山寨应用程序的方法流程图;图2为本发明实施例二提供的识别山寨应用程序的装置结构图具体实施方式为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述实施例一、图1为本发明实施例一提供的识别山寨应用程序的方法流程图,在本发明中转换了一种思路,从应用程序的本身的特征出发,通过山寨应用程序与正常应用程序在该特征上的不同体现来进行识别,如图1所示,该方法主要包括以下步骤:步骤101:获取同一应用的程序安装包,并从程序安装包中分别提取开发者签名和应用权限信息。

      此处同一应用的程序安装包通常会包含不同版本的程序安装包,以及不同来源的程序安装包在提取开发者签名时,对于安卓应用而言,可以从程序安装包的元信息(META-1NF)目录下提取,META-1NF目录用于存储包和扩展的配置数据,例如安全性信息和版本信息,其中开发者签名就存储于此在提取应用权限信息时,对于安卓应用而言,可以从程序安装包的项目自描述文件(manifast.xml)中解析得到,manifast.xml是每个android程序中必须的文件,位于整个项目的根目录中,描述了包中暴露的组件,除了能声明程序中的活动(Activities)、内容管理器(ContentProviders)、服务(Services)和意图接收器(Intent Receivers)等组件之外,还能指定许可(permissions)和检测(instrumentation),应用权限信息就包含在permissions 中步骤102:依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况,确定程序安装包的第一权重由于正版应用程序的传播能力强且会持续发版,因此对应的开发者签名分布较广,数量通常也较多,而山寨应用程序则反之,鉴于这种状况,如果某程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况越严重,则该程序安装包是山寨应用程序的可能性越高,就可以将该程序安装包的第一权重值设置的越大。

      具体可以统计某程序安装包的开发者签名占同一应用中各程序安装包的开发者签名的比重,如果比重越低,则说明偏离其他程序安装包的开发者签名的状况越严重,可以将第一权重值设置的越大举个例子,假设“疯狂的小鸟”对应的程序安装包有20个,这些程序安装包的签名状况可以为:开发者签名I存在I个(假设是程序安装包I ),开发者签名2存在2个(假设是程序安装包2和3),开发者签名3存在17个(假设是程序安装包4至20),可以看出,程序安装包1、2和3偏离其他程序安装包的开发者签名的状况都比较严重,在设置第一权重值时,可以设置程序安装包I的第一权重为1-1/20=0.95,程序安装包2和3的第一权重为1-2/20=0.9,程序安装包4至20的第一权重为1-17/20=0.15除此之外,如果从另外一个维度考虑还存在一种因素,即对于不同版本的程序安装包而言,通常第一版本的程序安装包由于普及程度还不那么高,是山寨应用程序的可能性较小,其对应的开发者签名更加权威,后续版本的程序安装包就可以第一版本的程序安装包的开发者签名作为参考,正版应用程序变更开发者签名的可能性较小,因此可以进一步考虑程序安装包的开发者签名与该应用的低版本程序安装包的开发者签名的重合状况,例如如果某个程序安装包与第一版本的程序安装包的开发者签名重合度很低,那么其是山寨应用程序的可能性就越高,因此在确定第一权重时,也可以将该因素考虑进去。

      如果将该因素同时考虑进去,则可以分别依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况以及程序安装包的开发者签名与该应用的低版本程序安装包的开发者签名的重合状况分别确定权重,再进行加权后确定该程序安装包的第一权重或者,程序安装包的开发者签名与该应用的低版本程序安装包的开发者签名的重合状况用于对依据程序安装包的开发者签名偏离其他程序安装包的开发者签名的状况确定的第一权重进行调权处理步骤103:依据程序安装包的应用权限偏离其他程序安装包的应用权限的状况,确定程序安装包的第二权重通常对于正版应用程序而言,应用权限的要求通常是相同的,如果应用权限发生了变化的程序安装包,则很可能是山寨应用程序鉴于这种状况,如果某程序安装包的应用权限偏离其他程序安装包的应用权限的状况越严重,则说明该程序安装包是山寨应用程序的可能性越大,将该程序安装包的第二权重设置的越大通常可以通过以下方式确定:首先确定同一应用程序的所有程序安装包中具有某应用权限的程序安装包数量最多,则可以认为这些程序安装包为正版应用程序,将对应的所述某应用权限作为基础应用权限,对于某程序安装包而言,其应用权限与基础应用权限的差异越大,则可以认为程序安装包的应用权限偏离其他程序安装包的应用权限的状况越严重。

      举个例子,假设对于“疯狂的小鸟”对应的程序安装包有20个,其中有16个程序安装包(假设是程序安装包5至20)的应用权限都是相同的,而4个程序安装包的应用权限与上述的应用权限不同,则可以将上述16个具有相同应用权限的程序安装包的应用权限作为基础应用权限,假设程序安装包I的应用权限相比较基础应用权限而言多了拨打,程序安装包的应用程序相比较基础应用权限而言多了拨打、连接网络和收发短信如果基础应用权限中的权限个数为3,那么程序安装包I的第二权重可以设置为1/(3+1)=0.25,程序安装包2至4的第二权重均可以设置为3/(3+1)=0.75,程序安装包5至20的第二权重为O除此之外,还可以从另外一个方面考虑,对于某些应用权限而言,是程序安装包正常运行所不需要的并且是涉及到用户隐私或影响用户安全的,这些应用权限可以设置在高风险权限名单中,例如拨打的应用权限、收发短信的应用权限等因此,可以进一步考虑程序安装包的应用权限包含在高风险权限。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.