CN108734215A - 软件分类方法及装置 - Google Patents

软件分类方法及装置 Download PDF

Info

Publication number
CN108734215A
CN108734215A CN201810489257.6A CN201810489257A CN108734215A CN 108734215 A CN108734215 A CN 108734215A CN 201810489257 A CN201810489257 A CN 201810489257A CN 108734215 A CN108734215 A CN 108734215A
Authority
CN
China
Prior art keywords
software
code
sorted
family
target
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
CN201810489257.6A
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.)
Shanghai Junpan Network Technology Co Ltd
Original Assignee
Shanghai Junpan Network 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 Shanghai Junpan Network Technology Co Ltd filed Critical Shanghai Junpan Network Technology Co Ltd
Priority to CN201810489257.6A priority Critical patent/CN108734215A/zh
Publication of CN108734215A publication Critical patent/CN108734215A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/74Reverse engineering; Extracting design information from source code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种软件分类方法及装置,所述方法包括:获得多个待分类软件的软件代码;根据各待分类软件的软件代码中调用***API的代码所在的位置,将各待分类软件的软件代码拆分为多个代码基因片段,得到包括所述多个待分类软件的代码基因片段的软件基因库;根据所述代码基因片段对所述软件基因库中的多个待分类软件进行聚类分析,将所述待分类软件划分为多个软件家族;为每个所述软件家族添加相应的家族标签。如此,可以实现根据软件代码本身对软件进行分类,使得软件的分类信息更加准确且分类信息无法伪造。

Description

软件分类方法及装置
技术领域
本申请涉及软件安全技术领域,具体而言,涉及一种软件分类方法及装置。
背景技术
随着信息技术的不断发展,应用在各种电子设备上的软件越来越多,各种软件内容供应商也越来越繁杂,相应地,软件管理及软件安全问题越来越受到重视。对软件进行有效地分类可以方便软件的管理,并可以使对恶意软件识别或防护更有针对性。例如,将同一个恶意软件内容供应商提供的软件分为一类,可以对这类型软件进行有针对性的识别过滤。但是现有技术中,通常仅根据软件代码本身之外的分类条件对软件进行分类,例如通过软件附带信息声称的软件类型或声称内容供应商,这些声称的分类条件的信息可能被伪造,导致软件分类不准确。
发明内容
为了克服现有技术中的上述不足,本申请的目的在于提供一种软件分类方法,所述方法包括:
获得多个待分类软件的软件代码;
根据各待分类软件的软件代码中调用***API的代码所在的位置,将各待分类软件的软件代码拆分为多个代码基因片段,得到包括所述多个待分类软件的代码基因片段的软件基因库;
根据所述代码基因片段对所述软件基因库中的多个待分类软件进行聚类分析,将所述待分类软件划分为多个软件家族;
为每个所述软件家族添加相应的家族标签。
可选地,所述根据各待分类软件的软件代码中调用***API的代码所在的位置,将各待分类软件的软件代码拆分为多个代码基因片段的步骤,包括:
针对每个待分类软件,获取该每个待分类软件的代码中调用***API的代码所在的位置,以相邻的两条调用***API的代码之间的部分作为一个代码基因片段,将每个所述待分类软件的代码拆分为多个代码基因片段。
可选地,所述获得多个待分类软件的软件代码可包括:
获取多个待分类软件,针对每个所述待分类软件,通过IDA反汇编工具对该待分类软件进行反编译,得到与该待分类软件对应的asm格式的软件代码。
可选地,所述根据所述代码基因片段对所述软件基因库中的多个待分类软件进行聚类分析,将所述待分类软件划分为多个软件家族的步骤,包括:
根据所述代码基因片段通过Affinity Propagation聚类算法对所述多个待分类软件进行聚类分析,将所述多个待分类软件划分为多个软件家族。
本申请的另一目的在于提供一种软件分类方法,所述方法包括:
获取待目标软件的软件代码;
根据所述目标软件的软件代码中调用***API的代码所在的位置,将所述目标软件的软件代码拆分为多个目标代码基因片段;
根据所述目标软件的目标代码基因片段,将所述目标软件与预设的软件基因库中的软件基因片段进行聚类分析,其中,所述软件基因库中包括多个软件家族,每个所述软件家族包括至少一个软件的代码基因片段,每个所述软件家族具有相应的家族标签;
根据聚类分析结果得到所述目标软件对应的软件家族的家族标签。
可选地,所述根据所述目标软件的软件代码中调用***API的代码所在的位置,将所述目标软件的软件代码拆分为多个目标代码基因片段的步骤,包括:
获取该目标软件的软件代码中调用***API的代码所在的位置,以相邻的两条调用***API的代码之间的部分作为一个代码基因片段,将所述目标软件的软件代码拆分为多个代码基因片段。
本申请的另一目的在于提供一种软件分类装置,所述装置包括:
获取模块,用于获得多个待分类软件的软件代码;
基因提取模块,根据各待分类软件的软件代码中调用***API的代码所在的位置,将各待分类软件的软件代码拆分为多个代码基因片段,得到包括所述多个待分类软件的代码基因片段的软件基因库;
聚类模块,用于根据所述代码基因片段对所述软件基因库中的多个待分类软件进行聚类分析,将所述待分类软件划分为多个软件家族;
标识模块,用于为每个所述软件家族添加相应的家族标签。
可选地,所述具体用于针对每个待分类软件,获取该每个待分类软件的代码中调用***API的代码所在的位置,以相邻的两条调用***API的代码之间的部分作为一个代码基因片段,将所述该每个待分类软件的代码拆分为多个代码基因片段。
本申请的另一目的在于提供一种软件分类装置,所述装置包括:
获取模块,用于获取待目标软件的软件代码;
基因提取模块,用于根据所述目标软件的软件代码中调用***API的代码所在的位置,将所述目标软件的软件代码拆分为多个目标代码基因片段;
聚类模块,用于根据所述目标软件的目标代码基因片段,将所述目标软件与预设的软件基因库中的软件基因片段进行聚类分析,其中,所述软件基因库中包括多个软件家族,每个所述软件家族包括至少一个软件的代码基因片段,每个所述软件家族具有相应的家族标签;
标识模块,用于根据聚类分析结果得到所述目标软件对应的软件家族的家族标签。
可选地,所述基因提取模块具体用于获取该目标软件的软件代码中调用***API的代码所在的位置,以相邻的两条调用***API的代码之间的部分作为一个代码基因片段,将所述目标软件的软件代码拆分为多个代码基因片段。
相对于现有技术而言,本申请具有以下有益效果:
本申请提供的软件分类方法及装置,通过根据软件代码调用的***API接口将软件划分成代码基因片段,根据代码基因片段进行聚类分析以软件进行分类。如此,可以实现根据软件代码本身对软件进行分类,使得软件的分类信息更加准确且分类信息无法伪造。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的电子设备的方框示意图;
图2为本申请第一实施例提供的软件分类方法的流程示意图;
图3为本申请第一实施例提供的软件分类装置的功能模块示意图;
图4为本申请第二实施例提供的软件分类方法的流程示意图;
图5为本申请第二实施例提供的软件分类装置的功能模块示意图。
图标:100-电子设备;110(210)-软件分类装置;111-第一获取模块;112-第一基因提取模块;113-第一聚类模块;114-第一标识模块;211-第二获取模块;212-第二基因提取模块;213-第二聚类模块;214-第二标识模块;120-存储器;130-处理器。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
请参照图1,图1是本实施例提供的一种电子设备100的方框示意图。所述电子设备100包括软件分类装置110(210)、存储器120、处理器130、通信单元140。
所述存储器120、处理器130以及通信单元140各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述软件分类装置110(210)包括至少一个可以软件或固件(firmware)的形式存储于所述存储器120中或固化在所述电子设备100的操作***(operatingsystem,OS)中的软件功能模块。所述处理器130用于执行所述存储器120中存储的可执行模块,例如所述软件分类装置110(210)所包括的软件功能模块及计算机程序等。
其中,所述存储器120可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器120用于存储程序,所述处理器130在接收到执行指令后,执行所述程序。
第一实施例
请参照图2,图2为应用于图1所示的电子设备100的一种应用信息获取方法的流程图,以下将对所述方法包括各个步骤进行详细阐述。
步骤S110,获得多个待分类软件的软件代码。
在本实施例中,所述待分类软件可以为PE类型的文件或者是ELF类型的文件。所述电子设备100在获取到获取多个待分类软件后,可以通过IDA反汇编工具将待分类软件反编译为asm格式的待处理代码,其中,所述IDA反汇编工具是一种交互式的反汇编程序插件,可以将软件反编译位汇编语言的格式。
通过步骤S110可以将所述多个待分类软件反编译成统一的asm格式,有利于之后步骤的聚类分析。
步骤S120,根据各待分类软件的软件代码中调用***API的代码所在的位置,将各待分类软件的软件代码拆分为多个代码基因片段,得到包括所述多个待分类软件的代码基因片段的软件基因库。
在本实施例中,需要对各待分类软件的软件代码进行拆分,拆分的原则是在正常运行的情况下(无外接终端或内部崩溃),无论任何输入,拆分出的每个代码片段应该是可以单独地完整被执行或者单独地完全不被执行,也就是说,拆分出的代码片段可做一个小的整体来表达,即拆分出的代码片段具有基因原子性。
经发明人研究发现,软件运行过程中会调用很多API,其中,如果调用的API为该软件本身API,则需要依赖该API返回值后续动作都可以在软件内部执行;如果调用的API为***API,则需要等待外部操作***的API返回值才能继续执行后续步骤。也就是说,相邻的两条调用***API的代码之间的部分通常在不调用***API时,可以完整地被执行。
故在本实施例中,根据各待分类软件的软件代码中调用***API的代码所在的位置,将各待分类软件的软件代码拆分为多个代码基因片段。具体地,在本实施例中,获取所述待处理代码中调用***API的代码所在的位置。以相邻的两条调用***API的代码之间的部分作为一个代码基因片段,将所述各待分类软件的软件代码拆分为多个代码基因片段。拆分后,所述多个待分类软件的代码基因片段组成了一个软件基因库。
步骤S130,根据所述代码基因片段对所述软件基因库中的多个待分类软件进行聚类分析,将所述待分类软件划分为多个软件家族。
在本实施例中,根据所述代码基因片段通过Affinity Propagation聚类算法对所述多个待分类软件进行聚类分析,将所述多个待分类软件划分为多个软件家族。
通过聚类算法,使所述电子设备100自动地先所述软件基因库中的各个软件进行聚类分析,根据所述代码基因片段之间的相似关系将所述多个待分类软件划分为多个软件家族。
步骤S140,为每个所述软件家族添加相应的家族标签。
经过步骤S130分类以后,所述电子设备100可以响应用户操作为每个所述软件家族添加响应的家族标签。这样最终形成的软件基因库中包括多个软件家族,每个所述软件家族包括至少一个软件的代码基因片段,每个所述软件家族具有相应的家族标签。在后续使用中,可以将需要识别的未知软件与该软件基因库中的软件做聚类分析,得出待识别的软件属于哪个软件家族。
相应地,请参照图3,本实施例还提供一种软件分类装置110,所述软件分类装置110包括第一获取模块111、第一基因提取模块112、第一聚类模块113及第一标识模块114。
所述第一获取模块111,用于获得多个待分类软件的软件代码;
本实施例中,所述第一获取模块111可用于执行图2所示的步骤S110(210),关于所述第一获取模块111的具体描述可参对所述步骤S110(210)的描述。。
所述第一基因提取模块112,根据各待分类软件的软件代码中调用***API的代码所在的位置,将各待分类软件的软件代码拆分为多个代码基因片段,得到包括所述多个待分类软件的代码基因片段的软件基因库;
本实施例中,所述第一基因提取模块112可用于执行图2所示的步骤S120,关于所述第一基因提取模块112的具体描述可参对所述步骤S120的描述。。
所述第一聚类模块113,用于根据所述代码基因片段对所述软件基因库中的多个待分类软件进行聚类分析,将所述待分类软件划分为多个软件家族;
本实施例中,所述第一聚类模块113可用于执行图2所示的步骤S130,关于所述第一聚类模块113的具体描述可参对所述步骤S130的描述。。
所述第一标识模块114,用于为每个所述软件家族添加相应的家族标签。
本实施例中,所述第一标识模块114可用于执行图2所示的步骤S140,关于所述第一标识模块114的具体描述可参对所述步骤S140的描述。。
可选地,所述基因提取模块具体用于针对每个待分类软件,获取该每个待分类软件的代码中调用***API的代码所在的位置,以相邻的两条调用***API的代码之间的部分作为一个代码基因片段,将所述该每个待分类软件的代码拆分为多个代码基因片段。
第二实施例
请参照图4,图4为本实施例提供的一种应用于图1所示的电子设备100的恶意软件识别方法的流程图,以下将对所述方法包括各个步骤进行详细阐述。
步骤S210,获取待目标软件的软件代码。
步骤S220,根据所述目标软件的软件代码中调用***API的代码所在的位置,将所述目标软件的软件代码拆分为多个目标代码基因片段;
其中,步骤S210和步骤S220中对所述目标软件的处理过程第一实施例中步骤S110(210)及步骤S120中对单个待分类软件的处理过程相似,详细请参见第一实施步骤S110(210)及步骤S120的描述。
例如,在步骤S220中,所述电子设备100可以获取该目标软件的软件代码中调用***API的代码所在的位置,以相邻的两条调用***API的代码之间的部分作为一个代码基因片段,将所述目标软件的软件代码拆分为多个代码基因片段。
步骤S230,根据所述目标软件的目标代码基因片段,将所述目标软件与预设的软件基因库中的软件基因片段进行聚类分析,其中,所述软件基因库中包括多个软件家族,每个所述软件家族包括至少一个软件的代码基因片段,每个所述软件家族具有相应的家族标签;
其中,本实施例中使用的所述软件基因库可以为第一实施例提供的软件基因库。在本实施例中,通过步骤S210及步骤S220提取到所述目标软件的目标代码基因片段后,与所述软件基因库中的代码基因片段进行聚类分析,可以得出所述目标软件与所述软件基因库中哪些软件的代码基因片段具有内在相似性。
步骤S240,根据聚类分析结果得到所述目标软件对应的软件家族的家族标签。
在本实施例中,所述电子设备100通过聚类分析得出所述目标软件属于哪个软件家族后,可以输出所述目标软件对应的软件家族的家族标签。
相应地,请参照图5,本实施例还提供一种软件分类装置210,所述软件分类装置110包括第二获取模块211、第二基因提取模块212、第二聚类模块213即第二标识模块214。
所述第二获取模块211,用于获取待目标软件的软件代码;
本实施例中,所述第二获取模块211可用于执行图4所示的步骤S210,关于所述第二获取模块211的具体描述可参对所述步骤S210的描述。
所述第二基因提取模块212,用于根据所述目标软件的软件代码中调用***API的代码所在的位置,将所述目标软件的软件代码拆分为多个目标代码基因片段;
本实施例中,所述第二基因提取模块212可用于执行图4所示的步骤S220,关于所述第二基因提取模块212的具体描述可参对所述步骤S220的描述。
所述第二聚类模块213,用于根据所述目标软件的目标代码基因片段,将所述目标软件与预设的软件基因库中的软件基因片段进行聚类分析,其中,所述软件基因库中包括多个软件家族,每个所述软件家族包括至少一个软件的代码基因片段,每个所述软件家族具有相应的家族标签;
本实施例中,所述第二聚类模块213可用于执行图4所示的步骤S230,关于所述第二聚类模块213的具体描述可参对所述步骤S230的描述。
所述第二标识模块214,用于根据聚类分析结果得到所述目标软件对应的软件家族的家族标签。
本实施例中,所述第二标识模块214可用于执行图4所示的步骤S240,关于所述第二标识模块214的具体描述可参对所述步骤S240的描述。
可选地所述第二基因提取模块212具体用于获取该目标软件的软件代码中调用***API的代码所在的位置,以相邻的两条调用***API的代码之间的部分作为一个代码基因片段,将所述目标软件的软件代码拆分为多个代码基因片段。
综上所述,本申请提供的软件分类方法及装置,通过根据软件代码调用的***API接口将软件划分成代码基因片段,根据代码基因片段进行聚类分析以软件进行分类。如此,可以实现根据软件代码本身对软件进行分类,使得软件的分类信息更加准确且分类信息无法伪造。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种软件分类方法,其特征在于,所述方法包括:
获得多个待分类软件的软件代码;
根据各待分类软件的软件代码中调用***API的代码所在的位置,将各待分类软件的软件代码拆分为多个代码基因片段,得到包括所述多个待分类软件的代码基因片段的软件基因库;
根据所述代码基因片段对所述软件基因库中的多个待分类软件进行聚类分析,将所述待分类软件划分为多个软件家族;
为每个所述软件家族添加相应的家族标签。
2.根据权利要求1所述的方法,其特征在于,所述根据各待分类软件的软件代码中调用***API的代码所在的位置,将各待分类软件的软件代码拆分为多个代码基因片段的步骤,包括:
针对每个待分类软件,获取该每个待分类软件的代码中调用***API的代码所在的位置,以相邻的两条调用***API的代码之间的部分作为一个代码基因片段,将每个所述待分类软件的代码拆分为多个代码基因片段。
3.根据权利要求1所述的方法,其特征在于,所述根据所述代码基因片段对所述软件基因库中的多个待分类软件进行聚类分析,将所述待分类软件划分为多个软件家族的步骤,包括:
根据所述代码基因片段通过Affinity Propagation聚类算法对所述多个待分类软件进行聚类分析,将所述多个待分类软件划分为多个软件家族。
4.根据权利要求1所述的方法,其特征在于,所述获得多个待分类软件的软件代码可包括:
获取多个待分类软件,针对每个所述待分类软件,通过IDA反汇编工具对该待分类软件进行反编译,得到与该待分类软件对应的asm格式的软件代码。
5.一种软件分类方法,其特征在于,所述方法包括:
获取待目标软件的软件代码;
根据所述目标软件的软件代码中调用***API的代码所在的位置,将所述目标软件的软件代码拆分为多个目标代码基因片段;
根据所述目标软件的目标代码基因片段,将所述目标软件与预设的软件基因库中的软件基因片段进行聚类分析,其中,所述软件基因库中包括多个软件家族,每个所述软件家族包括至少一个软件的代码基因片段,每个所述软件家族具有相应的家族标签;
根据聚类分析结果得到所述目标软件对应的软件家族的家族标签。
6.根据权利要求5所述的方法,其特征在于,所述根据所述目标软件的软件代码中调用***API的代码所在的位置,将所述目标软件的软件代码拆分为多个目标代码基因片段的步骤,包括:
获取该目标软件的软件代码中调用***API的代码所在的位置,以相邻的两条调用***API的代码之间的部分作为一个代码基因片段,将所述目标软件的软件代码拆分为多个代码基因片段。
7.一种软件分类装置,其特征在于,所述装置包括:
获取模块,用于获得多个待分类软件的软件代码;
基因提取模块,根据各待分类软件的软件代码中调用***API的代码所在的位置,将各待分类软件的软件代码拆分为多个代码基因片段,得到包括所述多个待分类软件的代码基因片段的软件基因库;
聚类模块,用于根据所述代码基因片段对所述软件基因库中的多个待分类软件进行聚类分析,将所述待分类软件划分为多个软件家族;
标识模块,用于为每个所述软件家族添加相应的家族标签。
8.根据权利要求7所述的装置,其特征在于,所述基因提取模块具体用于针对每个待分类软件,获取该每个待分类软件的代码中调用***API的代码所在的位置,以相邻的两条调用***API的代码之间的部分作为一个代码基因片段,将所述该每个待分类软件的代码拆分为多个代码基因片段。
9.一种软件分类装置,其特征在于,所述装置包括:
获取模块,用于获取待目标软件的软件代码;
基因提取模块,用于根据所述目标软件的软件代码中调用***API的代码所在的位置,将所述目标软件的软件代码拆分为多个目标代码基因片段;
聚类模块,用于根据所述目标软件的目标代码基因片段,将所述目标软件与预设的软件基因库中的软件基因片段进行聚类分析,其中,所述软件基因库中包括多个软件家族,每个所述软件家族包括至少一个软件的代码基因片段,每个所述软件家族具有相应的家族标签;
标识模块,用于根据聚类分析结果得到所述目标软件对应的软件家族的家族标签。
10.根据权利要求9所述的装置,其特征在于,所述基因提取模块具体用于获取该目标软件的软件代码中调用***API的代码所在的位置,以相邻的两条调用***API的代码之间的部分作为一个代码基因片段,将所述目标软件的软件代码拆分为多个代码基因片段。
CN201810489257.6A 2018-05-21 2018-05-21 软件分类方法及装置 Pending CN108734215A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810489257.6A CN108734215A (zh) 2018-05-21 2018-05-21 软件分类方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810489257.6A CN108734215A (zh) 2018-05-21 2018-05-21 软件分类方法及装置

Publications (1)

Publication Number Publication Date
CN108734215A true CN108734215A (zh) 2018-11-02

Family

ID=63937745

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810489257.6A Pending CN108734215A (zh) 2018-05-21 2018-05-21 软件分类方法及装置

Country Status (1)

Country Link
CN (1) CN108734215A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109508546A (zh) * 2018-11-12 2019-03-22 杭州安恒信息技术股份有限公司 一种基于软件基因的软件同源性分析方法和装置
CN111290775A (zh) * 2020-04-02 2020-06-16 麒麟软件有限公司 一种Linux***软件包类型自动分类方法及***
CN113536308A (zh) * 2021-06-11 2021-10-22 中国人民解放军战略支援部队信息工程大学 软件基因视角下多粒度信息融合的二进制代码溯源方法
CN114254316A (zh) * 2021-11-29 2022-03-29 上海戎磐网络科技有限公司 基于软件基因的软件识别方法、装置以及存储介质
WO2022121146A1 (zh) * 2020-12-07 2022-06-16 中山大学 一种代码片段重要性的判断方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005796A1 (en) * 2006-06-30 2008-01-03 Ben Godwood Method and system for classification of software using characteristics and combinations of such characteristics
US20110154495A1 (en) * 2009-12-21 2011-06-23 Stranne Odd Wandenor Malware identification and scanning
CN103902906A (zh) * 2013-12-25 2014-07-02 武汉安天信息技术有限责任公司 基于应用图标的移动终端恶意代码检测方法及***
CN104866765A (zh) * 2015-06-03 2015-08-26 康绯 基于行为特征相似性的恶意代码同源性分析方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005796A1 (en) * 2006-06-30 2008-01-03 Ben Godwood Method and system for classification of software using characteristics and combinations of such characteristics
US20110154495A1 (en) * 2009-12-21 2011-06-23 Stranne Odd Wandenor Malware identification and scanning
CN103902906A (zh) * 2013-12-25 2014-07-02 武汉安天信息技术有限责任公司 基于应用图标的移动终端恶意代码检测方法及***
CN104866765A (zh) * 2015-06-03 2015-08-26 康绯 基于行为特征相似性的恶意代码同源性分析方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HANJIN等: "《2017 International Conferenceon Cyber-Enabled Distributed Computingand Knowledge Discovery》", 30 December 2017 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109508546A (zh) * 2018-11-12 2019-03-22 杭州安恒信息技术股份有限公司 一种基于软件基因的软件同源性分析方法和装置
CN111290775A (zh) * 2020-04-02 2020-06-16 麒麟软件有限公司 一种Linux***软件包类型自动分类方法及***
WO2022121146A1 (zh) * 2020-12-07 2022-06-16 中山大学 一种代码片段重要性的判断方法和装置
CN113536308A (zh) * 2021-06-11 2021-10-22 中国人民解放军战略支援部队信息工程大学 软件基因视角下多粒度信息融合的二进制代码溯源方法
CN113536308B (zh) * 2021-06-11 2023-01-06 中国人民解放军战略支援部队信息工程大学 软件基因视角下多粒度信息融合的二进制代码溯源方法
CN114254316A (zh) * 2021-11-29 2022-03-29 上海戎磐网络科技有限公司 基于软件基因的软件识别方法、装置以及存储介质

Similar Documents

Publication Publication Date Title
CN108734215A (zh) 软件分类方法及装置
CN109271512B (zh) 舆情评论信息的情感分析方法、装置及存储介质
Fan et al. BreakDancer: Identification of genomic structural variation from paired‐end read mapping
CN108734012A (zh) 恶意软件识别方法、装置及电子设备
CN104243273A (zh) 即时通讯客户端显示信息的方法及设备和信息显示***
CN106897072A (zh) 业务工程调用方法、装置及电子设备
CN104580093A (zh) 网站通知消息的处理方法、装置及***
US20210342447A1 (en) Methods and apparatus for unknown sample classification using agglomerative clustering
CN108460259B (zh) 一种信息处理方法、装置及终端
CN112083973B (zh) 一种窗口关闭方法、装置、电子设备及存储介质
CN110119340A (zh) 异常监测方法、装置、电子设备和存储介质
CN109495479A (zh) 一种用户异常行为识别方法及装置
CN108512822B (zh) 一种数据处理事件的风险识别方法和装置
KR20150083627A (ko) 액티비티 문자열 분석에 의한 안드로이드 악성코드 검출 방법
Lee et al. Effective and reliable malware group classification for a massive malware environment
CN112738094A (zh) 可扩展的网络安全漏洞监测方法、***、终端及存储介质
CN111355628A (zh) 一种模型训练方法、业务识别方法、装置和电子装置
CN105378604A (zh) 趋势建议
CN105425997B (zh) 一种用户终端重启后的界面显示方法及用户终端
CN108874479B (zh) 通知栏消息展示方法、装置、用户终端及可读存储介质
CN112437034A (zh) 虚假终端检测方法和装置、存储介质及电子装置
CN103500311A (zh) 软件检测方法及***
CN103246846A (zh) 检测定制rom的安全性的方法和装置
CN107480240A (zh) 一种数据库模型及其数据处理方法
CN112541645B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20181102