[发明专利]利用函数长度统计确定文件相似度的系统和方法有效
申请号: | 201780072239.1 | 申请日: | 2017-09-29 |
公开(公告)号: | CN110023938B | 公开(公告)日: | 2023-05-05 |
发明(设计)人: | M.克雷德尔 | 申请(专利权)人: | 爱维士软件有限责任公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 北京市柳沈律师事务所 11105 | 代理人: | 张晓明 |
地址: | 捷克共和*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 利用 函数 长度 统计 确定 文件 相似 系统 方法 | ||
1.一种计算机实现的方法,用于通过确定可执行文件的文件相似性向量来检测恶意软件,所述计算机实现的方法包括以下步骤:
由计算机系统的处理器确定所述可执行文件中的一个或多个函数的集合;
对于所述一个或多个函数的集合中的每个函数,由所述处理器确定所述函数是否为有效函数,其中,确定所述函数是否为有效函数的步骤包括:
由所述处理器确定是否能够成功反汇编在所述函数的开头处的预定或可配置数量的指令;
响应于确定能够成功反汇编所述预定或可配置数量的指令,由所述处理器确定所述函数是有效的;
对于所述一个或多个函数的集合中的每个有效函数,由所述处理器确定函数的长度;
由所述处理器确定与所述一个或多个函数的集合中的每个有效函数相关联的一个或多个统计,所述一个或多个统计包括至少部分地基于所述函数的长度的统计;以及
由所述处理器至少部分地基于所述一个或多个统计来确定所述文件相似性向量。
2.如权利要求1所述的方法,其中,所述一个或多个统计包括由所述可执行文件中的函数数量、最小函数长度、最大函数长度、平均函数长度、以及熵值组成的组中的至少一个成员。
3.如权利要求1所述的方法,还包括以下步骤:
由所述处理器至少部分地基于指令类型定位所述可执行文件中的所述函数的开头。
4.如权利要求1所述的方法,其中,所述确定所述函数是否为有效函数的步骤还包括:
响应于确定不能成功反汇编所述预定或可配置数量的指令,由所述处理器确定所述函数是无效的。
5.如权利要求1所述的方法,还包括以下步骤:
由所述处理器搜索代码段以获取函数引用。
6.如权利要求5所述的方法,其中,所述代码段包括定界的函数块。
7.如权利要求5所述的方法,其中,所述代码段中的值是用于调用指令的操作码,并且还包括以下步骤:
由所述处理器确定所述调用指令的目标地址是否用于有效函数。
8.如权利要求5所述的方法,其中,所述代码段中的值不是用于调用指令的操作码,并且还包括以下步骤:
由所述处理器确定所述代码段中的值是否为虚拟地址。
9.如权利要求1所述的方法,其中,所述可执行文件包括在MicrosoftWindows系统中使用的PE文件、在Linux系统中使用的ELF文件、在UNIX系统中使用的ELF文件,或者在MAC OSX中使用的Mach-O文件。
10.如权利要求1所述的方法,还包括以下步骤:
由所述处理器将所述可执行文件的文件相似性向量与关联于已知恶意软件的文件相似性向量进行比较,以确定所述可执行文件是否包含恶意软件。
11.如权利要求10所述的方法,还包括以下步骤:
由所述处理器计算所述可执行文件的文件相似性向量与所述恶意软件的文件相似性向量之间的欧几里得距离。
12.一种非暂时性计算机可读存储介质,其上存储有程序,所述程序使计算机执行以下步骤:
确定可执行文件中的一个或多个函数的集合;
对于所述一个或多个函数的集合中的每个函数,确定所述函数是否为有效函数,其中,确定所述函数是否为有效函数的步骤包括:
确定是否能够成功反汇编在所述函数的开头处的预定或可配置数量的指令;
响应于确定能够成功反汇编所述预定或可配置数量的指令,确定所述函数是有效的;
对于所述一个或多个函数的集合中的每个有效函数,确定函数的长度;
确定与所述一个或多个函数的集合中的每个有效函数相关联的一个或多个统计,所述一个或多个统计包括至少部分地基于所述函数的长度的统计;以及
至少部分地基于所述一个或多个统计来确定所述文件相似性向量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于爱维士软件有限责任公司,未经爱维士软件有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780072239.1/1.html,转载请声明来源钻瓜专利网。