CN112346779A - 应用程序相似度的检测方法、装置和计算机设备 - Google Patents

应用程序相似度的检测方法、装置和计算机设备 Download PDF

Info

Publication number
CN112346779A
CN112346779A CN202011260663.9A CN202011260663A CN112346779A CN 112346779 A CN112346779 A CN 112346779A CN 202011260663 A CN202011260663 A CN 202011260663A CN 112346779 A CN112346779 A CN 112346779A
Authority
CN
China
Prior art keywords
application
sample
executable file
similarity
characteristic
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.)
Pending
Application number
CN202011260663.9A
Other languages
English (en)
Inventor
曾文清
吴保增
虞孝伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Zhizhen Information Technology Co ltd
Original Assignee
Guangzhou Zhizhen Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Zhizhen Information Technology Co ltd filed Critical Guangzhou Zhizhen Information Technology Co ltd
Priority to CN202011260663.9A priority Critical patent/CN112346779A/zh
Publication of CN112346779A publication Critical patent/CN112346779A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • G06F8/751Code clone detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及一种应用程序相似度的检测方法和装置,包括:获取待检测应用程序对应的可执行文件;获取所述可执行文件包含的多个对象的对象名和对象属性信息,以及所述可执行文件对应的运行权限信息;所述多个对象包括类、包、方法和字符串中至少两种;根据多个对象的对象名、对象属性信息和所述运行权限信息,得到所述待检测应用程序对应的多个目标特征因子;根据所述目标特征因子与特征库中的样本特征因子的相似度,得到所述待检测应用程序对应的相似度检测结果,实现了根据多种特征因子对应用相似度进行提前预测,防止因相似度过高而被应用平台下架,并且,通过采用应用程序的多个特征因子进行匹配,有效提高相似应用程序的检测准确度与检测效率。

Description

应用程序相似度的检测方法、装置和计算机设备
技术领域
本申请涉及计算机技术领域,特别是涉及一种应用程序相似度的检测方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术不断发展,市场上的软件应用日益增多。为了提供良好平台环境,应用平台往往会对相似或相同的应用进行打击,避免平台中出现重复应用。然而,在应用开发过程中,由于开发人员无法确定开发中的应用与已有应用的相似度,容易因部分功能模块的复用而使应用下架,导致开发人员难以提前规避。
发明内容
基于此,有必要针对上述技术问题,提供一种应用程序相似度的检测方法、装置、计算机设备和存储介质。
一种应用程序相似度的检测方法,所述方法包括:
获取待检测应用程序对应的可执行文件;
获取所述可执行文件包含的多个对象的对象名和对象属性信息,以及所述可执行文件对应的运行权限信息;所述多个对象包括类、包、方法和字符串中至少两种;
根据多个对象的对象名、对象属性信息和所述运行权限信息,得到所述待检测应用程序对应的多个目标特征因子;
根据所述目标特征因子与特征库中的样本特征因子的相似度,得到所述待检测应用程序对应的相似度检测结果;所述特征库基于应用平台中上架应用程序对应的特征因子构建,所述样本特征因子包括所述上架应用程序对应的特征因子。
可选地,所述根据所述目标特征因子与特征库中的样本特征因子的相似度,得到所述待检测应用程序对应的相似度检测结果,包括:
确定所述待检测应用对应的应用类别;
采用所述目标特征因子,与特征库中属于所述应用类别的上架应用程序对应的样本特征因子进行交集运算,得到所述目标特征因子中的与样本特征因子匹配的匹配特征因子;
计算所述匹配特征因子与所述应用类别包含的全部样本特征因子的比例,得到所述目标特征因子与所述应用类别的样本特征因子的相似度;
根据所述相似度,得到所述待检测应用程序对应的相似度检测结果。
可选地,所述根据所述相似度,得到所述待检测应用程序对应的相似度检测结果,包括:
当所述相似度大于或等于预设阈值时,确定所述匹配特征因子关联的待检测应用程序的目标应用模块,并生成相似度检测结果;
其中,所述相似度检测结果包括所述目标应用模块,以及,包含与所述匹配特征因子对应的样本特征因子的上架应用程序。
可选地,所述特征库通过如下方式得到:
获取应用平台中的上架应用程序及其对应的可执行文件,作为样本可执行文件;
获取所述样本可执行文件包含的多个对象的对象名和对象属性信息,以及样本可执行文件对应的运行权限信息;
根据所述样本可执行文件对应的多个对象的对象名、对象属性信息和运行权限信息,得到上架应用程序对应的样本特征因子,并建立所述特征库。
可选地,在所述获取应用平台中的上架应用程序的步骤之后,所述方法还包括:
根据应用分类规则,将所述应用平台中的多个上架应用程序分类至对应的应用类别中;
所述根据所述样本可执行文件对应的多个对象的对象名、对象属性信息和运行权限信息,得到上架应用程序对应的样本特征因子,包括:
针对每个应用类别,根据其中包含的至少一个样本可执行文件对应的多个对象的对象名、对象属性信息和运行权限信息,得到该应用类别的上架应用程序对应的样本特征因子。
可选地,所述针对每个应用类别,根据其中包含的至少一个样本可执行文件对应的多个对象的对象名、对象属性信息和运行权限信息,得到该应用类别的上架应用程序对应的样本特征因子,包括:
针对每个应用类别包含的至少一个样本可执行文件对应的多个对象的对象名和对象属性信息,将其中与第三方资源库关联的特征因子滤除;
将滤除后的特征因子和所述运行权限信息,作为该应用类别的上架应用程序对应的样本特征因子。
可选地,所述获取样本可执行文件包含的多个对象的对象名和对象属性信息,以及样本可执行文件对应的运行权限信息,包括:
采用第一特征因子提取器获取样本可执行文件对应的对象名和对象属性信息;
采用第二特征因子提取器获取样本可执行文件对应的运行权限。
一种应用程序相似度的检测装置,所述装置包括:
可执行文件获取模块,用于获取待检测应用程序对应的可执行文件;
对象信息获取模块,用于获取所述可执行文件包含的多个对象的对象名和对象属性信息,以及所述可执行文件对应的运行权限信息;所述多个对象包括类、包、方法和字符串中至少两种;
目标特征因子获取模块,用于根据多个对象的对象名、对象属性信息和所述运行权限信息,得到所述待检测应用程序对应的多个目标特征因子;
检测结果生成模块,用于根据所述目标特征因子与特征库中的样本特征因子的相似度,得到所述待检测应用程序对应的相似度检测结果;所述特征库基于应用平台中上架应用程序对应的特征因子构建,所述样本特征因子包括所述上架应用程序对应的特征因子。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述方法的步骤。
上述一种应用程序相似度的检测方法、装置、计算机设备和存储介质,通过获取待检测应用程序对应的可执行文件;获取可执行文件包含的多个对象的对象名和对象属性信息,以及可执行文件对应的运行权限信息,根据多个对象的对象名、对象属性信息和运行权限信息,得到待检测应用程序对应的多个目标特征因子,根据目标特征因子与特征库中的样本特征因子的相似度,得到待检测应用程序对应的相似度检测结果,实现了根据多种特征因子对应用相似度进行提前预测,防止因相似度过高而被应用平台下架,并且,通过采用应用程序的多个特征因子进行匹配,有效提高相似应用程序的检测准确度与检测效率。
附图说明
图1为一个实施例中一种应用程序相似度的检测方法的应用环境图;
图2为一个实施例中一种应用程序相似度的检测方法的流程示意图;
图3为一个实施例中计算相似度步骤的流程示意图;
图4为一个实施例中一种特征库构建步骤的流程示意图;
图5为一个实施例中另一种特征库构建步骤的流程示意图;
图6为一个实施例中一种相似百分比计算步骤的流程示意图;
图7为一个实施例中一种应用程序相似度的检测装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的一种应用程序相似度的检测方法,可以应用于如图1所示的应用环境中。其中,终端102可以通过网络与应用平台104进行通信,在应用平台中可以包括一个或多个上架应用程序。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、平板电脑和便携式可穿戴设备,应用平台104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种应用程序相似度的检测方法,本实施例以该方法应用于图1中的终端102进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
步骤201,获取待检测应用程序对应的可执行文件。
在实际应用中,可以获取待检测应用程序的可执行文件,其中,可执行文件可以是指包含应用程序全部操作指令和运行时数据的文件,例如dex文件、exe文件等;待检测应用程序可以是待上架的应用程序,即将要投放至应用平台的应用程序,当然,待检测应用程序也可以是任意可以完成指定工作任务的应用程序。
步骤202,获取所述可执行文件包含的多个对象的对象名和对象属性信息,以及所述可执行文件对应的运行权限信息;所述多个对象包括类、包、方法和字符串中至少两种。
作为一示例,可执行文件中可以包含多个对象,多个对象可以是可执行文件中不同类型的信息,例如包(package)、类(class)、方法(method)和字符(String)。
在具体实现中,可以获取可执行文件包含的多个对象的对象名、对象属性信息和可执行文件对应的运行权限信息(permission),在多个对象中,可以至少包括两种类型。其中,多个对象的对象名和/或对象属性信息可以采用列表方式组织,例如包名列表、类名列表、方法列表、字符串列表、属性列表。
步骤203,根据多个对象的对象名、对象属性信息和所述运行权限信息,得到所述待检测应用程序对应的多个目标特征因子。
具体的,可以根据多个对象的对象名、对象属性信息,以及可执行文件对应的运行权限信息后,得到检测应用程序对应的多个目标特征因子。具体而言,可以直接将多个对象名、对象属性信息,以及运行权限信息确定为目标特征因子,或者,也可以对多个对象名、对象属性信息、运行权限信息进行预处理后,将处理结果确定为目标特征因子,其中,预处理可以包括以下任一项或多项:筛选、去重、修改。
步骤204,根据所述目标特征因子与特征库中的样本特征因子的相似度,得到所述待检测应用程序对应的相似度检测结果;所述特征库基于应用平台中上架应用程序对应的特征因子构建,所述样本特征因子包括所述上架应用程序对应的特征因子。
作为一示例,应用平台可以是提供多种应用程序的服务端,不同的应用开发者可以将开发成功的应用程序投放至应用平台中,用户可以根据需求从应用平台中下载应用并进行使用。
在实际应用中,可以设置有特征库,该特征库根据应用平台中上架应用平台对应的特征因子构建,在特征库中的多个样本特征因子,包括了上架应用程序对应的特征因子。
当获取到待检测应用程序的目标特征因子后,可以计算目标特征因子与特征库中样本特征因子的相似度,并根据该相似度,得到待检测应用程序对应的相似度检测结果。其中,通过计算目标特征因子与样本特征因子之间的相似度,能够对待检测应用与上架应用的相似程度进行量化,令开发人员可以更直观地了解待检测应用与已开发应用之间的相似度。
在本申请实施例中,通过获取待检测应用程序对应的可执行文件,获取可执行文件包含的多个对象的对象名和对象属性信息,以及可执行文件对应的运行权限信息,根据多个对象的对象名、对象属性信息和运行权限信息,得到待检测应用程序对应的多个目标特征因子,根据目标特征因子与特征库中的样本特征因子的相似度,得到待检测应用程序对应的相似度检测结果,实现了根据多种特征因子对应用相似度进行提前预测,防止因相似度过高而被应用平台下架,并且,通过采用应用程序的多个特征因子进行匹配,有效提高相似应用程序的检测准确度与检测效率。
在一个实施例中,如图3所示,所述根据所述目标特征因子与特征库中的样本特征因子的相似度,得到所述待检测应用程序对应的相似度检测结果,可以包括如下步骤:
步骤301,确定所述待检测应用对应的应用类别。
作为一示例,应用类别可以根据多种应用分类规则设置,如根据应用适用场景进行分类,可以分为游戏类、阅读类、社交类、拍摄美化类、导航类、旅游住宿类、购物类、理财类、运动健康类、商务类等;如根据应用适用年龄进行分类,可以分为儿童类、青少年类、成人类、老人类等;或者,每个上架应用程序可以单独划分为一个应用类别。开发人员可以根据相似度比对需求,确定适用于待检测应用的应用分类规则。
在具体实现中,可以确定待检测应用对应的应用类别,具体而言,待检测应用中可以设置有应用类别标识,通过读取该应用类别标识,可以确定应用类别。
步骤302,采用所述目标特征因子,与特征库中属于所述应用类别的上架应用程序对应的样本特征因子进行交集运算,得到所述目标特征因子中的与样本特征因子匹配的匹配特征因子。
在实际应用中,特征库中的多个样本特征因子可以根据应用类别进行划分,当确定应用类别后,可以采用目标特征因子与特征库中属于该应用类别的上架应用程序对应的特征因子进行交集运算,进而得到在目标特征因子中,与样本特征因子匹配的匹配特征因子。其中,与样本特征因子匹配,可以是指与样本特征因子相同;当目标特征因子与样本特征因子为对象名时,与样本特征因子匹配,可以是指目标特征因子对应的对象名与样本特征因子对应的对象名相同或相似度超过预设阈值,例如存在多个相同的字符。
步骤303,计算所述匹配特征因子与所述应用类别包含的全部样本特征因子的比例,得到所述目标特征因子与所述应用类别的样本特征因子的相似度。
在得到匹配特征因子后,可以计算匹配特征因子与该应用类别所包含的全部样本特征因子的比例,并将该比例确定为目标特征因子与该应用类别的样本特征因子的相似度。
例如,目标特征因子的数量为A1,应用类别中包含的全部样本特征因子数量为B1,对目标特征因子与样本特征因子进行交集运算后,得到目标特征因子中,匹配特征因子的数量为A2,则目标特征因子与应用类别的样本特征因子的相似度为A2/B1
步骤304,根据所述相似度,得到所述待检测应用程序对应的相似度检测结果。
在获取相似度后,可以根据该相似度得到针对待检测应用程序的相似度检测结果。
在本实施例中,通过采用所述目标特征因子,与特征库中属于对应应用类别的上架应用程序对应的样本特征因子进行交集运算,得到目标特征因子中的与样本特征因子匹配的匹配特征因子,计算匹配特征因子与应用类别包含的全部样本特征因子的比例,根据相似度,得到待检测应用程序对应的相似度检测结果,实现了与指定应用类别对应的特征因子进行相似度计算,在提高相似度计算效率的同时,能够按照不同的计算策略,针对性地确定待检测应用与特定类别应用的相似度。
在一个实施例中,所述根据所述相似度,得到所述待检测应用程序对应的相似度检测结果,包括:
当所述相似度大于或等于预设阈值时,确定所述匹配特征因子关联的待检测应用程序的目标应用模块,并生成相似度检测结果;其中,所述相似度检测结果包括所述目标应用模块,以及,包含与所述匹配特征因子对应的样本特征因子的上架应用程序。
在具体实现中,目标特征因子可以与应用模块关联,即特征因子与应用模块之间可以存在对应关系,通过对象名、对象属性信息或运行权限信息,可以定位到与该对象或运行权限关联的应用模块。
在得到相似度后,可以判断相似度是否大于或等于预设阈值,当相似度大于或等于预设阈值时,可以判定存在与待检测应用程序相似的一个或多个上架应用程序,基于此,针对导致待检测应用程序被判定为相似的应用模块,可以通过获取匹配特征因子所关联的目标应用模块确定,并且,针对与匹配特征因子对应的样本特征因子(即与匹配特征因子相同或相似的样本特征因子),可以确定包含该样本特征因子的上架应用程序,并生成包含目标应用模块和上架应用程序的相似度检测结果。
在本实施例中,通过确定匹配特征因子关联的待检测应用程序的目标应用模块,并生成包括目标应用模块,以及,包含与匹配特征因子对应的样本特征因子的上架应用程序的相似度检测结果,实现了相似应用模块的定位,开发人员可以根据相似度检测结果思考相关应对策略。
在一个实施例中,所述方法还可以包括如下步骤:
获取所述匹配特征因子对应的重命名信息,根据所述重命名信息生成修改建议,并进行反馈。
作为一示例,重命名信息可以是针对特征因子的重新命名建议。
在实际应用中,可以预先针对待检测应用程序的多个特征因子设置候选的重命名信息,在设置重命名信息时,针对不同类型的特征因子,开发人员可以预先配置不同的重命名规则,进而可以根据该重命名规则为特征因子生成重命名信息,例如针对类对应的对象名,可以单独设置一个重命名规则。当然,也可以为多个类型的特征因子设置统一的重命名规则。
当相似度大于或等于预设阈值时,可以获取匹配特征因子对应的重命名信息,并根据生成包含该重命名信息的修改建议,并反馈至相应的客户端。在一个示例中,修改建议可以包含在相似度检测结果中,使目标应用模块、上架应用程序和修改建议一起发送至客户端,开发人员即可查看修改建议并确定是否采纳。
在本实施例中,根据重命名信息生成修改建议并进行反馈,能够使开发人员根据重命名信息对待检测应用的特征因子进行及时的修改,避免因功能模块的复用而导致应用被应用平台下架。
在一个实施例中,如图4所示,特征库可以通过如下步骤构建:
步骤401,获取应用平台中的上架应用程序及其对应的可执行文件,作为样本可执行文件。
在实际应用中,可以获取应用平台中的上架应用程序,并提取上架应用程序的可执行文件作为样本执行文件。具体而言,可以获取上架应用程序对应的应用程序包,并可以通过反编译工具从应用程序包中提取可执行文件,其中,应用程序包可以是安卓应用程序包(Android application package)。当然,待检测应用程序对应的可执行文件可以采用该方法进行提取。
步骤402,获取所述样本可执行文件包含的多个对象的对象名和对象属性信息,以及样本可执行文件对应的运行权限信息。
在得到样本可执行文件后,可以获取样本可执行文件包含的多个对象的对象名、对象属性信息以及样本可执行文件对应的运行权限信息,其中,样本可执行文件包含的多个对象可以是可执行文件中不同类型的信息,例如包、类、方法和字符。在多个对象中,可以至少包括两种类型。
步骤403,根据所述样本可执行文件对应的多个对象的对象名、对象属性信息和运行权限信息,得到上架应用程序对应的样本特征因子,并建立所述特征库。
具体的,可以根据样本可执行文件对应的多个对象的对象名、对象属性信息和运行权限信息,获取到上架应用程序对应的样本特征因子,并构建特征库。
在本实施例中,通过获取应用平台中的上架应用程序及其对应的可执行文件,作为样本可执行文件,根据样本可执行文件对应的多个对象的对象名、对象属性信息和运行权限信息,建立所述特征库,实现了基于应用可执行文件的对象名、对象属性信息和运行权限信息,构建用于比对应用相似度的特征库。
在一个实施例中,在所述获取应用平台中的上架应用程序的步骤之后,所述方法还可以包括如下步骤:
根据应用分类规则,将所述应用平台中的多个上架应用程序分类至对应的应用类别中。
在实际应用中,可以根据应用分类规则,将应用平台中的多个上架应用程序分类至多个应用类别中。当存在多种应用分类规则时,可以对上架应用程序进行多次分类,得到与各个应用分类规则对应的多个应用类别。
所述根据所述样本可执行文件对应的多个对象的对象名、对象属性信息和运行权限信息,得到上架应用程序对应的样本特征因子,包括:
针对每个应用类别,根据其中包含的至少一个样本可执行文件对应的多个对象的对象名、对象属性信息和运行权限信息,得到该应用类别的上架应用程序对应的样本特征因子。
将上架应用程序分类至各个应用类别后,针对每个应用类别,可以获取该应用类别中包含的至少一个样本可执行文件,根据样本可执行文件对应的多个对象的对象名、对象属性信息和运行权限信息,得到归属于该应用类别上架应用程序的样本特征因子。
在实际应用中,在来自于不同上架应用程序的多个对象的对象名、对象属性信息和运行权限信息中,可能存在相同的多个对象名、对象属性信息和运行权限信息,基于此,可以对所有对象名、对象属性信息和运行权限信息进行去重,针对相同的多个信息可以只保留其中的一个,减少样本特征因子的数据存储量。
在本实施例中,通过将应用平台中的多个上架应用程序分类至对应的应用类别中,并将每个应用类别中样本可执行文件对应的多个对象的对象名、对象属性信息和运行权限信息,作为该应用类别的上架应用程序对应的样本特征因子,实现了对上架应用程序对应的样本特征因子的分类,为后续的针对性比对提供基础。
在一个实施例中,所述获取样本可执行文件包含的多个对象的对象名和对象属性信息,以及样本可执行文件对应的运行权限信息,可以包括如下步骤:
采用第一特征因子提取器获取样本可执行文件对应的对象名和对象属性信息;采用第二特征因子提取器获取样本可执行文件对应的运行权限。
在实际应用中,对象名、对象属性信息和可执行文件对应的运行权限信息,可以通过不同的方式进行提取,具体的,可以采用采用第一特征因子提取器对可执行文件进行提取,获取对象名和对象属性信息,采用第二特征因子提取器对可执行文件进行提取,获取运行权限。
其中,第一特征因子提取器可以是反编译工具,例如,适用于安卓应用程序的反编译工具baksmali;第二特征因子提取器可以是编译打包工具,例如适用于安卓应用程序的编译打包工具Android Asset Packaging Tool(AAPT)。
在本实施例中,可以通过不同的特征因子提取器获取待检测应用程序的多个特征因子,能够构建多样化的特征库。
在一个实施例中,所述针对每个应用类别,根据其中包含的至少一个样本可执行文件对应的多个对象的对象名、对象属性信息和运行权限信息,得到该应用类别的上架应用程序对应的样本特征因子,包括:
针对每个应用类别包含的至少一个样本可执行文件对应的多个对象的对象名和对象属性信息,将其中与第三方资源库关联的特征因子滤除;将滤除后的特征因子和所述运行权限信息,作为该应用类别的上架应用程序对应的样本特征因子。
在应用程序的开发过程中,往往可以借助封装有不同方法、函数、程序等多种资源的第三方资源库,例如由不同网络公司开发并发布在公众平台的资源库。第三方资源库作为一种公共资源,为了减少对相似度检测的影响,可以对样本可执行文件对应的多个对象的对象名和对象属性信息进行滤除,将其中与第三方资源库关联的特征因子过滤掉,并将过滤后剩余的特征因子和运行权限信息,作为应用类别总上架应用程序对应的样本特征因子。
在本实施例中,通过与第三方资源库关联的特征因子滤除,将滤除后的特征因子和所述运行权限信息,作为该应用类别的上架应用程序对应的样本特征因子,能够在进行相似度计算时,降低第三方资源库带来的干扰。
为了使本领域技术人员能够更好地理解本申请,以下通过一个例子对本申请实施例加以示例性说明,但应当理解的是,本申请实施例并不限于此。
如图5所示,在进行特征库构建时,可以获取多个应用程序的APK文件(即本申请中的应用程序包),生成APK名单,遍历名单上的各个APK文件,通过反编译工具baksmali从各个APK文件中提取dex文件,得到多个dex文件,针对多个dex文件可以生成dex文件名单。
在得到dex文件名单后,可以通过反编译工具baksmali对dex文件中包含的多个对象,例如类(class)、方法(method)、字符(string)和属性(field)进行提取,同时,可以通过编译打包工具AAPT获取dex文件对应的运行权限信息(permission)。其中,可以预先将常用的第三方资源,例如图中的第三方资源1、第三方资源2、第三方资源3……等多种资源添加到过滤器中,采用该过滤器对提取得到的类、方法、字符和属性进行过滤,采用运行权限以及过滤后的类、方法、字符、属性,构建特征库。
如图6所示,在进行相似度匹配时,可以获取待检测程序对应APK文件,并通过反编译工具baksmali从该APK文件中获取dex文件,进一步地,可以通过baksmali获取dex文件包含的类、方法、字符和属性,通过AAPT提取运行权限信息,并将类、方法、字符、属性和运行权限信息与特征库中的特征因子进行比对,得到相似度百分比(即本申请中的相似度检测结果)。
应该理解的是,虽然图1-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种应用程序相似度的检测装置,包括:
可执行文件获取模块701,用于获取待检测应用程序对应的可执行文件;
对象信息获取模块702,用于获取所述可执行文件包含的多个对象的对象名和对象属性信息,以及所述可执行文件对应的运行权限信息;所述多个对象包括类、包、方法和字符串中至少两种;
目标特征因子获取模块703,用于根据多个对象的对象名、对象属性信息和所述运行权限信息,得到所述待检测应用程序对应的多个目标特征因子;
检测结果生成模块704,用于根据所述目标特征因子与特征库中的样本特征因子的相似度,得到所述待检测应用程序对应的相似度检测结果;所述特征库基于应用平台中上架应用程序对应的特征因子构建,所述样本特征因子包括所述上架应用程序对应的特征因子。
在一个实施例中,所述检测结果生成模块704中的样本特征因子的相似度,得到所述待检测应用程序对应的相似度检测结果,包括:
应用类别确定子模块,用于确定所述待检测应用对应的应用类别;
匹配特征因子确定子模块,用于采用所述目标特征因子,与特征库中属于所述应用类别的上架应用程序对应的样本特征因子进行交集运算,得到所述目标特征因子中的与样本特征因子匹配的匹配特征因子;
比例计算子模块,用于计算所述匹配特征因子与所述应用类别包含的全部样本特征因子的比例,得到所述目标特征因子与所述应用类别的样本特征因子的相似度;
相似度处理子模块,用于根据所述相似度,得到所述待检测应用程序对应的相似度检测结果。
在一个实施例中,所述相似度处理子模块,包括:
目标应用模块确定单元,用于当所述相似度大于或等于预设阈值时,确定所述匹配特征因子关联的待检测应用程序的目标应用模块,并生成相似度检测结果;
其中,所述相似度检测结果包括所述目标应用模块,以及,包含与所述匹配特征因子对应的样本特征因子的上架应用程序。
在一个实施例中,所述特征库通过装置中的如下模块构建:
样本可执行文件获取模块,用于获取应用平台中的上架应用程序及其对应的可执行文件,作为样本可执行文件;
样本对象信息提取模块,用于获取所述样本可执行文件包含的多个对象的对象名和对象属性信息,以及样本可执行文件对应的运行权限信息;
特征库构建模块,用于根据所述样本可执行文件对应的多个对象的对象名、对象属性信息和运行权限信息,得到上架应用程序对应的样本特征因子,并建立所述特征库。
在一个实施例中,所述装置还包括:
分类模块,用于根据应用分类规则,将所述应用平台中的多个上架应用程序分类至对应的应用类别中;
所述特征库构建模块,包括:
类别特征因子提取子模块,用于针对每个应用类别,根据其中包含的至少一个样本可执行文件对应的多个对象的对象名、对象属性信息和运行权限信息,得到该应用类别的上架应用程序对应的样本特征因子。
在一个实施例中,所述根特征库构建模块,包括:
滤除子模块,用于针对每个应用类别包含的至少一个样本可执行文件对应的多个对象的对象名和对象属性信息,将其中与第三方资源库关联的特征因子滤除;
样本特征因子确定子模块,用于将滤除后的特征因子和所述运行权限信息,作为该应用类别的上架应用程序对应的样本特征因子。
在一个实施例中,所述样本对象信息提取模块,包括:
第一提取子模块,用于采用第一特征因子提取器获取样本可执行文件对应的对象名和对象属性信息;
第二提取子模块,用于采用第二特征因子提取器获取样本可执行文件对应的运行权限。
关于一种应用程序相似度的检测装置的具体限定可以参见上文中对于一种应用程序相似度的检测方法的限定,在此不再赘述。上述一种应用程序相似度的检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种应用程序相似度的检测方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取待检测应用程序对应的可执行文件;
获取所述可执行文件包含的多个对象的对象名和对象属性信息,以及所述可执行文件对应的运行权限信息;所述多个对象包括包对象、类、包、方法和字符串中至少两种;
根据多个对象的对象名、对象属性信息和所述运行权限信息,得到所述待检测应用程序对应的多个目标特征因子;
根据所述目标特征因子与特征库中的样本特征因子的相似度,得到所述待检测应用程序对应的相似度检测结果;所述特征库基于应用平台中上架应用程序对应的特征因子构建,所述样本特征因子包括所述上架应用程序对应的特征因子。
在一个实施例中,处理器执行计算机程序时还实现上述其他实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取待检测应用程序对应的可执行文件;
获取所述可执行文件包含的多个对象的对象名和对象属性信息,以及所述可执行文件对应的运行权限信息;所述多个对象包括包对象、类、包、方法和字符串中至少两种;
根据多个对象的对象名、对象属性信息和所述运行权限信息,得到所述待检测应用程序对应的多个目标特征因子;
根据所述目标特征因子与特征库中的样本特征因子的相似度,得到所述待检测应用程序对应的相似度检测结果;所述特征库基于应用平台中上架应用程序对应的特征因子构建,所述样本特征因子包括所述上架应用程序对应的特征因子。
在一个实施例中,计算机程序被处理器执行时还实现上述实施例中的其他步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种应用程序相似度的检测方法,其特征在于,所述方法包括:
获取待检测应用程序对应的可执行文件;
获取所述可执行文件包含的多个对象的对象名和对象属性信息,以及所述可执行文件对应的运行权限信息;所述多个对象包括类、包、方法和字符串中至少两种;
根据多个对象的对象名、对象属性信息和所述运行权限信息,得到所述待检测应用程序对应的多个目标特征因子;
根据所述目标特征因子与特征库中的样本特征因子的相似度,得到所述待检测应用程序对应的相似度检测结果;所述特征库基于应用平台中上架应用程序对应的特征因子构建,所述样本特征因子包括所述上架应用程序对应的特征因子。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标特征因子与特征库中的样本特征因子的相似度,得到所述待检测应用程序对应的相似度检测结果,包括:
确定所述待检测应用对应的应用类别;
采用所述目标特征因子,与特征库中属于所述应用类别的上架应用程序对应的样本特征因子进行交集运算,得到所述目标特征因子中的与样本特征因子匹配的匹配特征因子;
计算所述匹配特征因子与所述应用类别包含的全部样本特征因子的比例,得到所述目标特征因子与所述应用类别的样本特征因子的相似度;
根据所述相似度,得到所述待检测应用程序对应的相似度检测结果。
3.根据权利要求2所述的方法,其特征在于,所述根据所述相似度,得到所述待检测应用程序对应的相似度检测结果,包括:
当所述相似度大于或等于预设阈值时,确定所述匹配特征因子关联的待检测应用程序的目标应用模块,并生成相似度检测结果;
其中,所述相似度检测结果包括所述目标应用模块,以及,与所述匹配特征因子对应的样本特征因子的上架应用程序。
4.根据权利要求1所述的方法,其特征在于,所述特征库通过如下方式得到:
获取应用平台中的上架应用程序及其对应的可执行文件,作为样本可执行文件;
获取所述样本可执行文件包含的多个对象的对象名和对象属性信息,以及样本可执行文件对应的运行权限信息;
根据所述样本可执行文件对应的多个对象的对象名、对象属性信息和运行权限信息,得到上架应用程序对应的样本特征因子,并建立所述特征库。
5.根据权利要求4所述的方法,其特征在于,在所述获取应用平台中的上架应用程序的步骤之后,所述方法还包括:
根据应用分类规则,将所述应用平台中的多个上架应用程序分类至对应的应用类别中;
所述根据所述样本可执行文件对应的多个对象的对象名、对象属性信息和运行权限信息,得到上架应用程序对应的样本特征因子,包括:
针对每个应用类别,根据其中包含的至少一个样本可执行文件对应的多个对象的对象名、对象属性信息和运行权限信息,得到该应用类别的上架应用程序对应的样本特征因子。
6.根据权利要求5所述的方法,其特征在于,所述针对每个应用类别,根据其中包含的至少一个样本可执行文件对应的多个对象的对象名、对象属性信息和运行权限信息,得到该应用类别的上架应用程序对应的样本特征因子,包括:
针对每个应用类别包含的至少一个样本可执行文件对应的多个对象的对象名和对象属性信息,将其中与第三方资源库关联的特征因子滤除;
将滤除后的特征因子和所述运行权限信息,作为该应用类别的上架应用程序对应的样本特征因子。
7.根据权利要求4所述的方法,其特征在于,所述获取样本可执行文件包含的多个对象的对象名和对象属性信息,以及样本可执行文件对应的运行权限信息,包括:
采用第一特征因子提取器获取样本可执行文件对应的对象名和对象属性信息;
采用第二特征因子提取器获取样本可执行文件对应的运行权限。
8.一种应用程序相似度的检测装置,其特征在于,所述装置包括:
可执行文件获取模块,用于获取待检测应用程序对应的可执行文件;
对象信息获取模块,用于获取所述可执行文件包含的多个对象的对象名和对象属性信息,以及所述可执行文件对应的运行权限信息;所述多个对象包括类、包、方法和字符串中至少两种;
目标特征因子获取模块,用于根据多个对象的对象名、对象属性信息和所述运行权限信息,得到所述待检测应用程序对应的多个目标特征因子;
检测结果生成模块,用于根据所述目标特征因子与特征库中的样本特征因子的相似度,得到所述待检测应用程序对应的相似度检测结果;所述特征库基于应用平台中上架应用程序对应的特征因子构建,所述样本特征因子包括所述上架应用程序对应的特征因子。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
CN202011260663.9A 2020-11-12 2020-11-12 应用程序相似度的检测方法、装置和计算机设备 Pending CN112346779A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011260663.9A CN112346779A (zh) 2020-11-12 2020-11-12 应用程序相似度的检测方法、装置和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011260663.9A CN112346779A (zh) 2020-11-12 2020-11-12 应用程序相似度的检测方法、装置和计算机设备

Publications (1)

Publication Number Publication Date
CN112346779A true CN112346779A (zh) 2021-02-09

Family

ID=74362640

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011260663.9A Pending CN112346779A (zh) 2020-11-12 2020-11-12 应用程序相似度的检测方法、装置和计算机设备

Country Status (1)

Country Link
CN (1) CN112346779A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104778409A (zh) * 2015-04-16 2015-07-15 电子科技大学 一种Android应用软件相似性的检测方法及装置
US20160321453A1 (en) * 2013-12-30 2016-11-03 Beijing Qihoo Technology Company Limited Method and device for detecting malicious code in an intelligent terminal
CN109800575A (zh) * 2018-12-06 2019-05-24 成都网安科技发展有限公司 一种Android应用程序的安全检测方法
CN110704104A (zh) * 2019-10-14 2020-01-17 北京智游网安科技有限公司 一种应用仿冒检测方法、智能终端及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160321453A1 (en) * 2013-12-30 2016-11-03 Beijing Qihoo Technology Company Limited Method and device for detecting malicious code in an intelligent terminal
CN104778409A (zh) * 2015-04-16 2015-07-15 电子科技大学 一种Android应用软件相似性的检测方法及装置
CN109800575A (zh) * 2018-12-06 2019-05-24 成都网安科技发展有限公司 一种Android应用程序的安全检测方法
CN110704104A (zh) * 2019-10-14 2020-01-17 北京智游网安科技有限公司 一种应用仿冒检测方法、智能终端及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张希远;张刚;沈立炜;彭鑫;赵文耘;: "多维度的安卓应用相似度分析", 计算机科学, no. 03, 15 March 2016 (2016-03-15), pages 199 - 205 *

Similar Documents

Publication Publication Date Title
US10481875B2 (en) Generation of an application from template
CN110990020A (zh) 一种软件编译方法、装置及电子设备和存储介质
CN109871691A (zh) 基于权限的进程管理方法、系统、设备及可读存储介质
CN109614238B (zh) 一种目标对象识别方法、装置、系统及可读存储介质
CN108399124B (zh) 应用测试方法、装置、计算机设备和存储介质
CA3152837A1 (en) Simulator detection method and system
CN108459964B (zh) 测试用例选择方法、装置、设备以及计算机可读存储介质
US20210073107A1 (en) Testing source code changes
US9921827B1 (en) Developing versions of applications based on application fingerprinting
US20130212115A1 (en) Tag inheritance
US20180046441A1 (en) Code relatives detection
US10481996B2 (en) Hybrid code modification in intermediate language for software application
CN109271789B (zh) 恶意进程检测方法、装置、电子设备及存储介质
US20200026859A1 (en) Methods and systems for system call reduction
CN112685410A (zh) 业务规则校验方法、装置、计算机设备及存储介质
CN113504918A (zh) 设备树配置优化方法、装置、计算机设备和存储介质
CN112882769A (zh) 技能包数据处理方法、装置、计算机设备和存储介质
CN111597553A (zh) 病毒查杀中的进程处理方法、装置、设备及存储介质
US8769498B2 (en) Warning of register and storage area assignment errors
CN107729747A (zh) 一种面向二进制程序的堆溢出检测方法
US20230419705A1 (en) Computerized recognition of tabular data from an image
CN112346779A (zh) 应用程序相似度的检测方法、装置和计算机设备
KR20210069215A (ko) 빅데이터 분석을 최적화하는 사용자 인터페이스 방법
CN108089895B (zh) 一种插件中Activity的注册方法、装置、电子设备以及存储介质
CN115712571A (zh) 一种交互服务测试、装置、计算机设备及存储介质

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