监控文件变化的方法、装置及服务器的制造方法

文档序号:6523510阅读:205来源:国知局
监控文件变化的方法、装置及服务器的制造方法
【专利摘要】本公开是关于一种监控文件变化的方法、装置及服务器,属于计算机领域。该方法包括:获取监控目录,并扫描监控目录包含的每个文件;生成与扫描的每个文件对应的签名值,得到包含文件名及签名值的当前文件信息集合;将监控目录的当前文件信息集合与预先存储的监控目录的参考文件信息集合进行比对;根据比对结果确定监控目录包含的文件是否发生变化。本公开通过比对当前文件信息与参考文件信息来确认文件是否被修改,并及时发现文件的增删情况。另外,通过扫描监控目录包含的每一个文件,并生成每个文件对应的签名值的操作,确保操作系统能提供文件访问功能即可,适用的操作系统的类型较多,适用范围广。
【专利说明】监控文件变化的方法、装置及服务器
【技术领域】
[0001]本公开涉及计算机领域,特别涉及一种监控文件变化的方法、装置及服务器。
【背景技术】
[0002]随着计算机技术的迅速发展,利用计算机处理的事务越来越多,相应地,产生的文件也越来越多。通常,在计算机的文件系统中保存有运行应用程序的各种文件,当这些文件中的某些文件被篡改后,可能会给应用程序造成无法挽回的损失。例如,当某一应用程序中的核心配置文件被修改、被删除或在应用程序的文件系统中增加其他具有危害性的文件后,可能会给应用程序造成无法挽回的损失。因此,有必要提出一种监控文件变化的方法,以确保计算机文件系统的安全性。

【发明内容】

[0003]为了克服相关技术中存在的问题,本公开提供了一种监控文件变化的方法、装置及服务器。所述技术方案如下:
[0004]第一方面,本公开提供了一种监控文件变化的方法,所述方法包括:
[0005]获取监控目录,并扫描所述监控目录包含的每个文件;
[0006]生成与扫描的每个文件对应的签名值,得到包含文件名及签名值的当前文件信息集合,每条当前文件信息包括扫描的一个文件的文件名及对应的签名值;
[0007]将所述监控目录的当前文件信息集合与预先存储的所述监控目录的参考文件信息集合进行比对,所述参考文件信息集合中的每条参考文件信息包括预先扫描所述监控目录后得到的一个文件的文件名及对应的签名值;
[0008]根据比对结果确定所述监控目录包含的文件是否发生变化。
[0009]结合第一方面,在第一方面的第一种可能的实现方式中,所述生成与扫描的每个文件对应的签名值,包括:
[0010]获取扫描的每个文件的文件特征信息,所述文件特征信息包括文件名、文件大小、文件权限、文件修改时间和/或文件内容;
[0011]根据扫描的每个文件的文件特征信息生成与扫描的每个文件对应的签名值。
[0012]结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据扫描的每个文件的文件特征信息生成与扫描的每个文件对应的签名值,包括:
[0013]根据所述每个文件的文件特征信息通过哈希算法计算生成每个文件对应的签名值。
[0014]结合第一方面至第一方面的第二种可能的实现方式中的任一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述将所述监控目录的当前文件信息集合与预先存储的所述监控目录的参考文件信息集合进行比对,包括:
[0015]按文件名对所述当前文件信息集合中的每条当前文件信息及所述参考文件信息集合中的每条参考文件信息分别排序,得到包含排序后的当前文件信息的第一列表及包含排序后的参考文件信息的第二列表;
[0016]设置第一指针和第二指针,并将所述第一指针指向所述第一列表的第一条当前文件信息和所述第二指针指向所述第二列表的第一条参考文件信息;
[0017]从所述第一指针指向的第一条当前文件信息和所述第二指针指向的第一条参考文件信息开始,判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同;
[0018]如果所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名相同,则判断所述第一指针指向的当前文件信息中的签名值和所述第二指针指向的参考文件信息中的签名值是否相同;
[0019]如果所述第一指针指向的当前文件信息中的签名值和所述第二指针指向的参考文件信息中的签名值相同,则确定所述第一指针指向的当前文件信息对应的文件相对所述第二指针指向的参考文件信息对应的文件未发生变化,否则,确定所述第一指针指向的当前文件信息对应的文件相对所述第二指针指向的参考文件信息对应的文件被修改;
[0020]将所述第一指针和所述第二指针分别下移一位,返回判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将所述第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
[0021]结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同之后,还包括:
[0022]如果所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名不同,则比较所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名的文件名顺序;
[0023]如果所述第一指针指向的当前文件信息中的文件名比所述第二指针指向的参考文件信息中的文件名的文件名顺序在前,则确定所述第一指针指向的当前文件信息对应的文件为所述监控目录中新增加的文件,并将所述第一指针下移一位;返回判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将所述第一列表中的当前文件信息或第二列表中的参考文件信息比对结束;
[0024]如果所述第一指针指向的当前文件信息中的文件名比所述第二指针指向的参考文件信息中的文件名的文件名顺序在后,则确定所述第二指针指向的参考文件信息对应的文件为所述监控目录中被删除的文件,并将所述第二指针下移一位;返回判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将所述第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
[0025]结合第一方面的第三种可能的实现方式,在第一方面的第五种可能的实现方式中,所述判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同之后,还包括:
[0026]判断所述第一指针指向的当前文件信息或所述第二指针指向的参考文件信息是否为空;
[0027]如果所述第一指针指向的当前文件信息为空,所述第二指针指向的参考文件信息不为空,则确定所述第二指针指向的参考文件信息对应的文件至所述第二列表末尾的参考文件信息对应的文件为被删除的文件;
[0028]如果所述第二指针指向的参考文件信息为空,所述第一指针指向的当前文件信息不为空,则确定所述第一指针指向的当前文件信息对应的文件至所述第一列表末尾的当前文件信息对应的文件为新增加的文件。
[0029]结合第一方面,在第一方面的第六种可能的实现方式中,所述得到包含文件名及签名值的当前文件信息集合之后,还包括:
[0030]存储所述当前文件信息集合,作为监控文件变化的参考文件信息集合。
[0031]第二方面,本公开提供了一种监控文件变化的装置,所述装置包括:
[0032]获取模块,用于获取监控目录;
[0033]扫描模块,用于扫描所述监控目录包含的每个文件;
[0034]生成模块,用于生成与扫描的每个文件对应的签名值,得到包含文件名及签名值的当前文件信息集合,每条当前文件信息包括扫描的一个文件的文件名及对应的签名值;
[0035]比对模块,用于将所述监控目录的当前文件信息集合与预先存储的所述监控目录的参考文件信息集合进行比对,所述参考文件信息集合中的每条参考文件信息包括预先扫描所述监控目录后得到的一个文件的文件名及对应的签名值;
[0036]确定模块,用于根据比对结果确定所述监控目录包含的文件是否发生变化。
[0037]结合第二方面,在第二方面的第一种可能的实现方式中,所述生成模块,包括:
[0038]获取单元,用于获取扫描的每个文件的文件特征信息,所述文件特征信息包括文件名、文件大小、文件权限、文件修改时间和/或文件内容;
[0039]生成单元,用于根据扫描的每个文件的文件特征信息生成与扫描的每个文件对应的签名值。
[0040]结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述生成单元,用于根据所述每个文件的文件特征信息通过哈希算法计算生成每个文件对应的签名值。
[0041]结合第二方面至第二方面的第二种可能的实现方式中的任一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述比对模块,包括:
[0042]排序单元,用于按文件名对所述当前文件信息集合中的每条当前文件信息及所述参考文件信息集合中的每条参考文件信息分别排序,得到包含排序后的当前文件信息的第一列表及包含排序后的参考文件信息的第二列表;
[0043]设置单元,用于设置第一指针和第二指针,并将所述第一指针指向所述第一列表的第一条当前文件信息和所述第二指针指向所述第二列表的第一条参考文件信息;
[0044]第一判断单元,用于从所述第一指针指向的第一条当前文件信息和所述第二指针指向的第一条参考文件信息开始,判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同;
[0045]第二判断单元,用于当所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名相同时,判断所述第一指针指向的当前文件信息中的签名值和所述第二指针指向的参考文件信息中的签名值是否相同;
[0046]第一确定单元,用于当所述第一指针指向的当前文件信息中的签名值和所述第二指针指向的参考文件信息中的签名值相同时,确定所述第一指针指向的当前文件信息对应的文件相对所述第二指针指向的参考文件信息对应的文件未发生变化,否则,确定所述第一指针指向的当前文件信息对应的文件相对所述第二指针指向的参考文件信息对应的文件被修改;
[0047]第一下移单元,用于将所述第一指针和所述第二指针分别下移一位;
[0048]第一返回单元,用于返回判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将所述第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
[0049]结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述比对模块,还包括:
[0050]比较单元,用于当所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名不同时,比较所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名的文件名顺序;
[0051]第二确定单元,用于当所述第一指针指向的当前文件信息中的文件名比所述第二指针指向的参考文件信息中的文件名的文件名顺序在前时,确定所述第一指针指向的当前文件信息对应的文件为所述监控目录中新增加的文件;
[0052]第二下移单元,用于将所述第一指针下移一位;
[0053]第二返回单元,用于返回判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将所述第一列表中的当前文件信息或第二列表中的参考文件信息比对结束;
[0054]第三确定单元,用于当所述第一指针指向的当前文件信息中的文件名比所述第二指针指向的参考文件信息中的文件名的文件名顺序在后时,确定所述第二指针指向的参考文件信息对应的文件为所述监控目录中被删除的文件;
[0055]第三下移单元,用于将所述第二指针下移一位;
[0056]第三返回单元,用于返回判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将所述第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
[0057]结合第二方面的第三种可能的实现方式,在第二方面的第五种可能的实现方式中,所述比对模块,还包括:
[0058]第三判断单元,用于判断所述第一指针指向的当前文件信息或所述第二指针指向的参考文件信息是否为空;
[0059]第四确定单元,用于当所述第一指针指向的当前文件信息为空,所述第二指针指向的参考文件信息不为空时,确定所述第二指针指向的参考文件信息对应的文件至所述第二列表末尾的参考文件信息对应的文件为被删除的文件;当所述第二指针指向的参考文件信息为空,所述第一指针指向的当前文件信息不为空时,确定所述第一指针指向的当前文件信息对应的文件至所述第一列表末尾的当前文件信息对应的文件为增加的文件。
[0060]结合第二方面,在第二方面的第六种可能的实现方式中,所述装置,还包括:[0061]存储模块,用于存储所述当前文件信息集合,作为监控文件变化的参考文件信息
隹A
口 O
[0062]第三方面,本公开提供了一种监控文件变化的服务器,所述服务器包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,所述一个或者一个以上程序包含用于进行以下操作的指令:
[0063]获取监控目录,并扫描所述监控目录包含的每个文件;
[0064]生成与扫描的每个文件对应的签名值,得到包含文件名及签名值的当前文件信息集合,每条当前文件信息包括扫描的一个文件的文件名及对应的签名值;
[0065]将所述监控目录的当前文件信息集合与预先存储的所述监控目录的参考文件信息集合进行比对,所述参考文件信息集合中的每条参考文件信息包括预先扫描所述监控目录后得到的一个文件的文件名及对应的签名值;
[0066]根据比对结果确定所述监控目录包含的文件是否发生变化。
[0067]本公开的一些有益效果可以包括:
[0068]通过扫描获取到的监控目录所包含的每个文件,生成与扫描的每个文件对应的签名值后,得到包含文件名及签名值的当前文件信息集合,并将监控目录的当前文件信息集合与预先存储的监控目录的参考文件信息集合进行比对,根据比对结果确定监控目录包含的文件是否发生变化,不仅能够确认文件是否被修改,而且能够及时发现监控目录中文件的增删情况。另外,通过扫描监控目录包含的每一个文件、生成每个文件对应的签名值以得到当前文件信息的操作,确保操作系统能提供文件访问功能即可,适用的操作系统的类型较多,适用范围广。
[0069]应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
【专利附图】

【附图说明】
[0070]为了更清楚地说明本公开中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0071]图1是本公开一个实施例提供的一种监控文件变化的方法的示例性流程图;
[0072]图2是本公开另一个实施例提供的一种监控文件变化的方法的示例性流程图;
[0073]图3是本公开另一个实施例提供的一种确定文件变化情况的示例性流程图;
[0074]图4是本公开另一个实施例提供的一种确定文件变化情况的示例性流程图;
[0075]图5是本公开另一个实施例提供的一种监控文件变化的装置结构示意图;
[0076]图6是本公开另一个实施例提供的一种生成模块的结构示意图;
[0077]图7是本公开另一个实施例提供的一种比对模块的结构示意图;
[0078]图8是本公开另一个实施例提供的一种比对模块的结构示意图;
[0079]图9是本公开另一个实施例提供的一种比对模块的结构示意图;
[0080]图10是本公开另一个实施例提供的一种监控文件变化的装置结构示意图;
[0081]图11是本公开另一个实施例提供的一种服务器的结构示意图。[0082]通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
【具体实施方式】
[0083]为使本公开的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本公开做进一步详细说明。在此,本公开的示意性实施方式及其说明用于解释本公开,但并不作为对本公开的限定。
[0084]本公开实施例提供一种监控文件变化的方法,以下结合附图对本公开进行详细说明。
[0085]随着计算机技术的不断发展,利用计算机处理的事务越来越多,因此,会产生越来越多的计算机文件,形成了包含众多文件的计算机文件系统。为了确保计算机文件系统的安全,需要对关键目录下的文件的变化情况进行实时监控,以及时发现文件系统中文件的变化情况。本公开实施例提供了一种监控文件变化的方法,利用该方法能够实现对文件系统中关键目录下的文件的变化情况进行实时监控。其中,本公开实施例提供的监控文件变化的方法能够及时发现关键目录下文件是否被修改,是否有新增加的文件以及是否有被删除的文件。
[0086]在一个实施例中,提供了一种监控文件变化的方法。参见图1,本公开实施例提供的方法流程包括:
[0087]在步骤101中,获取监控目录,并扫描监控目录包含的每个文件。
[0088]在步骤102中,生成与扫描的每个文件对应的签名值,得到包含文件名及签名值的当前文件信息集合,每条当前文件信息包括扫描的一个文件的文件名及对应的签名值。
[0089]在步骤103中,将监控目录的当前文件信息集合与预先存储的监控目录的参考文件信息集合进行比对,参考文件信息集合中的每条参考文件信息包括预先扫描监控目录后得到的一个文件的文件名及对应的签名值。
[0090]在步骤104中,根据比对结果确定监控目录包含的文件是否发生变化。
[0091]本公开实施例提供的方法,通过扫描获取到的监控目录所包含的每个文件,生成与扫描的每个文件对应的签名值后,得到包含文件名及签名值的当前文件信息集合,并将监控目录的当前文件信息集合与预先存储的监控目录的参考文件信息集合进行比对,根据比对结果确定监控目录包含的文件是否发生变化,不仅能够确认文件是否被修改,而且能够及时发现监控目录中文件的增删情况。另外,通过扫描监控目录包含的每一个文件、生成每个文件对应的签名值以得到当前文件信息的操作,确保操作系统能提供文件访问功能即可,适用的操作系统的类型较多,适用范围广。
[0092]在另一个实施例中,生成与扫描的每个文件对应的签名值,包括:
[0093]获取扫描的每个文件的文件特征信息,文件特征信息包括文件名、文件大小、文件权限、文件修改时间和/或文件内容;
[0094]根据扫描的每个文件的文件特征信息生成与扫描的每个文件对应的签名值。
[0095]在另一个实施例中,根据扫描的每个文件的文件特征信息生成与扫描的每个文件对应的签名值,包括:[0096]根据所述每个文件的文件特征信息通过哈希算法计算生成每个文件对应的签名值。
[0097]在另一个实施例中,将监控目录的当前文件信息集合与预先存储的监控目录的参考文件信息集合进行比对,包括:
[0098]按文件名对当前文件信息集合中的每条当前文件信息及参考文件信息集合中的每条参考文件信息分别排序,得到包含排序后的当前文件信息的第一列表及包含排序后的参考文件信息的第二列表;
[0099]设置第一指针和第二指针,并将第一指针指向第一列表的第一条当前文件信息和第二指针指向第二列表的第一条参考文件信息;
[0100]从第一指针指向的第一条当前文件信息和第二指针指向的第一条参考文件信息开始,判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同;
[0101]如果第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名相同,则判断第一指针指向的当前文件信息中的签名值和第二指针指向的参考文件信息中的签名值是否相同;
[0102]如果第一指针指向的当前文件信息中的签名值和第二指针指向的参考文件信息中的签名值相同,则确定第一指针指向的当前文件信息对应的文件相对第二指针指向的参考文件信息对应的文件未发生变化,否则,确定第一指针指向的当前文件信息对应的文件相对第二指针指向的参考文件信息对应的文件被修改;
[0103]将第一指针和第二指针分别下移一位,返回判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
[0104]在另一个实施例中,判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同之后,还包括:
[0105]如果第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名不同,则比较第一指针指向的当前文件信息中的文件名对应的二进制数值和第二指针指向的参考文件信息中的文件名的文件名顺序;
[0106]如果第一指针指向的当前文件信息中的文件名比所述第二指针指向的参考文件信息中的文件名的文件名顺序在前,则确定第一指针指向的当前文件信息对应的文件为监控目录中新增加的文件,并将第一指针下移一位;返回判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将第一列表中的当前文件信息或第二列表中的参考文件信息比对结束;
[0107]如果所述第一指针指向的当前文件信息中的文件名比所述第二指针指向的参考文件信息中的文件名的文件名顺序在后,则确定第二指针指向的参考文件信息对应的文件为监控目录中被删除的文件,并将第二指针下移一位;返回判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
[0108]在另一个实施例中,判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同之后,还包括:[0109]判断第一指针指向的当前文件信息或第二指针指向的参考文件信息是否为空;
[0110]如果第一指针指向的当前文件信息为空,第二指针指向的参考文件信息不为空,则确定第二指针指向的参考文件信息对应的文件至第二列表末尾的参考文件信息对应的文件为被删除的文件;
[0111]如果第二指针指向的参考文件信息为空,第一指针指向的当前文件信息不为空,则确定第一指针指向的当前文件信息对应的文件至第一列表末尾的当前文件信息对应的文件为新增加的文件。
[0112]在另一个实施例中,得到包含文件名及签名值的当前文件信息集合之后,还包括:
[0113]存储当前文件信息集合,作为监控文件变化的参考文件信息集合。
[0114]在另一个实施例中,提供了一种监控文件变化的方法。参见图2,本公开实施例提供的方法流程包括:
[0115]在步骤201中,获取监控目录,并扫描该监控目录包含的每个文件。
[0116]由于本公开实施例提供的方法支持通过扫描监控目录中包含的文件来监控该监控目录下文件的变化情况,因此,为了获得该监控目录中包含的每个文件的情况,在监控文件的具体变化情况之前,需要获取监控目录,并扫描该监控目录包含的每个文件。关于获取监控目录以及扫描该监控目录包含的每个文件的方式,本公开实施例不作具体限定。
[0117]另外,为了实时发现监控目录包含的文件的变化情况,可以定时对监控目录进行扫描。关于定时扫描监控目录的时间间隔,本公开实施例不作具体限定。具体实施时,可以根据监控目录包含的文件的重要程度设置定时扫描的时间间隔,例如,可以每隔5min (分钟)、IOmin扫描监控目录包含的文件等。
[0118]在步骤202中,生成与扫描的每个文件对应的签名值。
[0119]其中,生成与扫描的每个文件对应的签名值的方式,可以有很多种,具体实施时,包括但不限于采用如下方式:
[0120]获取扫描的每个文件的文件特征信息,并根据扫描的每个文件的文件特征信息生成与扫描的每个文件对应的签名值。
[0121]其中,文件特征信息包括但不限于文件名、文件大小、文件权限、文件修改时间和/或文件内容。另外,如果操作系统支持,该文件属性还可以包括该文件所属的组/用户。
[0122]具体地,由于文件特征信息可以有很多种组合方式,因此,根据扫描的每个文件的文件特征信息生成与扫描的每个文件对应的签名值包括但不限于如下几种情况:
[0123]第一种情况:如果文件特征信息仅包括文件名、文件大小、文件权限、文件修改时间等文件属性信息,则在生成与扫描的每个文件对应的签名值时,可以仅根据文件属性信息生成对应的签名值。由于利用该方法生成与扫描的每个文件对应的签名值时,通过访问文件属性信息即可实现,因此,生成签名的操作简单且快捷。
[0124]第二种情况:如果文件特征信息如果仅包括文件内容,则可以直接根据文件内容生成对应的签名值。由于该方法直接根据文件内容生成对应的签名值,因此,可以监控文件中任何内容的变化,能够更好地确保文件的安全性。例如,即使文件中的某个字节被修改,该被修改情况也可以通过签名值显示出来,确保能够发现文件中的任何被修改情况。
[0125]第三种情况:如果文件特征信息既包括文件名、文件大小、文件权限、文件修改时间等文件属性信息,也包括文件内容,则同时根据文件属性信息和文件内容生成与扫描的每个文件对应的签名值。需要说明的是,由于采用该方法生成与扫描的每个文件对应的签名值时,除了需要获取文件属性信息外,还需要获取文件内容,因此,生成签名值的速度可能会比较慢,适合于监控比较小的文件的变化情况。然而,由于将文件内容也作为生成签名值的一部分内容,因此,通过该种方式能够识别出文件中的任何改动,能够更好地确保文件的安全性。
[0126]关于根据扫描的每个文件的文件特征信息生成每个文件对应的签名值时采用的算法,可以有很多种。例如,可以根据每个文件的文件特征信息通过哈希hash算法生成一个hash值,并将该hash值作为签名值。
[0127]在步骤203中,根据扫描的每个文件的文件名及生成的签名值,得到包含文件名及签名值的当前文件信息集合,其中,当前文件信息集合中的每条当前文件信息包括扫描的一个文件的文件名及对应的签名值。
[0128]其中,当前文件信息集合包括但不限于该监控目录下当前包含的所有文件的当前文件信息,并且当前文件信息集合中的每条当前文件信息包括扫描的一个文件的文件名及对应的签名值。
[0129]在步骤204中,将监控目录的当前文件信息集合与预先存储的该监控目录的参考文件信息集合进行比对,根据比对结果确定监控目录包含的文件是否发生变化,其中,参考文件信息集合中的每条参考文件信息包括预先扫描该监控目录后得到的每个文件的文件名及对应的签名值。
[0130]由于在获得当前文件信息集合和获得参考文件信息集合时,可能存在扫描文件的扫描顺序或其它原因,造成获得的当前对文件信息集合和参考文件信息集合中包含的各个文件的文件信息是杂乱无章的情况。因此,为了增加可比性,将监控目录的当前文件信息集合与预先存储的监控目录的参考文件信息集合进行比对之前,需要对当前文件信息集合和参考文件信息集合进行整理,以保证后续在比对当前文件信息集合和参考文件信息集合中的每条文件信息时简单快快捷。具体整理过程中,可以先对当前文件信息集合和参考文件信息集合中的每条文件信息采用相同的排序方式进行排序。
[0131]本公开实施例不对具体的排序方式进行限定,由于在当前文件信息集合和参考文件信息集合中包括了扫描的每个文件的文件名及对应的签名值,而利用文件名可以很好地区分各个不同的文件,因此,本公开实施例提供的方法通过按文件名对当前文件信息集合中的每条当前文件信息及参考文件信息集合中的每条参考文件信息分别排序,得到包含排序后的当前文件信息的第一列表及包含排序后的参考文件信息的第二列表。另外,按照文件名对当前文件信息集合和参考文件信息集合进行排序时,也可以有很多种方法。例如,可以预先设置按照文件名排序的某种规则来限定哪种类型的文件名排在前面,哪种类型的文件名排在后面,本公开实施例不对按照文件名进行排序的方式作具体限定。由于计算机能够快捷地处理二进制数值,因此,下面以按照文件名的对应的二进制数值对当前文件信息集合中的每条当前文件信息和参考文件信息中的每条参考文件信息进行排序对本公开实施例进行解释说明。
[0132]其中,按文件名对应的二进制数值对当前文件信息集合中的每条当前文件信息及参考文件信息集合中的每条参考文件信息分别排序包括但不限于按文件名对应的二进制数值由小到大的顺序和按文件名对应的二进制数值由大到小的顺序对前文件信息集合中的每条当前文件信息及参考文件信息集合中的每条参考文件信息分别排序。
[0133]需要说明的是,为了使按照文件名对应的二进制数值进行排序时,获得的排序结果唯一,可以在监控目录包含的每个文件的文件名中携带文件的绝对路径信息。由于文件系统中,每个包含绝对路径信息的文件名是唯一的,因此,排序结果必然是唯一的。当然,文件名也可以不包含绝对路径信息,保证监控目录中包含的文件按照文件名对应的二进制数值排序后,排序结果唯一即可。
[0134]另外,在按照文件名对应的二进制数值进行排序之前,需要先将文件名转换为对应的二进制数值。将文件名转换为对应的二进制数值时,可以先按由左到右的顺序将文件名包含的每一个字母、数字或汉字、符号等内容转换为相应的ASCII码,然后再将ASCII码转化为对应的二进制数值。当然,还可以采用其他方法将文件名转换为对应的二进制数值,本公开实施例对此不作具体限定。
[0135]由于第一列表和第二列表为按照一定的排序方式对扫描的每个文件的文件信息排序后获得的列表,为了确保在比对第一列表和第二列表中包含的文件信息时不重不漏,可以分别对第一列表和第二列表设置第一指针和第二指针,来指明每一次比对过程使用的文件信息,并将第一指针指向第一列表的第一条当前文件信息、第二指针指向第二列表的第一条参考文件信息,使得在比对第一列表和第二列表中的文件信息时,可以从第一列表和第二列表中存储的第一条文件信息的位置比起。
[0136]又由于在获得第一列表和第二列表时,按照文件名排序的方式不一样,判断得到的文件的变化情况不一样。因此,接下来以在获取第一列表和第二列表时,按照文件名对应的二进制数值从小到大的顺序排序,将第一列表和第二列表中包含的当前文件信息和参考文件信息进行比对,并根据比对结果来确定监控目录包含的文件是否发生变化的情况为例进行具体说明。
[0137]参见图3,将第一列表和第二列表进行比对,并根据比对结果来确定监控目录包含的文件是否发生变化的方式包括但不限于通过以下步骤来实现:
[0138]A:从第一指针指向的第一条当前文件信息和第二指针指向的第一条参考文件信息开始,判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同;如果第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名相同,执行步骤B;如果第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名不相同,执行步骤F。
[0139]B:判断第一指针指向的当前文件信息中的签名值和第二指针指向的参考文件信息中的签名值是否相同,如果第一指针指向的当前文件信息中的签名值和第二指针指向的参考文件信息中的签名值相同,执行步骤C ;如果第一指针指向的当前文件信息中的签名值和第二指针指向的参考文件信息中的签名值不相同,执行步骤D。
[0140]C:确定第一指针指向的当前文件信息对应的文件相对第二指针指向的参考文件信息对应的文件未发生变化,并执行步骤E。
[0141]D:确定第一指针指向的当前文件信息对应的文件相对第二指针指向的参考文件信息对应的文件被修改,并执行步骤E。
[0142]E:将第一指针和第二指针分别下移一位,返回判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
[0143]F:比较第一指针指向的当前文件信息中的文件名对应的二进制数值和第二指针指向的参考文件信息中的文件名对应的二进制数值的大小;如果第一指针指向的当前文件信息中的文件名对应的二进制数值较小,即第一指针指向的当前文件信息中的文件名比第二指针指向的参考文件信息中的文件名的文件名顺序在前,则执行步骤G ;如果第二指针指向的参考文件信息中的文件名对应的二进制数值较小,即第一指针指向的当前文件信息中的文件名比第二指针指向的参考文件信息中的文件名的文件名顺序在后,则执行步骤H。
[0144]G:确定第一指针指向的当前文件信息对应的文件为监控目录中新增加的文件,并将第一指针下移一位,返回判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
[0145]H:确定第二指针指向的参考文件信息对应的文件为监控目录中被删除的文件,并将第二指针下移一位,返回判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
[0146]另外,由于监控目录中包含的文件可能由于新增加文件或被删除文件而存在第一列表和第二列表中包含的文件信息的数目不一致的问题,在这种情况下,有可能在第一列表或第二列表中出现某一指针指向的文件信息为空,而另一指针指向的文件信息不为空的情况。因此,在比对第一指针和第二指针指向文件信息的过程中,还需要判断第一指针指向的当前文件信息或第二指针指向的参考文件信息是否为空。在该种情况下,如果第一指针指向的当前文件信息为空,第二指针指向的参考文件信息不为空,则确定第二指针指向的参考文件信息对应的文件至第二列表末尾的参考文件信息对应的文件为被删除的文件;如果第二指针指向的参考文件信息为空,第一指针指向的当前文件信息不为空,则确定第一指针指向的当前文件信息对应的文件至第一列表末尾的当前文件信息对应的文件为新增加的文件。
[0147]下面以一个具体的例子来对上述将第一列表和第二列表进行比对,并根据比对结果来确定该监控目录包含的文件是否发生变化进行举例说明。如表一所示,以表一所示的第一列表和第二列表包含的文件信息已按照文件名对应的二进制数值由小到大的顺序进行了排序为例。
[0148]表一
[0149]
【权利要求】
1.一种监控文件变化的方法,其特征在于,所述方法包括: 获取监控目录,并扫描所述监控目录包含的每个文件; 生成与扫描的每个文件对应的签名值,得到包含文件名及签名值的当前文件信息集合,每条当前文件信息包括扫描的一个文件的文件名及对应的签名值; 将所述监控目录的当前文件信息集合与预先存储的所述监控目录的参考文件信息集合进行比对,所述参考文件信息集合中的每条参考文件信息包括预先扫描所述监控目录后得到的一个文件的文件名及对应的签名值; 根据比对结果确定所述监控目录包含的文件是否发生变化。
2.根据权利要求1所述的方法,其特征在于,所述生成与扫描的每个文件对应的签名值,包括: 获取扫描的每个文件的文件特征信息,所述文件特征信息包括文件名、文件大小、文件权限、文件修改时间和/或文件内容; 根据扫描的每个文件的文件特征信息生成与扫描的每个文件对应的签名值。
3.根据权利要求2所述的方法,其特征在于,所述根据扫描的每个文件的文件特征信息生成与扫描的每个文件对应的签名值,包括: 根据所述每个文件的文件特征信息通过哈希算法计算生成每个文件对应的签名值。
4.根据权利要求1至3中任一项权利要求所述的方法,其特征在于,所述将所述监控目录的当前文件信息集合与预先存储的所述监控目录的参考文件信息集合进行比对,包括: 按文件名对所述当前文件信息集合中的每条当前文件信息及所述参考文件信息集合中的每条参考文件信息分别排序,得到包含排序后的当前文件信息的第一列表及包含排序后的参考文件信息的第二列表; 设置第一指针和第二指针,并将所述第一指针指向所述第一列表的第一条当前文件信息和所述第二指针指向所述第二列表的第一条参考文件信息; 从所述第一指针指向的第一条当前文件信息和所述第二指针指向的第一条参考文件信息开始,判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同; 如果所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名相同,则判断所述第一指针指向的当前文件信息中的签名值和所述第二指针指向的参考文件信息中的签名值是否相同; 如果所述第一指针指向的当前文件信息中的签名值和所述第二指针指向的参考文件信息中的签名值相同,则确定所述第一指针指向的当前文件信息对应的文件相对所述第二指针指向的参考文件信息对应的文件未发生变化,否则,确定所述第一指针指向的当前文件信息对应的文件相对所述第二指针指向的参考文件信息对应的文件被修改; 将所述第一指针和所述第二指针分别下移一位,返回判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将所述第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
5.根据权利要求4所述的方法,其特征在于,所述判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同之后,还包括: 如果所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名不同,则比较所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名的文件名顺序; 如果所述第一指针指向的当前文件信息中的文件名比所述第二指针指向的参考文件信息中的文件名的文件名顺序在前,则确定所述第一指针指向的当前文件信息对应的文件为所述监控目录中新增加的文件,并将所述第一指针下移一位;返回判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将所述第一列表中的当前文件信息或第二列表中的参考文件信息比对结束;如果所述第一指针指向的当前文件信息中的文件名比所述第二指针指向的参考文件信息中的文件名的文件名顺序在后,则确定所述第二指针指向的参考文件信息对应的文件为所述监控目录中被删除的文件,并将所述第二指针下移一位;返回判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将所述第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
6.根据权利要求4所述的方法,其特征在于,所述判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同之后,还包括: 判断所述第一指针指向的当前文件信息或所述第二指针指向的参考文件信息是否为空; 如果所述第一指针指向的当前文件信息为空,所述第二指针指向的参考文件信息不为空,则确定所述第二指针指向的参考文件信息对应的文件至所述第二列表末尾的参考文件信息对应的文件为被删除的文件; 如果所述第二指针指向的参考文件信息为空,所述第一指针指向的当前文件信息不为空,则确定所述第一指针指向的当前文件信息对应的文件至所述第一列表末尾的当前文件信息对应的文件为新增加的文件。
7.根据权利要求1所述的方法,其特征在于,所述得到包含文件名及签名值的当前文件信息集合之后,还包括: 存储所述当前文件信息集合,作为监控文件变化的参考文件信息集合。
8.—种监控文件变化的装置,其特征在于,所述装置包括: 获取模块,用于获取监控目录; 扫描模块,用于扫描所述监控目录包含的每个文件; 生成模块,用于生成与扫描的每个文件对应的签名值,得到包含文件名及签名值的当前文件信息集合,每条当前文件信息包括扫描的一个文件的文件名及对应的签名值; 比对模块,用于将所述监控目录的当前文件信息集合与预先存储的所述监控目录的参考文件信息集合进行比对,所述参考文件信息集合中的每条参考文件信息包括预先扫描所述监控目录后得到的一个文件的文件名及对应的签名值; 确定模块,用于根据比对结果确定所述监控目录包含的文件是否发生变化。
9.根据权利要求8所述的装置,其特征在于,所述生成模块,包括: 获取单元,用于获取扫描的每个文件的文件特征信息,所述文件特征信息包括文件名、文件大小、文件权限、文件修改时间和/或文件内容; 生成单元,用于根据扫描的每个文件的文件特征信息生成与扫描的每个文件对应的签名值。
10.根据权利要求9所述的装置,其特征在于,所述生成单元,用于根据所述每个文件的文件特征信息通过哈希算法计算生成每个文件对应的签名值。
11.根据权利要求8至10中任一项权利要求所述的装置,其特征在于,所述比对模块,包括: 排序单元,用于按文件名对所述当前文件信息集合中的每条当前文件信息及所述参考文件信息集合中的每条参考文件信息分别排序,得到包含排序后的当前文件信息的第一列表及包含排序后的参考文件信息的第二列表; 设置单元,用于设置第一指针和第二指针,并将所述第一指针指向所述第一列表的第一条当前文件信息和所述第二指针指向所述第二列表的第一条参考文件信息; 第一判断单元,用于从所述第一指针指向的第一条当前文件信息和所述第二指针指向的第一条参考文件信息开始,判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同; 第二判断单元,用于当所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名相同时,判断所述第一指针指向的当前文件信息中的签名值和所述第二指针指向的参考文件信息中的签名值是否相同; 第一确定单元,用于当所述第一指针指向的当前文件信息中的签名值和所述第二指针指向的参考文件信息中的签名值相同时,确定所述第一指针指向的当前文件信息对应的文件相对所述第二指针指向的参考文件信息对应的文件未发生变化,否则,确定所述第一指针指向的当前文件信息对应的文件相对所述第二指针指向的参考文件信息对应的文件被修改; 第一下移单元,用于将所述第一指针和所述第二指针分别下移一位; 第一返回单元,用于返回判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将所述第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
12.根据权利要求11所述的装置,其特征在于,所述比对模块,还包括: 比较单元,用于当所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名不同时,比较所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名的文件名顺序; 第二确定单元,用于当所述第一指针指向的当前文件信息中的文件名比所述第二指针指向的参考文件信息中的文件名的文件名顺序在前时,确定所述第一指针指向的当前文件信息对应的文件为所述监控目录中新增加的文件; 第二下移单元,用于将所述第一指针下移一位; 第二返回单元,用于返回判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将所述第一列表中的当前文件信息或第二列表中的参考文件信息比对结束; 第三确定单元,用于当所述第一指针指向的当前文件信息中的文件名比所述第二指针指向的参考文件信息中的文件名的文件名顺序在后时,确定所述第二指针指向的参考文件信息对应的文件为所述监控目录中被删除的文件; 第三下移单元, 用于将所述第二指针下移一位;第三返回单元,用于返回判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将所述第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
13.根据权利要求11所述的装置,其特征在于,所述比对模块,还包括: 第三判断单元,用于判断所述第一指针指向的当前文件信息或所述第二指针指向的参考文件信息是否为空; 第四确定单元,用于当所述第一指针指向的当前文件信息为空,所述第二指针指向的参考文件信息不为空时,确定所述第二指针指向的参考文件信息对应的文件至所述第二列表末尾的参考文件信息对应的文件为被删除的文件;当所述第二指针指向的参考文件信息为空,所述第一指针指向的当前文件信息不为空时,确定所述第一指针指向的当前文件信息对应的文件至所述第一列表末尾的当前文件信息对应的文件为新增加的文件。
14.根据权利要求8所述的装置,其特征在于,所述装置,还包括: 存储模块,用于存储所述当前文件信息集合,作为监控文件变化的参考文件信息集合。
15.一种服务器,其特征在于,所述服务器包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,所述一个或者一个以上程序包含用于进行以下操作的指令: 获取监控目录,并扫描所述监控目录包含的每个文件; 生成与扫描的每个文件对应的签名值,得到包含文件名及签名值的当前文件信息集合,每条当前文件信息包括扫描的一个文件的文件名及对应的签名值; 将所述监控目录的当前文件信息集合与预先存储的所述监控目录的参考文件信息集合进行比对,所述参考文件信息集合中的每条参考文件信息包括预先扫描所述监控目录后得到的一个文件的文件名及对应的签名值; 根据比对结果确定所述监控目录包含的文件是否发生变化。
【文档编号】G06F21/50GK103679002SQ201310681390
【公开日】2014年3月26日 申请日期:2013年12月12日 优先权日:2013年12月12日
【发明者】黄柏林, 李名进, 张晔 申请人:小米科技有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1