病毒检测方法、装置、计算机装置及存储介质与流程

文档序号:22677722发布日期:2020-10-28 12:35阅读:103来源:国知局
病毒检测方法、装置、计算机装置及存储介质与流程

本发明涉及计算机技术领域,具体涉及一种计算机病毒检测方法、病毒检测装置、计算机装置及计算机可读存储介质。



背景技术:

现今社会资讯科技发达,计算机装置围绕在我们生活的每一个角落,没有使用计算机装置的人寥寥无几,所以计算机装置的安全性至关重要,若计算机装置失去了安全性,除了对个人隐私、智慧财产、电脑系统有所危害,严重可能造成重大的财产损失,影响公众或他人,巨额损失往往难以估计。计算机病毒是危害计算机装置安全性的因素之一,如何侦测病毒,防止病毒入侵、感染、病毒感染后的隔离、删除等等,一直是防毒、扫毒软件的重要工作,传统的病毒检测方式中,用户需要打开计算机装置上的安全软件,依靠安全软件病毒数据库上的病毒检测方法进行有针对的检测,所以病毒检测的效果依靠病毒数据库的更新效率,且安全软件的病毒数据库不能及时收集所有的病毒。



技术实现要素:

鉴于以上内容,有必要提出一种病毒检测方法及装置、计算机装置和计算机可读存储介质,病毒检测以更加独立快捷的方式的进行,不再依赖病毒数据库中病毒的更新速度的检测方法。

本申请的第一方面提供一种病毒检测方法,所述方法包括:

获取计算机装置存储的档案列表,标记为原始状态列表;

计算所述原始状态列表中所列档案的哈希值,将所述哈希值写入区块链;

获取工作状态下计算机装置存储的档案列表,标记为工作状态列表;

计算所述工作状态列表中所列档案的哈希值;

从区块链网络上获取原始状态列表中所列档案的哈希值,并将所述原始状态列表中所列档案的哈希值与所述工作状态列表中所列档案的哈希值进行比对;

若所述哈希值不符时,则判定所述哈希值不符的档案已被病毒感染。

优选地,所述档案列表包含应用程序和/或系统档案名称和档案路径名。

优选地,所述计算所述原始状态列表中所列档案的哈希值的方法包括:

获取原始状态列表中所有档案的名称和路径名称;

根据所述档案名称和路径名称使用预设算法计算所述档案名称和路径名称的哈希值。

优选地,所述预设算法包括sha224、sha256、sha384、sha512、sha1、sha2或md5中的任意一个。

优选地,所述从区块链网络上获取原始状态列表中所列档案的哈希值的方法为:

所述计算机装置连入区块链网络后执行扫描程序,所述扫描程序通过扫描区块链节点信息获取区块链上的程序和系统档案列表。

优选地,将所述原始状态列表中所列档案的哈希值与所述工作状态列表中所列档案的哈希值进行比对的方法包括:

获取工作状态列表中所列档案和档案路径的哈希值;

按照工作状态列表中档案路径的哈希值在原始状态列表中查找与所述档案路径哈希值相同的档案路径;

在工作状态列表中和原始状态列表中比较相同档案路径下文档的哈希值。

本申请的第二方面提供一种病毒检测装置,所述装置包括:

第一获取模块,用于获取计算机装置存储的档案列表,标记为原始状态列表;

第一计算模块,用于计算所述原始状态列表中所列档案的哈希值,将所述哈希值写入区块链;

第二获取模块,用于获取工作状态下计算机装置存储的档案列表,标记为工作状态列表;

第二计算模块,计算所述工作状态列表中所列档案的哈希值;

比对模块,从区块链网络上获取原始状态列表中所列档案的哈希值,并将所述原始状态列表中所列档案的哈希值与所述工作状态列表中所列档案的哈希值进行比对;

判定模块,用于当所述哈希值不符时,判定所述哈希值不符的档案已被病毒感染。

本申请的第三方面提供一种计算机装置,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前所述病毒检测方法。

本申请的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述病毒检测方法。

本发明病毒检测方法使得病毒检测的效率不再依靠病毒数据库的更新效率,使得病毒检测可以针对所有的病毒,不再为某个病毒设计相应的检测方法,极大的提高了病毒检测的效率。

附图说明

图1是本发明实施例一提供的病毒检测方法的应用环境架构示意图。

图2是本发明实施例二提供的病毒检测方法流程图。

图3是本发明实施例三提供的病毒检测装置的结构示意图。

图4是本发明实施例四提供的计算机装置示意图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

实施例一

参阅图1所示,为本发明实施例一提供的病毒检测方法的应用环境架构示意图。

本发明中的病毒检测方法应用在计算机装置1中,所述计算机装置1和区块链网络100中的任一区块链中的节点10建立通信连接后,将所述计算机装置1中存储的档案列表发送至所述区块链中的节点10。

所述计算机装置1可以是任何电子产品,例如可以是智能手机、平板电脑、膝上型便捷计算机、台式计算机、智能家居领域中的智能家居用品(比如智能电视、智能空调、智能电风扇等)、环境监测领域中智能监测计算机装置、还可以是智能农业、智能电网、智能交通、智能医疗等各个领域中的智能计算机装置,在此不一一列举。

区块链是一种去中心化的存储和计算技术,其通过将加密数据块按照时间顺序叠加而生成持久的不可修改的记录,并且将该记录存储在区块链网络100的各个节点10中,使得以去中心化的方式集体维护一个可靠数据库。

区块链网络100可以是公有区块链网络、联盟区块链网络或私有区块链网络。公有区块链网络包括但不限于比特币网络和以太坊(ethereum)网络,以及联盟区块链网络包括但不限于超级账本(hyperledger)网络。

实施例二

请参阅图2所示,是本发明第二实施例提供的病毒检测方法的流程图。根据不同的需求,所述流程图中步骤的顺序可以改变,某些步骤可以省略。

步骤s1、获取计算机装置中存储的档案列表,标记为原始状态列表。

档案列表包含应用程序和/或系统档案的档案名称和路径名。

在本发明一实施方式中,通过windows中的cmd命令提示符获取计算机装置包含的程序和/或系统档案的路径名和档案名称。通过命令提示符调取操作程序下任意硬盘中包含的程序和/或系统档案的路径名和档案名称,资源管理器读取所述命令提示符的信息,以.txt格式的文件输出所述命令提示符所要查询的程序档案、系统档案的档案名称和路径名。

在本发明又一实施方式中,通过执行java或c++等程序语言编写的预设脚本获取计算机装置各个分区下存储的所有档案的档案名和路径名。

步骤s2、计算所述原始状态列表中所列档案的哈希值,将所述哈希值写入区块链。

计算所述原始状态列表中所列档案的哈希值的方法可以是:

获取原始状态列表中所有档案的名称和路径名称;

根据所述档案名称和路径名称计算所述档案名称和路径名称的哈希值。

所述算法包括sha224、sha256、sha384、sha512、sha1、sha2或md5中的任意一个。

在本发明一实施方式中,将获取到的原始状态列表中所有档案名称和档案路径名称使用现有的算法来计算所述档案名称和档案路径名称的哈希值,例如利用md5(messagedigestalgorithm5消息摘要算法第五版)获得128比特的哈希值。在又一实施方式中,利用sha1(securehashalgorithm安全哈希算法)获得160比特的哈希值。可以采用任何现有的算法获取任何大小的哈希值。

在本发明一实施方式中,所述计算机装置将原始状态列表中所有档案的名称和路径名称发送至区块链网络的节点中进行广播后,区块链网络中有权记账的节点在验证所述原始状态列表中所有档案的名称和路径名称的合法性后,通过共识机制将所述原始状态列表中所有档案的名称和路径名称写入区块链。

步骤s3、获取工作状态下计算机装置存储的档案列表,标记为工作状态列表。

所述工作状态是指所述计算机装置连入网络之后的状态,所述网络包括但不限于万维网、以太网。

在本发明一实施方式中,通过windows中的cmd命令提示符获取计算机装置包含的程序和/或系统档案的路径名和档案名称。

在本发明又一实施方式中,通过执行java或c++等程序语言编写的预设脚本获取计算机装置各个分区下的所有文件名和路径。

步骤s4、计算所述工作状态列表中所列档案的哈希值。

在本发明一实施方式中,计算所述工作状态列表中所列档案的哈希值的方法可以为:获取工作状态列表中所有档案的名称和路径名称;根据所述档案名称和路径名称使用算法sha224、sha256、sha384、sha512、sha1、sha2或md5中的任意一个计算所述档案名称和路径名称的哈希值。

步骤s5、在区块链网络上,获取原始状态列表中所列档案的哈希值,并将所述原始状态列表中所列档案的哈希值与所述工作状态列表中所列档案的哈希值进行比对。

在区块链网络上,获取原始状态列表中存储的档案的哈希值的方法可以为:

所述计算机装置连入区块链网络后执行扫描程序,所述扫描程序通过扫描区块链节点信息获取区块链上的程序和系统档案列表。

在本发明一实施方式中,所述计算机装置开机后连入区块链网络,利用区块链网络节点信息不可篡改的特性,使用应用程序blockchainvirusscan获取区块链节点上的档案名称以及每个档案名称对应的路径,所述区块链节点为所述计算机装置在原始状态下将计算机装置中存储的档案列表上传到区块链节点的位置。

将所述原始状态列表中所列档案的哈希值与所述工作状态列表中所列档案的哈希值进行比对的方法可以是:

获取工作状态列表中所列档案和档案路径的哈希值;

按照工作状态列表中档案路径的哈希值在原始状态列表中查找与所述档案路径哈希值相同的档案路径;

在工作状态列表中和原始状态列表中比较相同档案路径下文档的哈希值。

在本发明一实施方式中,获取工作状态列表中的所列档案和档案路径,并使用算法计算工作状态列表中所列档案盒路径的哈希值,所述算法可以是sha224、sha256、sha384、sha512、sha1、sha2或md5中的任意一个。根据工作状态表中的档案路径在原始状态表中查找与所述工作状态表中的档案路径的哈希值相同的档案路径。在相同的档案路径下,比较工作状态列表中的文档和原始状态列表中的文档的哈希值是否一致。

步骤s6、若所述哈希值不符时,则判定所述哈希值不符的档案已被病毒感染。

在本发明一实施方式中,在相同档案路径下,若工作状态列表中的文档的哈希值与原始状态列表中文档的哈希值不一致,则说明哈希值不一致的文档已经被病毒感染。

在本发明又一实施方式中,当计算机装置因为中病毒而无法开机时,可以将中毒计算机装置的存储器连接到一台未中毒的计算机装置上,将未中毒的计算机装置连接到区块链中,通过扫描程序扫描区块链节点信息获取所述存储器中的所有程序和系统档案列表,获得工作状态列表,通过算法计算工作状态列表中的档案和档案路径的哈希值,将所述存储器工作状态列表中一路径下的文档的哈希值与原始档案列表同一路径下文档的哈希值进行比对,如果工作状态列表下某一档案的哈希值与原始档案列表中档案的哈希值不一致,则说明此文档已经被感染。

在本发明又一实施方式中,若判定所述档案已经被感染,则将被感染档案的名称和档案路径位置以预设提示符的方式进行显示并发送给预设的用户。所述提示符包括但不限于文字提示、邮件提示、短息提示中的一种。

上述图2详细介绍了本发明的病毒检测方法,下面结合第3-4图,对实现所述病毒检测方法的软件装置的功能模块以及实现所述病毒检测方法的硬件装置架构进行介绍。

应所述了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

实施例三

图3为本发明病毒检测装置较佳实施例的结构图。

在一些实施例中,病毒检测装置20运行于计算机装置1中。所述病毒检测装置20可以包括多个由程序代码段所组成的功能模块。所述病毒检测装置20中的各个程序段的程序代码可以存储于计算机装置1的存储器中,并由所述至少一个处理器所执行,以实现病毒检测功能。

本实施例中,所述病毒检测装置20根据其所执行的功能,可以被划分为多个功能模块。参阅图3所示,所述功能模块可以包括:第一获取模块201、第一计算模块202、第二获取模块203、第二计算模块204、比对模块205、判定模块206。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。

第一获取模块201,用于获取计算机装置中存储的档案列表,标记为原始状态列表。

档案列表包含应用程序和/或系统档案的档案名称和路径名。

在本发明一实施方式中,通过windows中的cmd命令提示符获取计算机装置包含的程序和/或系统档案的路径名和档案名称。通过命令提示符调取操作程序下任意硬盘中包含的程序和/或系统档案的路径名和档案名称,资源管理器读取所述命令提示符的信息,以.txt格式的文件输出所述命令提示符所要查询的程序档案、系统档案的档案名称和路径名。

在本发明又一实施方式中,通过执行java或c++等程序语言编写的预设脚本获取计算机装置各个分区下存储的所有档案的档案名和路径名。

第一计算模块202,用于计算所述原始状态列表中所列档案的哈希值,将所述哈希值写入区块链。

计算所述原始状态列表中所列档案的哈希值的方法可以是:

获取原始状态列表中所有档案的名称和路径名称;

根据所述档案名称和路径名称计算所述档案名称和路径名称的哈希值。

所述算法包括sha224、sha256、sha384、sha512、sha1、sha2或md5中的任意一个。

在本发明一实施方式中,将获取到的原始状态列表中所有档案名称和档案路径名称使用现有的算法来计算所述档案名称和档案路径名称的哈希值,例如利用md5(messagedigestalgorithm5消息摘要算法第五版)获得128比特的哈希值。在又一实施方式中,利用sha1(securehashalgorithm安全哈希算法)获得160比特的哈希值。可以采用任何现有的算法获取任何大小的哈希值。

在本发明一实施方式中,所述计算机装置将原始状态列表中所有档案的名称和路径名称发送至区块链网络的节点中进行广播后,区块链网络中有权记账的节点在验证所述原始状态列表中所有档案的名称和路径名称的合法性后,通过共识机制将所述原始状态列表中所有档案的名称和路径名称写入区块链。

第二获取模块203,获取工作状态下计算机装置存储的档案列表,标记为工作状态列表。

所述工作状态是指所述计算机装置连入网络之后的状态,所述网络包括但不限于万维网、以太网。

在本发明一实施方式中,通过windows中的cmd命令提示符获取计算机装置包含的程序和/或系统档案的路径名和档案名称。

在本发明又一实施方式中,通过执行java或c++等程序语言编写的预设脚本获取计算机装置各个分区下的所有文件名和路径。

第二计算模块204,用于计算所述工作状态列表中所列档案的哈希值。

在本发明一实施方式中,计算所述工作状态列表中所列档案的哈希值的方法可以为:获取工作状态列表中所有档案的名称和路径名称;根据所述档案名称和路径名称使用算法sha224、sha256、sha384、sha512、sha1、sha2或md5中的任意一个计算所述档案名称和路径名称的哈希值。

比对模块205,用于在区块链网络上,获取原始状态列表中所列档案的哈希值,并将所述原始状态列表中所列档案的哈希值与所述工作状态列表中所列档案的哈希值进行比对。

在区块链网络上,获取原始状态列表中存储的档案的哈希值的方法可以为:

所述计算机装置连入区块链网络后执行扫描程序,所述扫描程序通过扫描区块链节点信息获取区块链上的程序和系统档案列表。

在本发明一实施方式中,所述计算机装置开机后连入区块链网络,利用区块链网络节点信息不可篡改的特性,使用应用程序blockchainvirusscan获取区块链节点上的档案名称以及每个档案名称对应的路径,所述区块链节点为所述计算机装置在原始状态下将计算机装置中存储的档案列表上传到区块链节点的位置。

将所述原始状态列表中所列档案的哈希值与所述工作状态列表中所列档案的哈希值进行比对的方法可以是:

获取工作状态列表中所列档案和档案路径的哈希值;

按照工作状态列表中档案路径的哈希值在原始状态列表中查找与所述档案路径哈希值相同的档案路径;

在工作状态列表中和原始状态列表中比较相同档案路径下文档的哈希值。

在本发明一实施方式中,获取工作状态列表中的所列档案和档案路径,并使用算法计算工作状态列表中所列档案盒路径的哈希值,所述算法可以是sha224、sha256、sha384、sha512、sha1、sha2或md5中的任意一个。根据工作状态表中的档案路径在原始状态表中查找与所述工作状态表中的档案路径的哈希值相同的档案路径。在相同的档案路径下,比较工作状态列表中的文档和原始状态列表中的文档的哈希值是否一致。

判定模块206,用于当所述哈希值不符时,判定所述哈希值不符的档案已被病毒感染。

在本发明一实施方式中,在相同档案路径下,若工作状态列表中的文档的哈希值与原始状态列表中文档的哈希值不一致,则说明哈希值不一致的文档已经被病毒感染。

在本发明又一实施方式中,当计算机装置因为中病毒而无法开机时,可以将中毒计算机装置的存储器连接到一台未中毒的计算机装置上,将未中毒的计算机装置连接到区块链中,通过扫描程序扫描区块链节点信息获取所述存储器中的所有程序和系统档案列表,获得工作状态列表,通过算法计算工作状态列表中的档案和档案路径的哈希值,将所述存储器工作状态列表中一路径下的文档的哈希值与原始档案列表同一路径下文档的哈希值进行比对,如果工作状态列表下某一档案的哈希值与原始档案列表中档案的哈希值不一致,则说明此文档已经被感染。

在本发明又一实施方式中,若判定所述档案已经被感染,则将被感染档案的名称和档案路径位置以预设提示符的方式进行显示并发送给预设的用户。所述提示符包括但不限于文字提示、邮件提示、短息提示中的一种。

实施例四

图4为本发明计算机装置较佳实施例的示意图。

所述计算机装置1包括存储器30、处理器40以及存储在所述存储器30中并可在所述处理器40上运行的计算机程序50,例如病毒检测程序。所述处理器40执行所述计算机程序50时实现上述病毒检测方法实施例中的步骤,例如图2所示的步骤s1~s6。或者,所述处理器40执行所计算机程序50时实现上述病毒检测装置实施例中各模块/单元的功能,例如图3中的单元201-206。

示例性的,所述计算机程序50可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器30中,并由所述处理器40执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,所述指令段用于描述所述计算机程序50在所述计算机装置1中的执行过程。例如,所述计算机程序50可以被分割成图3中的第一获取模块201、第一计算模块202、第二获取模块203、第二计算模块204、比对模块205、判定模块206。各模块具体功能参见实施例三。

所述计算机装置1可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算计算机装置。本领域技术人员可以理解,所述示意图仅仅是计算机装置1的示例,并不构成对计算机装置1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机装置1还可以包括输入输出计算机装置、网络接入计算机装置、总线等。

所称处理器40可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者所述处理器40也可以是任何常规的处理器等,所述处理器40是所述计算机装置1的控制中心,利用各种接口和线路连接整个计算机装置1的各个部分。

所述存储器30可用于存储所述计算机程序50和/或模块/单元,所述处理器40通过运行或执行存储在所述存储器30内的应用程序和/或模块/单元,以及调用存储在存储器30内的数据,实现所述计算机装置1的各种功能。所述存储器30可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机装置1的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器30可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

所述计算机装置1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机装置可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过应用程序来指令相关的硬件来完成,所述的应用程序可存储于一计算机可读存储介质中,所述应用程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述应用程序包括应用程序代码,所述应用程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述可读介质可以包括:能够携带所述应用程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,应用终端可读介质不包括电载波信号和电信信号。

在本发明所提供的几个实施例中,应所述理解到,所揭露的应用终端和方法,可以通过其它的方式实现。例如,以上所描述的应用终端实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

另外,在本发明各个实施例中的各功能单元可以集成在相同处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在相同单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。应用终端权利要求中陈述的多个单元或应用终端也可以由同一个单元或应用终端通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1