病毒扫描方法和装置制造方法及图纸

技术编号:9828206 阅读:179 留言:0更新日期:2014-04-01 17:29
本发明专利技术公开了一种病毒扫描方法和装置,属于计算机技术领域。所述方法包括:检测系统状态;当系统状态为空闲时,若已开始本次病毒扫描则继续本次病毒扫描,若未开始本次病毒扫描则获取上次病毒扫描时的扫描进度,并根据所述扫描进度开始本次病毒扫描,记录本次病毒扫描的扫描进度。本发明专利技术通过系统的状态调节扫描的进度,并可以继续上一次扫描进度对病毒进行扫描,从而在提高用户体验的同时大大降低病毒扫描的时间。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种病毒扫描方法和装置,属于计算机
。所述方法包括:检测系统状态;当系统状态为空闲时,若已开始本次病毒扫描则继续本次病毒扫描,若未开始本次病毒扫描则获取上次病毒扫描时的扫描进度,并根据所述扫描进度开始本次病毒扫描,记录本次病毒扫描的扫描进度。本专利技术通过系统的状态调节扫描的进度,并可以继续上一次扫描进度对病毒进行扫描,从而在提高用户体验的同时大大降低病毒扫描的时间。【专利说明】病毒扫描方法和装置
本专利技术涉及计算机
,特别涉及一种病毒扫描方法和装置。
技术介绍
计算机病毒是指编制者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码。计算机病毒具有寄生性、传染性、隐蔽性、破坏性、多样性等特点,对计算机资源造成了极大的损失和破坏。为了有效的检测病毒,现有技术中提供了一种病毒查杀方法,其在每次扫描病毒的时候,需要重新遍历整个硬盘,然后分别对硬盘中每一个文件进行扫描。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题:如果用户中断本次病毒扫描的话,在下次对病毒扫描时还需要重新针对硬盘全盘进行对病毒的扫描。
技术实现思路
为了解决现有技术的问题,本专利技术实施例提供了一种病毒扫描方法和装置。所述技术方案如下:—方面,提供了一种病毒扫描方法,所述方法包括:检测系统状态; 当系统状态为空闲时,若已开始本次病毒扫描则继续本次病毒扫描,若未开始本次病毒扫描则获取上次病毒扫描时的扫描进度,并根据所述扫描进度开始本次病毒扫描,记录本次病毒扫描的扫描进度。进一步的,所述检测系统状态,包括:检测是否处于输入状态或全屏状态,并检测当前系统资源占用量;如果处于输入状态或全屏状态,则判定检测到的系统状态为繁忙;如果未处于输入状态和全屏状态,而检测到的当前系统资源占用量大于预定占用量时,则判定检测到的系统状态为繁忙;如果未处于输入状态和全屏状态,且在第二预定时间内检测到的当前系统资源占用量小于或等于预定占用量时,则判定检测到的系统状态为空闲。进一步的,在所述检测系统状态之前,所述方法还包括:枚举所有硬盘分区,将硬盘分区加入到树状结构中,其中所述树状结构的每一个节点的属性包括:是否是文件、是否枚举完成、是否扫描完成;枚举每一个硬盘分区中的所有目录或文件,将硬盘分区中的目录或文件作为节点加入到树状结构中,设置所述目录或文件所在节点的属性,并将文件加入到扫描队列中。进一步的,所述设置所述目录或文件所在节点的属性,包括:当枚举一个目录时,如果枚举完成,则将该目录所在节点的属性设置为枚举完成,如果未完成枚举,则将该目录所在节点的属性设置为未枚举完成;当扫描一个目录下的文件和子目录时,如果该目录下的所有文件和子目录都扫描完成,则将该目录所在节点的属性设置为扫描完成,如果未完成该目录下的所有文件和子目录的扫描,则将该目录所在节点的属性设置为未扫描完成;当扫描一个文件时,如果该文件被扫描完成,则将该文件所在节点的属性设置为扫描完成,如果未完成该文件的扫描,则将该文件所在节点的属性设置为未扫描完成。更进一步的,所述根据所述扫描进度开始对病毒的本次病毒扫描,包括:深度优先遍历所述树状结构,检查所述树状结构中在所述扫描进度对应的节点后是否存在没有扫描完成或没有枚举完成的节点;如果存在没有扫描完成的节点,则判断该节点是否为文件所在节点,如果是文件所在节点,则加入到所述扫描队列中,否则,继续深度优先遍历该节点的所有子节点;如果存在没有枚举完成的节点,则枚举该目录所在节点,将该目录所在节点下枚举到的文件加入到所述扫描队列中,将该目录所在节点下枚举到的子目录加入到树状结构中,然后递归遍历该目录所在节点,当该目录所在节点枚举完成后,标记该目录所在节点为枚举完成;根据所述扫描进度扫描所述扫描队列中的文件;其中,当一个文件扫描完成后,在所述树状结构中寻找该文件所在节点,并将该文件所在节点的属性设置为扫描完成,当一个目录下的所有文件和子目录都扫描完成后,将该目录所在节点的属性设置为扫描完成。更进一步的,所述记录本次病毒扫描的扫描进度包括:在本次病毒扫描结束时根据所述树状结构,记录在本次病毒扫描过程中枚举或遍历到的每个目录的属性以及目录是否被扫描过,记录在本次病毒扫描过程中枚举或扫描到的每个文件的属性以及文件是否被扫描过,并记录扫描过的文件是否为风险文件,当文件为风险文件时,记录风险名称以及文件的哈希值。更进一步的,所述根据所述扫描进度开始对病毒的本次病毒扫描之后,所述方法还包括:将标记为扫描完成的目录所在节点下的所有文件和子目录删除。进一步的,在所述检测系统状态之后,所述方法还包括:当系统状态为繁忙时,若未开始本次病毒扫描则等待本次病毒扫描,若已开始本次病毒扫描则降低本次病毒扫描的速度,在第一预定时间内检测到的系统状态均为繁忙时,则停止本次病毒扫描,记录本次病毒扫描的扫描进度。另一方面,提供了一种病毒扫描装置,所述装置包括:检测模块,用于检测系统状态;第一扫描模块,用于所述检测模块检测到系统状态为空闲时,若已开始本次病毒扫描则继续本次病毒扫描,若未开始本次病毒扫描则获取上次病毒扫描时的扫描进度,并根据所述扫描进度开始本次病毒扫描,记录本次病毒扫描的扫描进度。进一步的,所述检测模块包括:检测单元,用于检测是否处于输入状态或全屏状态,并检测当前系统资源占用量;第一判定单元,用于在所述检测单元检测到处于输入状态或全屏状态时,判定检测到的系统状态为繁忙;第二判定单元,用于在所述检测单元检测到未处于输入状态和全屏状态,而检测到的当前系统资源占用量大于预定占用量时,判定检测到的系统状态为繁忙;第三判定单元,用于在所述检测单元检测到未处于输入状态和全屏状态,且在第二预定时间内检测到的当前系统资源占用量小于或等于预定占用量时,判定检测到的系统状态为空闲。进一步的,所述装置还包括:第一枚举模块,用于枚举所有硬盘分区,将硬盘分区加入到树状结构中,其中所述树状结构的每一个节点的属性包括:是否是文件、是否枚举完成、是否扫描完成;第二枚举模块,用于枚举每一个硬盘分区中所有目录或文件,将硬盘分区中的目录或文件作为节点加入到树状结构中,设置所述目录或文件所在节点的属性,并将文件加入到扫描队列中。进一步的,所述第二枚举模块用于:当枚举一个目录时,如果枚举完成,则将该目录所在节点的属性设置为枚举完成,如果未完成枚举,则将该目录所在节点的属性设置为未枚举完成;当扫描一个目录下的文件和子目录时,如果该目录下的所有文件和子目录都扫描完成,则将该目录所在节点的属性设置为扫描完成,如果未完成该目录下的所有文件和子目录的扫描,则将该目录所在节点的属性设置为未扫描完成;当扫描一个文件时,如果该文件被扫描完成,则将该文件所在节点的属性设置为扫描完成,如果未完成该文件的扫描,则将该文件所在节点的属性设置为未扫描完成。更进一步的,所述第一扫描模块包括:遍历单元,用于深度优先遍历所述树状结构,检查所述树状结构中在所述扫描进度对应的节点后是否存在没有扫描完成或没有枚举完成的节点;第一遍历子单元,用于当所述遍历单元检测到存在没有扫描完成的节点时,判断该节点是否为文件所在节点,如果是文件所在节点,则加入到所述扫描队本文档来自技高网...

【技术保护点】
一种病毒扫描方法,其特征在于,所述方法包括:检测系统状态;当系统状态为空闲时,若已开始本次病毒扫描则继续本次病毒扫描,若未开始本次病毒扫描则获取上次病毒扫描时的扫描进度,并根据所述扫描进度开始本次病毒扫描,记录本次病毒扫描的扫描进度。

【技术特征摘要】

【专利技术属性】
技术研发人员:郭曦
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1