发明内容
本发明要解决的技术问题是提供一种样本文件分析方法及装置,从二进制格式的样本文件中提取可见字符串,作为判断文件是否是病毒的依据,并加以对可见字符串的有效性过滤,有效减小样本文件的分析结果集合,大大提升病毒查杀效率。
为解决上述技术问题,本发明的实施例提供一种样本文件分析方法,包括:
获得二进制格式的样本文件;
将所述二进制格式的样本文件映射到内存;
对映射到内存的所述二进制格式的样本文件进行全文字符串过滤分析,得到过滤后的二进制格式的样本文件;
输出所述过滤后的二进制格式的样本文件。
其中,所述对映射到内存的所述二进制格式的样本文件进行全文字符串过滤分析,得到过滤后的二进制格式的样本文件的步骤包括:
根据字符编码集和病毒家族库的特征串,对映射到内存的所述二进制格式的样本文件进行全文字符串匹配,获得匹配不成功的字符串;
过滤掉所述匹配不成功的字符串,得到过滤后的二进制格式的样本文件。
其中,所述根据字符编码集和病毒家族库的特征串,对映射到内存的所述二进制格式的样本文件进行全文字符串匹配的步骤包括:
对映射到内存的所述二进制格式的样本文件与所述字符编码集中的字符串相匹配,获得匹配不成功的无意义的字符串以及匹配成功的字符串对应的样本文件;
对所述匹配成功的字符串对应的样本文件与所述病毒家族库中的特征串进行匹配,获得匹配不成功的待过滤串。
其中,对所述匹配成功的字符串组成的样本文件与所述病毒家族库中的特征串进行匹配,获得匹配不成功的待过滤串的步骤包括:
计算所述匹配成功的字符串对应的样本文件中的字符串的哈希值;
计算所述病毒家族库中的特征串的哈希值;
将所述二进制格式的样本文件中的字符串的哈希值与所述病毒家族库中的特征串的哈希值进行比较,若不相等,认为相比较的两个字符串匹配不成功,并获得匹配不成功的待过滤串,否则认为匹配成功。
其中,将所述二进制格式的样本文件中的字符串的哈希值与所述病毒家族库中的特征串的哈希值进行比较的步骤包括:
采用一条处理器指令将所述二进制格式的样本文件中的字符串的哈希值与所述病毒家族库中的特征串的哈希值进行比较。
其中,所述过滤掉所述匹配不成功的字符串,得到过滤后的二进制格式的样本文件的步骤包括:
过滤掉所述匹配不成功的无意义的字符串以及所述匹配不成功的待过滤串,得到过滤后的二进制格式的样本文件。
其中,所述字符编码集包括:UNICODE,UFT-8,GBK,GB2312和/或MBCS字符编码。
本发明的实施例还提供一种样本文件分析装置,包括:
获得模块,用于获得二进制格式的样本文件;
映射模块,用于将所述二进制格式的样本文件映射到内存;
分析模块,用于对映射到内存的所述二进制格式的样本文件进行全文字符串过滤分析,得到过滤后的二进制格式的样本文件;
输出模块,用于输出所述过滤后的二进制格式的样本文件。
其中,所述分析模块包括:
第一分析子模块,用于根据字符编码集和病毒家族库的特征串,对映射到内存的所述二进制格式的样本文件进行全文字符串匹配,获得匹配不成功的字符串;
第二分析子模块,用于过滤掉所述匹配不成功的字符串,得到过滤后的二进制格式的样本文件。
其中,所述第一分析子模块包括:
第一匹配模块,用于对映射到内存的所述二进制格式的样本文件与所述字符编码集中的字符串相匹配,获得匹配不成功的无意义的字符串以及匹配成功的字符串组成的样本文件;
第二匹配模块,用于对所述匹配成功的字符串组成的样本文件与所述病毒家族库中的特征串进行匹配,获得匹配不成功的待过滤串。
其中,所述第二匹配模块包括:
第一计算模块,用于计算所述匹配成功的字符串组成的样本文件中的字符串的哈希值;
第二计算模块,用于计算所述病毒家族库中的特征串的哈希值;
匹配子模块,用于将所述二进制格式的样本文件中的字符串的哈希值与所述病毒家族库中的特征串的哈希值进行比较,若不相等,认为相比较的两个字符串匹配不成功,并获得匹配不成功的待过滤串,否则认为匹配成功。
其中,所述第二分析子模块具体用于:过滤掉所述匹配不成功的无意义的字符串以及所述匹配不成功的待过滤串,得到过滤后的二进制格式的样本文件。
本发明的上述技术方案的有益效果如下:
上述方案中,通过将获得的二进制格式的样本文件映射到内存,并对该二进制格式的样本文件进行全文字符串过滤分析,从而过滤掉匹配不成功的字符串,提取有效串,有效减小样本文件的分析结果集合,大大提升病毒查杀效率。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
如图1所示,本发明的实施例提供一种样本文件分析方法,包括:
步骤11,获得二进制格式的样本文件;
步骤12,将所述二进制格式的样本文件映射到内存;
步骤13,对映射到内存的所述二进制格式的样本文件进行全文字符串过滤,得到过滤后的二进制格式的样本文件;
步骤14,输出所述过滤后的二进制格式的样本文件。
本发明的该实施例通过将获得的二进制格式的样本文件映射到内存,并对该二进制格式的样本文件进行全文字符串过滤分析,有效减小样本文件的分析结果集合,大大提升病毒查杀效率。
在本发明的另一实施例中,包括上述步骤11-14的基础上,上述步骤13包括:
步骤131,根据字符编码集和病毒家族库的特征串,对映射到内存的所述二进制格式的样本文件进行全文字符串匹配,获得匹配不成功的字符串;
步骤132,过滤掉所述匹配不成功的字符串,得到过滤后的二进制格式的样本文件。
其中,字符编码集包括UNICODE,UFT-8,GBK,GB2312,MBCS等所有常用的字符编码集,病毒家族库包括已确定的某一类型或者多种类型病毒对应的特征串形成的特征串集合。
在本发明的另一实施例中,包括上述步骤11-14的基础上,上述步骤131包括:
步骤1311,对映射到内存的所述二进制格式的样本文件与所述字符编码集中的字符串相匹配,获得匹配不成功的无意义的字符串以及匹配成功的字符串对应的样本文件;
步骤1312,对所述匹配成功的字符串对应的样本文件与所述病毒家族库中的特征串进行匹配,获得匹配不成功的待过滤串。
该实施例中,通过对映射到内存的二进制格式的样本文件与字符编码集中的字符串相匹配,获得匹配不成功的无意义的字符串,这里采用常用字过滤的方法,排除掉明显无意义的字符串,如:"犒嗣S莪撒嗖烫烫烫烫",得到匹配成功的字符串对应的样本文件,从而缩小二进制格式的样本文件的数量,可大幅提升病毒的查杀效率。
进一步地,在本发明的另一实施例中,步骤1312可以包括:
步骤13121,计算所述匹配成功的字符串对应的样本文件中的字符串的哈希(Hash)值;
步骤13122,计算所述病毒家族库中的特征串的Hash值;
步骤13123,将所述二进制格式的样本文件中的字符串的Hash值与所述病毒家族库中的特征串的Hash值进行比较,若不相等,认为相比较的两个字符串匹配不成功,并获得匹配不成功的待过滤串,否则认为匹配成功。
该实施例中,字符串的Hash值或者特征串的Hash值均是采用CRC32算法生成的一个DWORD(双字节的值),在字符串匹配时,根据生成的该CRC32值,只需要一条处理器指令,如,(Cmp,eRx,eRx)就可判断两个字符串的CRC32值是否相等,即两个字符串是否匹配,这样极大提升了分析效率。具体地,上述步骤13123中,所述将所述二进制格式的样本文件中的字符串的Hash值与所述家族库中的特征串的Hash值进行比较的步骤包括:采用一条处理器指令将所述二进制格式的样本文件中的字符串的Hash值与所述家族库中的特征串的Hash值进行比较。其中,在得到匹配不成功的待过滤串后,可以对这些匹配不成功的待过滤串进行排序,如采用快速排序方法进行排序,从而强制过滤掉这些待过滤串。
相应地,上述实施例中,步骤132可以包括:过滤掉所述匹配不成功的无意义的字符串以及所述匹配不成功的待过滤串,得到过滤后的二进制格式的样本文件。
其中,上述实施例中,所述字符编码集包括:UNICODE,UFT-8,GBK,GB2312,MBCS字符编码。其中,可以根据常用的3500个汉字,英文,符号等来当作有效字符集进行匹配,从而排除掉无效字符。
本发明的上述实施列中,对二进制格式的样本文件映射到内存,并采用包括所有字符编码集的有效字符集进行匹配,排除掉明显无意义的字符串,缩小二进制格式的样本文件的数量,即减小分析的样本数量,从而可大幅提升病毒查杀效率,进一步对排除掉无意义的字符串后的样本文件(即提取出的可见串)与病毒家族库的特征串进行匹配,从而过滤掉匹配不成功的字符串,从而有效减小分析结果集合,提升病毒查杀效率。
如图2所示,本发明的实施例还提供一种样本文件分析装置,包括:
获得模块21,用于获得二进制格式的样本文件;
映射模块22,用于将所述二进制格式的样本文件映射到内存;
分析模块23,用于对映射到内存的所述二进制格式的样本文件进行全文字符串过滤分析,得到过滤后的二进制格式的样本文件;
输出模块24,用于输出所述过滤后的二进制格式的样本文件。
本发明的该装置实施例同样通过将获得的二进制格式的样本文件映射到内存,并对该二进制格式的样本文件进行全文字符串过滤分析,有效减小样本文件的分析结果集合,大大提升病毒查杀效率。
其中,所述分析模块包括:
第一分析子模块,用于根据字符编码集和病毒家族库的特征串,对映射到内存的所述二进制格式的样本文件进行全文字符串匹配,获得匹配不成功的字符串;
第二分析子模块,用于过滤掉所述匹配不成功的字符串,得到过滤后的二进制格式的样本文件。
其中,字符编码集包括UNICODE,UFT-8,GBK,GB2312,MBCS等所有常用的字符编码集,病毒家族库包括已确定的某一类型或者多种类型病毒对应的特征串形成的特征串集合。
其中,所述第一分析子模块包括:
第一匹配模块,用于对映射到内存的所述二进制格式的样本文件与所述字符编码集中的字符串相匹配,获得匹配不成功的无意义的字符串以及匹配成功的字符串组成的样本文件;
第二匹配模块,用于对所述匹配成功的字符串组成的样本文件与所述病毒家族库中的特征串进行匹配,获得匹配不成功的待过滤串。
其中,所述第二匹配模块包括:
第一计算模块,用于计算所述匹配成功的字符串组成的样本文件中的字符串的哈希值;
第二计算模块,用于计算所述病毒家族库中的特征串的哈希值;
匹配子模块,用于将所述二进制格式的样本文件中的字符串的哈希值与所述病毒家族库中的特征串的哈希值进行比较,若不相等,认为相比较的两个字符串匹配不成功,并获得匹配不成功的待过滤串,否则认为匹配成功。
该实施例中,通过对映射到内存的二进制格式的样本文件与字符编码集中的字符串相匹配,获得匹配不成功的无意义的字符串,这里采用常用字过滤的方法,排除掉明显无意义的字符串,如:"犒嗣S莪撒嗖烫烫烫烫",得到匹配成功的字符串对应的样本文件,从而缩小二进制格式的样本文件的数量,可大幅提升病毒的查杀效率。
其中,所述第二分析子模块具体用于:过滤掉所述匹配不成功的无意义的字符串以及所述匹配不成功的待过滤串,得到过滤后的二进制格式的样本文件。
本发明的该装置实施例同样通过对二进制格式的样本文件映射到内存,并采用包括所有字符编码集的有效字符集进行匹配,排除掉明显无意义的字符串,缩小二进制格式的样本文件的数量,即减小分析的样本数量,从而可大幅提升病毒查杀效率,进一步对排除掉无意义的字符串后的样本文件(即提取出的可见串)与病毒家族库的特征串进行匹配,从而过滤掉匹配不成功的字符串,从而有效减小分析结果集合,提升病毒查杀效率。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。