1.一种识别恶意软件的方法,其特征在于,所述方法包括:
根据待检测的软件的源代码,获取所述软件的函数调用图;
根据所述函数调用图,生成所述软件的特征序列,所述特征序列包括至少一个特征的特征值,特征为预设函数库中的函数,所述特征的特征值为所述函数被所述软件调用的次数;
根据所述特征序列和随机森林,识别所述软件是否为恶意软件,所述随机森林包括至少一个决策树,决策树包括多个特征的基准特征值。
2.如权利要求1所述的方法,其特征在于,所述根据待检测的软件的源代码,获取所述软件的函数调用图,包括:
对待检测的软件的源代码进行反编译,得到所述软件的反编译代码;
解析所述反编译代码,得到所述软件的函数调用图。
3.如权利要求1所述的方法,其特征在于,所述根据所述函数调用图,生成所述软件的特征序列,包括:
根据所述函数调用图,获取预设函数库中的每个函数被所述软件调用的调用次数;
将所述每个函数的调用次数组成所述软件的特征序列。
4.如权利要求3所述的方法,其特征在于,所述特征还包括预设权限库中的权限,所述特征的特征值用于表示所述权限是否被所述软件访问的特征值;
所述将所述每个函数的调用次数组成所述软件的特征序列之前,还包括:
根据所述软件请求访问的权限,获取预设权限库中被所述软件请求访问的访问权限和未被所述软件请求访问的未访问权限;
将所述访问权限的特征值设置为第一数值,将所述未访问权限的特征值设置为第二数值;
所述将所述每个函数的调用次数组成所述软件的特征序列,包括:
将所述每个函数的调用次数、所述预设权限库中的每个权限的特征值组成所述软件的特征序列。
5.如权利要求1所述的方法,其特征在于,所述根据所述特征序列和随机森林,识别所述软件是否为恶意软件,包括:
根据随机森林包括的每个决策树和所述特征序列,识别所述软件是否为恶意软件,得到所述每个决策树对应的识别结果;
根据所述每个决策树的识别结果,统计识别结果为所述软件为恶意软件的第一结果数目和所述软件为非恶意软件的第二结果数目;
如果所述第一结果数目大于所述第二结果数目,确定所述软件为恶意软件;
如果所述第一结果数目不大于所述第二结果数目,确定所述软件为非恶意软件。
6.如权利要求5所述的方法,其特征在于,所述随机森林中的决策树包括多个特征路径,所述多个特征路径中的每个特征路径包括多个基准特征值,所述每个特征路径对应一个识别结果;
所述根据随机森林包括的每个决策树和所述特征序列,识别所述软件是否为恶意软件,得到所述每个决策树的识别结果,包括:
根据所述特征序列,从第一决策树包括的多个特征路径中获取与所述特征序列匹配的特征路径,所述第一决策树为所述随机森林中的任一决策树;
将所述选择的特征路径对应的识别结果作为所述第一决策树的识别结果。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
根据样本特征序列集合,确定所述样本特征序列集合中的部分特征中的每个特征在决策树中的位置以及所述每个特征的基准特征值,所述样本特征序列集合包括至少一个恶意软件的样本特征序列和至少一个非恶意软件的样本特征序列;
根据所述每个特征在决策树中的位置,将所述每个特征的基准特征值组成决策树。
8.一种识别恶意软件的装置,其特征在于,所述装置包括:
获取模块,用于根据待检测的软件的源代码,获取所述软件的函数调用图;
生成模块,用于根据所述函数调用图,生成所述软件的特征序列,所述特征序列包括至少一个特征的特征值,特征为预设函数库中的函数,所述特征的特征值为所述函数被所述软件调用的次数;
识别模块,用于根据所述特征序列和随机森林,识别所述软件是否为恶意软件,所述随机森林包括至少一个决策树,决策树包括多个特征的基准特征值。
9.如权利要求8所述的装置,其特征在于,所述获取模块,包括:
反编译单元,用于对待检测的软件的源代码进行反编译,得到所述软件的反编译代码;
解析单元,用于解析所述反编译代码,得到所述软件的函数调用图。
10.如权利要求8所述的装置,其特征在于,所述生成模块,包括:
第一获取单元,用于根据所述函数调用图,获取预设函数库中的每个函数被所述软件调用的调用次数;
组成单元,用于将所述每个函数的调用次数组成所述软件的特征序列。
11.如权利要求10所述的装置,其特征在于,所述特征还包括预设权限库中的权限,所述特征的特征值用于表示所述权限是否被所述软件访问的特征值;
所述生成模块还包括:
第二获取单元,用于根据所述软件请求访问的权限,获取预设权限库中被所述软件请求访问的访问权限和未被所述软件请求访问的未访问权限;
设置单元,用于将所述访问权限的特征值设置为第一数值,将所述未访问权限的特征值设置为第二数值;
所述组成单元,用于将所述每个函数的调用次数、所述预设权限库中的每个权限的特征值组成所述软件的特征序列。
12.如权利要求8所述的装置,其特征在于,所述识别模块,包括:
识别单元,用于根据随机森林包括的每个决策树和所述特征序列,识别所述软件是否为恶意软件,得到所述每个决策树对应的识别结果;
统计单元,用于根据所述每个决策树的识别结果,统计识别结果为所述软件为恶意软件的第一结果数目和所述软件为非恶意软件的第二结果数目;
第一确定单元,用于如果所述第一结果数目大于所述第二结果数目,确定所述软件为恶意软件;
第二确定单元,用于如果所述第一结果数目不大于所述第二结果数目,确定所述软件为非恶意软件。
13.如权利要求12所述的装置,其特征在于,所述随机森林中的决策树包括多个特征路径,所述多个特征路径中的每个特征路径包括多个基准特征值,所述每个特征路径对应一个识别结果;
所述识别单元,包括:
获取子单元,用于根据所述特征序列,从第一决策树包括的多个特征路径中获取与所述特征序列匹配的特征路径,所述第一决策树为所述随机森林中的任一决策树;
作为子单元,用于将所述选择的特征路径对应的识别结果作为所述第一决策树的识别结果。
14.如权利要求8所述的装置,其特征在于,所述装置还包括:
确定模块,用于根据样本特征序列集合,确定所述样本特征序列集合中的部分特征中的每个特征在决策树中的位置以及所述每个特征的基准特征值,所述样本特征序列集合包括至少一个恶意软件的样本特征序列和至少一个非恶意软件的样本特征序列;
组成模块,用于根据所述每个特征在决策树中的位置,将所述每个特征的基准特征值组成决策树。