CN103679002A - 监控文件变化的方法、装置及服务器 - Google Patents
监控文件变化的方法、装置及服务器 Download PDFInfo
- Publication number
- CN103679002A CN103679002A CN201310681390.9A CN201310681390A CN103679002A CN 103679002 A CN103679002 A CN 103679002A CN 201310681390 A CN201310681390 A CN 201310681390A CN 103679002 A CN103679002 A CN 103679002A
- Authority
- CN
- China
- Prior art keywords
- file
- pointed
- information
- filename
- reference paper
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开是关于一种监控文件变化的方法、装置及服务器,属于计算机领域。该方法包括:获取监控目录,并扫描监控目录包含的每个文件;生成与扫描的每个文件对应的签名值,得到包含文件名及签名值的当前文件信息集合;将监控目录的当前文件信息集合与预先存储的监控目录的参考文件信息集合进行比对;根据比对结果确定监控目录包含的文件是否发生变化。本公开通过比对当前文件信息与参考文件信息来确认文件是否被修改,并及时发现文件的增删情况。另外,通过扫描监控目录包含的每一个文件,并生成每个文件对应的签名值的操作,确保操作系统能提供文件访问功能即可,适用的操作系统的类型较多,适用范围广。
Description
技术领域
本公开涉及计算机领域,特别涉及一种监控文件变化的方法、装置及服务器。
背景技术
随着计算机技术的迅速发展,利用计算机处理的事务越来越多,相应地,产生的文件也越来越多。通常,在计算机的文件系统中保存有运行应用程序的各种文件,当这些文件中的某些文件被篡改后,可能会给应用程序造成无法挽回的损失。例如,当某一应用程序中的核心配置文件被修改、被删除或在应用程序的文件系统中增加其他具有危害性的文件后,可能会给应用程序造成无法挽回的损失。因此,有必要提出一种监控文件变化的方法,以确保计算机文件系统的安全性。
发明内容
为了克服相关技术中存在的问题,本公开提供了一种监控文件变化的方法、装置及服务器。所述技术方案如下:
第一方面,本公开提供了一种监控文件变化的方法,所述方法包括:
获取监控目录,并扫描所述监控目录包含的每个文件;
生成与扫描的每个文件对应的签名值,得到包含文件名及签名值的当前文件信息集合,每条当前文件信息包括扫描的一个文件的文件名及对应的签名值;
将所述监控目录的当前文件信息集合与预先存储的所述监控目录的参考文件信息集合进行比对,所述参考文件信息集合中的每条参考文件信息包括预先扫描所述监控目录后得到的一个文件的文件名及对应的签名值;
根据比对结果确定所述监控目录包含的文件是否发生变化。
结合第一方面,在第一方面的第一种可能的实现方式中,所述生成与扫描的每个文件对应的签名值,包括:
获取扫描的每个文件的文件特征信息,所述文件特征信息包括文件名、文件大小、文件权限、文件修改时间和/或文件内容;
根据扫描的每个文件的文件特征信息生成与扫描的每个文件对应的签名值。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据扫描的每个文件的文件特征信息生成与扫描的每个文件对应的签名值,包括:
根据所述每个文件的文件特征信息通过哈希算法计算生成每个文件对应的签名值。
结合第一方面至第一方面的第二种可能的实现方式中的任一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述将所述监控目录的当前文件信息集合与预先存储的所述监控目录的参考文件信息集合进行比对,包括:
按文件名对所述当前文件信息集合中的每条当前文件信息及所述参考文件信息集合中的每条参考文件信息分别排序,得到包含排序后的当前文件信息的第一列表及包含排序后的参考文件信息的第二列表;
设置第一指针和第二指针,并将所述第一指针指向所述第一列表的第一条当前文件信息和所述第二指针指向所述第二列表的第一条参考文件信息;
从所述第一指针指向的第一条当前文件信息和所述第二指针指向的第一条参考文件信息开始,判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同;
如果所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名相同,则判断所述第一指针指向的当前文件信息中的签名值和所述第二指针指向的参考文件信息中的签名值是否相同;
如果所述第一指针指向的当前文件信息中的签名值和所述第二指针指向的参考文件信息中的签名值相同,则确定所述第一指针指向的当前文件信息对应的文件相对所述第二指针指向的参考文件信息对应的文件未发生变化,否则,确定所述第一指针指向的当前文件信息对应的文件相对所述第二指针指向的参考文件信息对应的文件被修改;
将所述第一指针和所述第二指针分别下移一位,返回判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将所述第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同之后,还包括:
如果所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名不同,则比较所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名的文件名顺序;
如果所述第一指针指向的当前文件信息中的文件名比所述第二指针指向的参考文件信息中的文件名的文件名顺序在前,则确定所述第一指针指向的当前文件信息对应的文件为所述监控目录中新增加的文件,并将所述第一指针下移一位;返回判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将所述第一列表中的当前文件信息或第二列表中的参考文件信息比对结束;
如果所述第一指针指向的当前文件信息中的文件名比所述第二指针指向的参考文件信息中的文件名的文件名顺序在后,则确定所述第二指针指向的参考文件信息对应的文件为所述监控目录中被删除的文件,并将所述第二指针下移一位;返回判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将所述第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
结合第一方面的第三种可能的实现方式,在第一方面的第五种可能的实现方式中,所述判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同之后,还包括:
判断所述第一指针指向的当前文件信息或所述第二指针指向的参考文件信息是否为空;
如果所述第一指针指向的当前文件信息为空,所述第二指针指向的参考文件信息不为空,则确定所述第二指针指向的参考文件信息对应的文件至所述第二列表末尾的参考文件信息对应的文件为被删除的文件;
如果所述第二指针指向的参考文件信息为空,所述第一指针指向的当前文件信息不为空,则确定所述第一指针指向的当前文件信息对应的文件至所述第一列表末尾的当前文件信息对应的文件为新增加的文件。
结合第一方面,在第一方面的第六种可能的实现方式中,所述得到包含文件名及签名值的当前文件信息集合之后,还包括:
存储所述当前文件信息集合,作为监控文件变化的参考文件信息集合。
第二方面,本公开提供了一种监控文件变化的装置,所述装置包括:
获取模块,用于获取监控目录;
扫描模块,用于扫描所述监控目录包含的每个文件;
生成模块,用于生成与扫描的每个文件对应的签名值,得到包含文件名及签名值的当前文件信息集合,每条当前文件信息包括扫描的一个文件的文件名及对应的签名值;
比对模块,用于将所述监控目录的当前文件信息集合与预先存储的所述监控目录的参考文件信息集合进行比对,所述参考文件信息集合中的每条参考文件信息包括预先扫描所述监控目录后得到的一个文件的文件名及对应的签名值;
确定模块,用于根据比对结果确定所述监控目录包含的文件是否发生变化。
结合第二方面,在第二方面的第一种可能的实现方式中,所述生成模块,包括:
获取单元,用于获取扫描的每个文件的文件特征信息,所述文件特征信息包括文件名、文件大小、文件权限、文件修改时间和/或文件内容;
生成单元,用于根据扫描的每个文件的文件特征信息生成与扫描的每个文件对应的签名值。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述生成单元,用于根据所述每个文件的文件特征信息通过哈希算法计算生成每个文件对应的签名值。
结合第二方面至第二方面的第二种可能的实现方式中的任一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述比对模块,包括:
排序单元,用于按文件名对所述当前文件信息集合中的每条当前文件信息及所述参考文件信息集合中的每条参考文件信息分别排序,得到包含排序后的当前文件信息的第一列表及包含排序后的参考文件信息的第二列表;
设置单元,用于设置第一指针和第二指针,并将所述第一指针指向所述第一列表的第一条当前文件信息和所述第二指针指向所述第二列表的第一条参考文件信息;
第一判断单元,用于从所述第一指针指向的第一条当前文件信息和所述第二指针指向的第一条参考文件信息开始,判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同;
第二判断单元,用于当所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名相同时,判断所述第一指针指向的当前文件信息中的签名值和所述第二指针指向的参考文件信息中的签名值是否相同;
第一确定单元,用于当所述第一指针指向的当前文件信息中的签名值和所述第二指针指向的参考文件信息中的签名值相同时,确定所述第一指针指向的当前文件信息对应的文件相对所述第二指针指向的参考文件信息对应的文件未发生变化,否则,确定所述第一指针指向的当前文件信息对应的文件相对所述第二指针指向的参考文件信息对应的文件被修改;
第一下移单元,用于将所述第一指针和所述第二指针分别下移一位;
第一返回单元,用于返回判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将所述第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述比对模块,还包括:
比较单元,用于当所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名不同时,比较所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名的文件名顺序;
第二确定单元,用于当所述第一指针指向的当前文件信息中的文件名比所述第二指针指向的参考文件信息中的文件名的文件名顺序在前时,确定所述第一指针指向的当前文件信息对应的文件为所述监控目录中新增加的文件;
第二下移单元,用于将所述第一指针下移一位;
第二返回单元,用于返回判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将所述第一列表中的当前文件信息或第二列表中的参考文件信息比对结束;
第三确定单元,用于当所述第一指针指向的当前文件信息中的文件名比所述第二指针指向的参考文件信息中的文件名的文件名顺序在后时,确定所述第二指针指向的参考文件信息对应的文件为所述监控目录中被删除的文件;
第三下移单元,用于将所述第二指针下移一位;
第三返回单元,用于返回判断所述第一指针指向的当前文件信息中的文件名和所述第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将所述第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
结合第二方面的第三种可能的实现方式,在第二方面的第五种可能的实现方式中,所述比对模块,还包括:
第三判断单元,用于判断所述第一指针指向的当前文件信息或所述第二指针指向的参考文件信息是否为空;
第四确定单元,用于当所述第一指针指向的当前文件信息为空,所述第二指针指向的参考文件信息不为空时,确定所述第二指针指向的参考文件信息对应的文件至所述第二列表末尾的参考文件信息对应的文件为被删除的文件;当所述第二指针指向的参考文件信息为空,所述第一指针指向的当前文件信息不为空时,确定所述第一指针指向的当前文件信息对应的文件至所述第一列表末尾的当前文件信息对应的文件为增加的文件。
结合第二方面,在第二方面的第六种可能的实现方式中,所述装置,还包括:
存储模块,用于存储所述当前文件信息集合,作为监控文件变化的参考文件信息集合。
第三方面,本公开提供了一种监控文件变化的服务器,所述服务器包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,所述一个或者一个以上程序包含用于进行以下操作的指令:
获取监控目录,并扫描所述监控目录包含的每个文件;
生成与扫描的每个文件对应的签名值,得到包含文件名及签名值的当前文件信息集合,每条当前文件信息包括扫描的一个文件的文件名及对应的签名值;
将所述监控目录的当前文件信息集合与预先存储的所述监控目录的参考文件信息集合进行比对,所述参考文件信息集合中的每条参考文件信息包括预先扫描所述监控目录后得到的一个文件的文件名及对应的签名值;
根据比对结果确定所述监控目录包含的文件是否发生变化。
本公开的一些有益效果可以包括:
通过扫描获取到的监控目录所包含的每个文件,生成与扫描的每个文件对应的签名值后,得到包含文件名及签名值的当前文件信息集合,并将监控目录的当前文件信息集合与预先存储的监控目录的参考文件信息集合进行比对,根据比对结果确定监控目录包含的文件是否发生变化,不仅能够确认文件是否被修改,而且能够及时发现监控目录中文件的增删情况。另外,通过扫描监控目录包含的每一个文件、生成每个文件对应的签名值以得到当前文件信息的操作,确保操作系统能提供文件访问功能即可,适用的操作系统的类型较多,适用范围广。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
为了更清楚地说明本公开中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本公开一个实施例提供的一种监控文件变化的方法的示例性流程图;
图2是本公开另一个实施例提供的一种监控文件变化的方法的示例性流程图;
图3是本公开另一个实施例提供的一种确定文件变化情况的示例性流程图;
图4是本公开另一个实施例提供的一种确定文件变化情况的示例性流程图;
图5是本公开另一个实施例提供的一种监控文件变化的装置结构示意图;
图6是本公开另一个实施例提供的一种生成模块的结构示意图;
图7是本公开另一个实施例提供的一种比对模块的结构示意图;
图8是本公开另一个实施例提供的一种比对模块的结构示意图;
图9是本公开另一个实施例提供的一种比对模块的结构示意图;
图10是本公开另一个实施例提供的一种监控文件变化的装置结构示意图;
图11是本公开另一个实施例提供的一种服务器的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本公开做进一步详细说明。在此,本公开的示意性实施方式及其说明用于解释本公开,但并不作为对本公开的限定。
本公开实施例提供一种监控文件变化的方法,以下结合附图对本公开进行详细说明。
随着计算机技术的不断发展,利用计算机处理的事务越来越多,因此,会产生越来越多的计算机文件,形成了包含众多文件的计算机文件系统。为了确保计算机文件系统的安全,需要对关键目录下的文件的变化情况进行实时监控,以及时发现文件系统中文件的变化情况。本公开实施例提供了一种监控文件变化的方法,利用该方法能够实现对文件系统中关键目录下的文件的变化情况进行实时监控。其中,本公开实施例提供的监控文件变化的方法能够及时发现关键目录下文件是否被修改,是否有新增加的文件以及是否有被删除的文件。
在一个实施例中,提供了一种监控文件变化的方法。参见图1,本公开实施例提供的方法流程包括:
在步骤101中,获取监控目录,并扫描监控目录包含的每个文件。
在步骤102中,生成与扫描的每个文件对应的签名值,得到包含文件名及签名值的当前文件信息集合,每条当前文件信息包括扫描的一个文件的文件名及对应的签名值。
在步骤103中,将监控目录的当前文件信息集合与预先存储的监控目录的参考文件信息集合进行比对,参考文件信息集合中的每条参考文件信息包括预先扫描监控目录后得到的一个文件的文件名及对应的签名值。
在步骤104中,根据比对结果确定监控目录包含的文件是否发生变化。
本公开实施例提供的方法,通过扫描获取到的监控目录所包含的每个文件,生成与扫描的每个文件对应的签名值后,得到包含文件名及签名值的当前文件信息集合,并将监控目录的当前文件信息集合与预先存储的监控目录的参考文件信息集合进行比对,根据比对结果确定监控目录包含的文件是否发生变化,不仅能够确认文件是否被修改,而且能够及时发现监控目录中文件的增删情况。另外,通过扫描监控目录包含的每一个文件、生成每个文件对应的签名值以得到当前文件信息的操作,确保操作系统能提供文件访问功能即可,适用的操作系统的类型较多,适用范围广。
在另一个实施例中,生成与扫描的每个文件对应的签名值,包括:
获取扫描的每个文件的文件特征信息,文件特征信息包括文件名、文件大小、文件权限、文件修改时间和/或文件内容;
根据扫描的每个文件的文件特征信息生成与扫描的每个文件对应的签名值。
在另一个实施例中,根据扫描的每个文件的文件特征信息生成与扫描的每个文件对应的签名值,包括:
根据所述每个文件的文件特征信息通过哈希算法计算生成每个文件对应的签名值。
在另一个实施例中,将监控目录的当前文件信息集合与预先存储的监控目录的参考文件信息集合进行比对,包括:
按文件名对当前文件信息集合中的每条当前文件信息及参考文件信息集合中的每条参考文件信息分别排序,得到包含排序后的当前文件信息的第一列表及包含排序后的参考文件信息的第二列表;
设置第一指针和第二指针,并将第一指针指向第一列表的第一条当前文件信息和第二指针指向第二列表的第一条参考文件信息;
从第一指针指向的第一条当前文件信息和第二指针指向的第一条参考文件信息开始,判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同;
如果第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名相同,则判断第一指针指向的当前文件信息中的签名值和第二指针指向的参考文件信息中的签名值是否相同;
如果第一指针指向的当前文件信息中的签名值和第二指针指向的参考文件信息中的签名值相同,则确定第一指针指向的当前文件信息对应的文件相对第二指针指向的参考文件信息对应的文件未发生变化,否则,确定第一指针指向的当前文件信息对应的文件相对第二指针指向的参考文件信息对应的文件被修改;
将第一指针和第二指针分别下移一位,返回判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
在另一个实施例中,判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同之后,还包括:
如果第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名不同,则比较第一指针指向的当前文件信息中的文件名对应的二进制数值和第二指针指向的参考文件信息中的文件名的文件名顺序;
如果第一指针指向的当前文件信息中的文件名比所述第二指针指向的参考文件信息中的文件名的文件名顺序在前,则确定第一指针指向的当前文件信息对应的文件为监控目录中新增加的文件,并将第一指针下移一位;返回判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将第一列表中的当前文件信息或第二列表中的参考文件信息比对结束;
如果所述第一指针指向的当前文件信息中的文件名比所述第二指针指向的参考文件信息中的文件名的文件名顺序在后,则确定第二指针指向的参考文件信息对应的文件为监控目录中被删除的文件,并将第二指针下移一位;返回判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
在另一个实施例中,判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同之后,还包括:
判断第一指针指向的当前文件信息或第二指针指向的参考文件信息是否为空;
如果第一指针指向的当前文件信息为空,第二指针指向的参考文件信息不为空,则确定第二指针指向的参考文件信息对应的文件至第二列表末尾的参考文件信息对应的文件为被删除的文件;
如果第二指针指向的参考文件信息为空,第一指针指向的当前文件信息不为空,则确定第一指针指向的当前文件信息对应的文件至第一列表末尾的当前文件信息对应的文件为新增加的文件。
在另一个实施例中,得到包含文件名及签名值的当前文件信息集合之后,还包括:
存储当前文件信息集合,作为监控文件变化的参考文件信息集合。
在另一个实施例中,提供了一种监控文件变化的方法。参见图2,本公开实施例提供的方法流程包括:
在步骤201中,获取监控目录,并扫描该监控目录包含的每个文件。
由于本公开实施例提供的方法支持通过扫描监控目录中包含的文件来监控该监控目录下文件的变化情况,因此,为了获得该监控目录中包含的每个文件的情况,在监控文件的具体变化情况之前,需要获取监控目录,并扫描该监控目录包含的每个文件。关于获取监控目录以及扫描该监控目录包含的每个文件的方式,本公开实施例不作具体限定。
另外,为了实时发现监控目录包含的文件的变化情况,可以定时对监控目录进行扫描。关于定时扫描监控目录的时间间隔,本公开实施例不作具体限定。具体实施时,可以根据监控目录包含的文件的重要程度设置定时扫描的时间间隔,例如,可以每隔5min(分钟)、10min扫描监控目录包含的文件等。
在步骤202中,生成与扫描的每个文件对应的签名值。
其中,生成与扫描的每个文件对应的签名值的方式,可以有很多种,具体实施时,包括但不限于采用如下方式:
获取扫描的每个文件的文件特征信息,并根据扫描的每个文件的文件特征信息生成与扫描的每个文件对应的签名值。
其中,文件特征信息包括但不限于文件名、文件大小、文件权限、文件修改时间和/或文件内容。另外,如果操作系统支持,该文件属性还可以包括该文件所属的组/用户。
具体地,由于文件特征信息可以有很多种组合方式,因此,根据扫描的每个文件的文件特征信息生成与扫描的每个文件对应的签名值包括但不限于如下几种情况:
第一种情况:如果文件特征信息仅包括文件名、文件大小、文件权限、文件修改时间等文件属性信息,则在生成与扫描的每个文件对应的签名值时,可以仅根据文件属性信息生成对应的签名值。由于利用该方法生成与扫描的每个文件对应的签名值时,通过访问文件属性信息即可实现,因此,生成签名的操作简单且快捷。
第二种情况:如果文件特征信息如果仅包括文件内容,则可以直接根据文件内容生成对应的签名值。由于该方法直接根据文件内容生成对应的签名值,因此,可以监控文件中任何内容的变化,能够更好地确保文件的安全性。例如,即使文件中的某个字节被修改,该被修改情况也可以通过签名值显示出来,确保能够发现文件中的任何被修改情况。
第三种情况:如果文件特征信息既包括文件名、文件大小、文件权限、文件修改时间等文件属性信息,也包括文件内容,则同时根据文件属性信息和文件内容生成与扫描的每个文件对应的签名值。需要说明的是,由于采用该方法生成与扫描的每个文件对应的签名值时,除了需要获取文件属性信息外,还需要获取文件内容,因此,生成签名值的速度可能会比较慢,适合于监控比较小的文件的变化情况。然而,由于将文件内容也作为生成签名值的一部分内容,因此,通过该种方式能够识别出文件中的任何改动,能够更好地确保文件的安全性。
关于根据扫描的每个文件的文件特征信息生成每个文件对应的签名值时采用的算法,可以有很多种。例如,可以根据每个文件的文件特征信息通过哈希hash算法生成一个hash值,并将该hash值作为签名值。
在步骤203中,根据扫描的每个文件的文件名及生成的签名值,得到包含文件名及签名值的当前文件信息集合,其中,当前文件信息集合中的每条当前文件信息包括扫描的一个文件的文件名及对应的签名值。
其中,当前文件信息集合包括但不限于该监控目录下当前包含的所有文件的当前文件信息,并且当前文件信息集合中的每条当前文件信息包括扫描的一个文件的文件名及对应的签名值。
在步骤204中,将监控目录的当前文件信息集合与预先存储的该监控目录的参考文件信息集合进行比对,根据比对结果确定监控目录包含的文件是否发生变化,其中,参考文件信息集合中的每条参考文件信息包括预先扫描该监控目录后得到的每个文件的文件名及对应的签名值。
由于在获得当前文件信息集合和获得参考文件信息集合时,可能存在扫描文件的扫描顺序或其它原因,造成获得的当前对文件信息集合和参考文件信息集合中包含的各个文件的文件信息是杂乱无章的情况。因此,为了增加可比性,将监控目录的当前文件信息集合与预先存储的监控目录的参考文件信息集合进行比对之前,需要对当前文件信息集合和参考文件信息集合进行整理,以保证后续在比对当前文件信息集合和参考文件信息集合中的每条文件信息时简单快快捷。具体整理过程中,可以先对当前文件信息集合和参考文件信息集合中的每条文件信息采用相同的排序方式进行排序。
本公开实施例不对具体的排序方式进行限定,由于在当前文件信息集合和参考文件信息集合中包括了扫描的每个文件的文件名及对应的签名值,而利用文件名可以很好地区分各个不同的文件,因此,本公开实施例提供的方法通过按文件名对当前文件信息集合中的每条当前文件信息及参考文件信息集合中的每条参考文件信息分别排序,得到包含排序后的当前文件信息的第一列表及包含排序后的参考文件信息的第二列表。另外,按照文件名对当前文件信息集合和参考文件信息集合进行排序时,也可以有很多种方法。例如,可以预先设置按照文件名排序的某种规则来限定哪种类型的文件名排在前面,哪种类型的文件名排在后面,本公开实施例不对按照文件名进行排序的方式作具体限定。由于计算机能够快捷地处理二进制数值,因此,下面以按照文件名的对应的二进制数值对当前文件信息集合中的每条当前文件信息和参考文件信息中的每条参考文件信息进行排序对本公开实施例进行解释说明。
其中,按文件名对应的二进制数值对当前文件信息集合中的每条当前文件信息及参考文件信息集合中的每条参考文件信息分别排序包括但不限于按文件名对应的二进制数值由小到大的顺序和按文件名对应的二进制数值由大到小的顺序对前文件信息集合中的每条当前文件信息及参考文件信息集合中的每条参考文件信息分别排序。
需要说明的是,为了使按照文件名对应的二进制数值进行排序时,获得的排序结果唯一,可以在监控目录包含的每个文件的文件名中携带文件的绝对路径信息。由于文件系统中,每个包含绝对路径信息的文件名是唯一的,因此,排序结果必然是唯一的。当然,文件名也可以不包含绝对路径信息,保证监控目录中包含的文件按照文件名对应的二进制数值排序后,排序结果唯一即可。
另外,在按照文件名对应的二进制数值进行排序之前,需要先将文件名转换为对应的二进制数值。将文件名转换为对应的二进制数值时,可以先按由左到右的顺序将文件名包含的每一个字母、数字或汉字、符号等内容转换为相应的ASCII码,然后再将ASCII码转化为对应的二进制数值。当然,还可以采用其他方法将文件名转换为对应的二进制数值,本公开实施例对此不作具体限定。
由于第一列表和第二列表为按照一定的排序方式对扫描的每个文件的文件信息排序后获得的列表,为了确保在比对第一列表和第二列表中包含的文件信息时不重不漏,可以分别对第一列表和第二列表设置第一指针和第二指针,来指明每一次比对过程使用的文件信息,并将第一指针指向第一列表的第一条当前文件信息、第二指针指向第二列表的第一条参考文件信息,使得在比对第一列表和第二列表中的文件信息时,可以从第一列表和第二列表中存储的第一条文件信息的位置比起。
又由于在获得第一列表和第二列表时,按照文件名排序的方式不一样,判断得到的文件的变化情况不一样。因此,接下来以在获取第一列表和第二列表时,按照文件名对应的二进制数值从小到大的顺序排序,将第一列表和第二列表中包含的当前文件信息和参考文件信息进行比对,并根据比对结果来确定监控目录包含的文件是否发生变化的情况为例进行具体说明。
参见图3,将第一列表和第二列表进行比对,并根据比对结果来确定监控目录包含的文件是否发生变化的方式包括但不限于通过以下步骤来实现:
A:从第一指针指向的第一条当前文件信息和第二指针指向的第一条参考文件信息开始,判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同;如果第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名相同,执行步骤B;如果第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名不相同,执行步骤F。
B:判断第一指针指向的当前文件信息中的签名值和第二指针指向的参考文件信息中的签名值是否相同,如果第一指针指向的当前文件信息中的签名值和第二指针指向的参考文件信息中的签名值相同,执行步骤C;如果第一指针指向的当前文件信息中的签名值和第二指针指向的参考文件信息中的签名值不相同,执行步骤D。
C:确定第一指针指向的当前文件信息对应的文件相对第二指针指向的参考文件信息对应的文件未发生变化,并执行步骤E。
D:确定第一指针指向的当前文件信息对应的文件相对第二指针指向的参考文件信息对应的文件被修改,并执行步骤E。
E:将第一指针和第二指针分别下移一位,返回判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
F:比较第一指针指向的当前文件信息中的文件名对应的二进制数值和第二指针指向的参考文件信息中的文件名对应的二进制数值的大小;如果第一指针指向的当前文件信息中的文件名对应的二进制数值较小,即第一指针指向的当前文件信息中的文件名比第二指针指向的参考文件信息中的文件名的文件名顺序在前,则执行步骤G;如果第二指针指向的参考文件信息中的文件名对应的二进制数值较小,即第一指针指向的当前文件信息中的文件名比第二指针指向的参考文件信息中的文件名的文件名顺序在后,则执行步骤H。
G:确定第一指针指向的当前文件信息对应的文件为监控目录中新增加的文件,并将第一指针下移一位,返回判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
H:确定第二指针指向的参考文件信息对应的文件为监控目录中被删除的文件,并将第二指针下移一位,返回判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
另外,由于监控目录中包含的文件可能由于新增加文件或被删除文件而存在第一列表和第二列表中包含的文件信息的数目不一致的问题,在这种情况下,有可能在第一列表或第二列表中出现某一指针指向的文件信息为空,而另一指针指向的文件信息不为空的情况。因此,在比对第一指针和第二指针指向文件信息的过程中,还需要判断第一指针指向的当前文件信息或第二指针指向的参考文件信息是否为空。在该种情况下,如果第一指针指向的当前文件信息为空,第二指针指向的参考文件信息不为空,则确定第二指针指向的参考文件信息对应的文件至第二列表末尾的参考文件信息对应的文件为被删除的文件;如果第二指针指向的参考文件信息为空,第一指针指向的当前文件信息不为空,则确定第一指针指向的当前文件信息对应的文件至第一列表末尾的当前文件信息对应的文件为新增加的文件。
下面以一个具体的例子来对上述将第一列表和第二列表进行比对,并根据比对结果来确定该监控目录包含的文件是否发生变化进行举例说明。如表一所示,以表一所示的第一列表和第二列表包含的文件信息已按照文件名对应的二进制数值由小到大的顺序进行了排序为例。
表一
结合上述内容以及表一所示的内容,在判断监控目录中的文件是否发生变化时,从第一列表和第二列表中的第一个文件信息的位置比起。首先,判断第一指针和第二指针指向的文件名是否相同。由表一得知,第一指针和第二指针指向的文件名均为/etc/,因此,进一步判断该文件名/etc/对应的签名值是否相同。由于在第一列表和第二列表中/etc/对应的签名值分别为356443432和453445454,即签名值并不相同,因此,确定文件名/etc/对应的文件被修改。
接下来,将第一指针和第二指针分别下移一位,此时由表一得第一指针指向/etc/check.sh,而第二指针指向/etc/hosts。由于第一指针和第二指针指向的文件名不同,因此,需要判断指针和第二指针指向的文件名对应的二进制数值的大小。由于第一列表和第二列表在排序时,采用按照文件名对应的二进制数值由小到大的顺序排序,且由于在第一列表中,/etc/hosts在/etc/check.sh的下一行,由此可以判断/etc/check.sh对应的二进制数值较小,即/etc/check.sh比/etc/hosts的文件名顺序在前,因此,判断/etc/check.sh为监控目录下新增加的文件,并将第一指针的位置下移一位。
接下来,由表一得,第一指针指向/etc/hosts,与第二指针指向的文件名相同。因此,继续判断/etc/hosts对应的签名是否相同,由表一得到在第一列表和第二列表中,/etc/hosts对应的签名值均为234354523,因此,判断/etc/hosts对应的文件未被修改。
然后,将第一指针和第二指针分别下移一位,此时由表一得第一指针指向/etc/resolv.conf,而第二指针指向/etc/lost_file,由于第一指针和第二指针指向的文件名不同,因此,需要判断指针和第二指针指向的文件名对应的二进制数值的大小,由第二列表得到/etc/lost_file对应的二进制数值较小,即/etc/resolv.conf比/etc/lost_file的文件名顺序在后,因此,确定/etc/lost_file为被删除的文件。
接着,将第二指针下移一位,使第二指针指向/etc/resolv.conf,此时由于第一指针和第二指针指向的文件名均为/etc/resolv.conf,需要进一步判断/etc/resolv.conf对应的签名值。由于第一列表中/etc/resolv.conf对应的签名值为645343434,第二列表中/etc/resolv.conf对应的签名值为545432334,因此,确定/etc/resolv.conf对应的文件被修改。
继续将第一指针和第二指针同时下移一位,此时发现第一指针指向的文件名为/etc/sesolv,而第二指针指向的文件名为空,因此,判断第一列表至第一列表中末尾的最后一个当前文件信息均为新增加的文件。
接下来以在获取第一列表和第二列表时,按照文件名对应的二进制数值从大到小的顺序排序,来对将第一列表和第二列表中包含的当前文件信息和参考文件信息进行比对,并根据比对结果来确定监控目录包含的文件是否发生变化的情况进行具体说明。其中,参见图4,根据比对结果来确定监控目录包含的文件是否发生变化包括但不限于通过以下步骤来实现:
a:从第一指针指向的第一条当前文件信息和第二指针指向的第一条参考文件信息开始,判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同;如果第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名相同,执行步骤b;如果第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名不相同,执行步骤f。
b:判断第一指针指向的当前文件信息中的签名值和第二指针指向的参考文件信息中的签名值是否相同,如果第一指针指向的当前文件信息中的签名值和第二指针指向的参考文件信息中的签名值相同,执行步骤c;如果第一指针指向的当前文件信息中的签名值和第二指针指向的参考文件信息中的签名值不相同,执行步骤d。
c:确定第一指针指向的当前文件信息对应的文件相对第二指针指向的参考文件信息对应的文件未发生变化,并执行步骤e。
d:确定第一指针指向的当前文件信息对应的文件相对第二指针指向的参考文件信息对应的文件被修改,并执行步骤e。
e:将第一指针和第二指针分别下移一位,返回判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
f:比较第一指针指向的当前文件信息中的文件名对应的二进制数值和第二指针指向的参考文件信息中的文件名对应的二进制数值的大小;如果第一指针指向的当前文件信息中的文件名对应的二进制数值较大,即第一指针指向的当前文件信息中的文件名比所述第二指针指向的参考文件信息中的文件名的文件名顺序在前,则执行步骤g;如果第二指针指向的参考文件信息中的文件名对应的二进制数值较大,即第一指针指向的当前文件信息中的文件名比所述第二指针指向的参考文件信息中的文件名的文件名顺序在后,则执行步骤h。
g:确定第一指针指向的当前文件信息对应的文件为监控目录中新增加的文件,并将第一指针下移一位,返回判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
h:确定第二指针指向的参考文件信息对应的文件为监控目录中被删除的文件,并将第二指针下移一位,返回判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
另外,由于监控目录中包含的文件可能由于存在新增加的文件或删除的文件而存在文件信息的数目不一致的问题,在这种情况下,有可能在第一列表或第二列表中出现某一指针指向的文件信息为空,而另一指针指向的文件信息不为空的情况。因此,在比对第一指针和第二指针指向文件信息的过程中,还需要判断判断第一指针指向的当前文件信息或第二指针指向的参考文件信息是否为空;如果第一指针指向的当前文件信息为空,第二指针指向的参考文件信息不为空,则确定第二指针指向的当前文件信息对应的文件至第一列表末尾的当前文件信息对应的文件为被删除的文件。如果第二指针指向的参考文件信息为空,第一指针指向的当前文件信息不为空,则确定第一指针指向的参考文件信息对应的文件至第二列表末尾的参考文件信息对应的文件为新增加的文件。
由于按照文件名对应的二进制数值由大到小排序时,可以将表一所包含的内容倒置,并参照上述按照文件名对应的二进制数值由小到大排序确定文件的变化情况,因此在此不再举例说明。
在另一个实施例中,在得到包含文件名及签名值的当前文件信息集合之后,还可以存储当前文件信息集合,作为监控文件变化的参考文件信息集合。
在另一个实施例中,在获得监控列表中文件的变化情况后,还可以将监控目录中文件的变化情况通知对应的管理者,使管理者可以实时掌握监控目录中文件的变化情况。其中,将监控目录中文件的变化情况通知对应的管理者的方式可以有很多种,例如,可以通过邮件、短信、发系统消息或记录监控日志等方式,本公开实施例对此不作具体限定。
本公开实施例提供的方法,通过扫描获取到的监控目录所包含的每个文件,生成与扫描的每个文件对应的签名值后,得到包含文件名及签名值的当前文件信息集合,并将监控目录的当前文件信息集合与预先存储的监控目录的参考文件信息集合进行比对,根据比对结果确定监控目录包含的文件是否发生变化,不仅能够确认文件是否被修改,而且能够及时发现监控目录中文件的增删情况。另外,通过扫描监控目录包含的每一个文件、生成每个文件对应的签名值以得到当前文件信息的操作,确保操作系统能提供文件访问功能即可,适用的操作系统的类型较多,适用范围广。
在另一个实施例中,提供了一种监控文件变化的装置,参见图5,该装置包括:
获取模块301,用于获取监控目录;
扫描模块302,用于扫描监控目录包含的每个文件;
生成模块303,用于生成与扫描的每个文件对应的签名值,得到包含文件名及签名值的当前文件信息集合,每条当前文件信息包括扫描的一个文件的文件名及对应的签名值;
比对模块304,用于将监控目录的当前文件信息集合与预先存储的监控目录的参考文件信息集合进行比对,参考文件信息集合中的每条参考文件信息包括预先扫描监控目录后得到的一个文件的文件名及对应的签名值;
确定模块305,用于根据比对结果确定监控目录包含的文件是否发生变化。
在另一个实施例中,参见图6,生成模块303,包括:
获取单元3031,用于获取扫描的每个文件的文件特征信息,文件特征信息包括文件名、文件大小、文件权限、文件修改时间和/或文件内容;
生成单元3032,用于根据扫描的每个文件的文件特征信息生成与扫描的每个文件对应的签名值。
在另一个实施例中,生成单元3032,用于根据每个文件的文件特征信息通过哈希算法计算生成每个文件对应的签名值。
在另一个实施例中,参见图7,比对模块304,包括:
排序单元3041,用于按文件名对当前文件信息集合中的每条当前文件信息及参考文件信息集合中的每条参考文件信息分别排序,得到包含排序后的当前文件信息的第一列表及包含排序后的参考文件信息的第二列表;
设置单元3042,用于设置第一指针和第二指针,并将第一指针指向第一列表的第一条当前文件信息和第二指针指向第二列表的第一条参考文件信息;
第一判断单元3043,用于从第一指针指向的第一条当前文件信息和第二指针指向的第一条参考文件信息开始,判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同;
第二判断单元3044,用于当第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名相同时,判断第一指针指向的当前文件信息中的签名值和第二指针指向的参考文件信息中的签名值是否相同;
第一确定单元3045,用于当第一指针指向的当前文件信息中的签名值和第二指针指向的参考文件信息中的签名值相同时,确定第一指针指向的当前文件信息对应的文件相对第二指针指向的参考文件信息对应的文件未发生变化,否则,确定第一指针指向的当前文件信息对应的文件相对第二指针指向的参考文件信息对应的文件被修改;
第一下移单元3046,用于将第一指针和第二指针分别下移一位;
第一返回单元3047,用于返回判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
在另一个实施例中,参见图8,比对模304,还包括:
比较单元3048,用于当第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名不同时,比较第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名的文件名顺序;
第二确定单元3049,用于当第一指针指向的当前文件信息中的文件名比第二指针指向的参考文件信息中的文件名的文件名顺序在前时,确定第一指针指向的当前文件信息对应的文件为监控目录中新增加的文件;
第二下移单元30410,用于将第一指针下移一位;
第二返回单元30411,用于返回判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将第一列表中的当前文件信息或第二列表中的参考文件信息比对结束;
第三确定单元30412,用于当第一指针指向的当前文件信息中的文件名比第二指针指向的参考文件信息中的文件名的文件名顺序在后时,确定第二指针指向的参考文件信息对应的文件为监控目录中被删除的文件;
第三下移单元30413,用于将第二指针下移一位;
第三返回单元30414,用于返回判断第一指针指向的当前文件信息中的文件名和第二指针指向的参考文件信息中的文件名是否相同的步骤,直至将第一列表中的当前文件信息或第二列表中的参考文件信息比对结束。
在另一个实施例中,参见图9,比对模304,还包括:
第三判断单元30415,用于判断第一指针指向的当前文件信息或第二指针指向的参考文件信息是否为空;
第四确定单元30416,用于当第一指针指向的当前文件信息为空,第二指针指向的参考文件信息不为空时,确定第二指针指向的参考文件信息对应的文件至第二列表末尾的参考文件信息对应的文件为被删除的文件;当第二指针指向的参考文件信息为空,第一指针指向的当前文件信息不为空时,确定第一指针指向的当前文件信息对应的文件至第一列表末尾的当前文件信息对应的文件为新增加的文件。
在另一个实施例中,参见图10,装置,还包括:
存储模块306,用于存储当前文件信息集合,作为监控文件变化的参考文件信息集合。
本公开实施例提供的装置,通过扫描获取到的监控目录所包含的每个文件,生成与扫描的每个文件对应的签名值后,得到包含文件名及签名值的当前文件信息集合,并将监控目录的当前文件信息集合与预先存储的监控目录的参考文件信息集合进行比对,根据比对结果确定监控目录包含的文件是否发生变化,不仅能够确认文件是否被修改,而且能够及时发现监控目录中文件的增删情况。另外,通过扫描监控目录包含的每一个文件、生成每个文件对应的签名值以得到当前文件信息的操作,确保操作系统能提供文件访问功能即可,适用的操作系统的类型较多,适用范围广。
在另一个实施例中,提供了一种服务器,该服务器包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,所述一个或者一个以上程序包含用于进行以下操作的指令:
获取监控目录,并扫描监控目录包含的每个文件;
生成与扫描的每个文件对应的签名值,得到包含文件名及签名值的当前文件信息集合,每条当前文件信息包括扫描的一个文件的文件名及对应的签名值;
将监控目录的当前文件信息集合与预先存储的监控目录的参考文件信息集合进行比对,参考文件信息集合中的每条参考文件信息包括预先扫描监控目录后得到的一个文件的文件名及对应的签名值;
根据比对结果确定监控目录包含的文件是否发生变化。
本公开实施例提供的终端,通过扫描获取到的监控目录所包含的每个文件,生成与扫描的每个文件对应的签名值后,得到包含文件名及签名值的当前文件信息集合,并将监控目录的当前文件信息集合与预先存储的监控目录的参考文件信息集合进行比对,根据比对结果确定监控目录包含的文件是否发生变化,不仅能够确认文件是否被修改,而且能够及时发现监控目录中文件的增删情况。另外,通过扫描监控目录包含的每一个文件、生成每个文件对应的签名值以得到当前文件信息的操作,确保操作系统能提供文件访问功能即可,适用的操作系统的类型较多,适用范围广。
图11是本公开中服务器的结构示意图。该服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在服务器1100上执行存储介质1130中的一系列指令操作。
服务器1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,一个或一个以上键盘1156,和/或,一个或一个以上操作系统1141,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM,FreeBSDTM等等。
以上所述的具体实施方式,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施方式而已,并不用于限定本公开的保护范围,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (15)
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.一种服务器,其特征在于,所述服务器包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,所述一个或者一个以上程序包含用于进行以下操作的指令:
获取监控目录,并扫描所述监控目录包含的每个文件;
生成与扫描的每个文件对应的签名值,得到包含文件名及签名值的当前文件信息集合,每条当前文件信息包括扫描的一个文件的文件名及对应的签名值;
将所述监控目录的当前文件信息集合与预先存储的所述监控目录的参考文件信息集合进行比对,所述参考文件信息集合中的每条参考文件信息包括预先扫描所述监控目录后得到的一个文件的文件名及对应的签名值;
根据比对结果确定所述监控目录包含的文件是否发生变化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310681390.9A CN103679002B (zh) | 2013-12-12 | 2013-12-12 | 监控文件变化的方法、装置及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310681390.9A CN103679002B (zh) | 2013-12-12 | 2013-12-12 | 监控文件变化的方法、装置及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103679002A true CN103679002A (zh) | 2014-03-26 |
CN103679002B CN103679002B (zh) | 2016-09-28 |
Family
ID=50316518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310681390.9A Active CN103679002B (zh) | 2013-12-12 | 2013-12-12 | 监控文件变化的方法、装置及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103679002B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104133739A (zh) * | 2014-07-28 | 2014-11-05 | 珠海市君天电子科技有限公司 | 一种自动备份文件的方法及装置 |
CN104317950A (zh) * | 2014-11-07 | 2015-01-28 | 中国农业银行股份有限公司 | 代码的合规检查方法及装置 |
CN104331666A (zh) * | 2014-11-10 | 2015-02-04 | 成都卫士通信息产业股份有限公司 | 一种计算机系统可信度量方法 |
CN106130995A (zh) * | 2016-06-30 | 2016-11-16 | 三星电子(中国)研发中心 | 建立通信连接的方法、装置及系统 |
CN106569936A (zh) * | 2016-09-26 | 2017-04-19 | 深圳盒子支付信息技术有限公司 | 一种实时采集滚动日志的方法及系统 |
WO2017206185A1 (zh) * | 2016-06-03 | 2017-12-07 | 华为技术有限公司 | 验证应用程序合法性的方法、装置及系统 |
CN109446165A (zh) * | 2018-10-11 | 2019-03-08 | 中盈优创资讯科技有限公司 | 大数据平台的文件合并方法及装置 |
CN111625499A (zh) * | 2020-05-28 | 2020-09-04 | 浪潮电子信息产业股份有限公司 | 一种快照回滚工具、方法及设备 |
CN111859896A (zh) * | 2019-04-01 | 2020-10-30 | 长鑫存储技术有限公司 | 配方文档检测方法、装置、计算机可读介质及电子设备 |
CN111967059A (zh) * | 2020-08-11 | 2020-11-20 | 广东堡塔安全技术有限公司 | 一种网站防篡改方法、系统及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101236554A (zh) * | 2007-11-29 | 2008-08-06 | 中兴通讯股份有限公司 | 一种数据库海量数据比对的方法 |
CN101604268A (zh) * | 2009-07-13 | 2009-12-16 | 浪潮电子信息产业股份有限公司 | 一种监控目录变化事件过滤方法 |
CN101639880A (zh) * | 2008-07-31 | 2010-02-03 | 华为技术有限公司 | 一种文件检测方法和装置 |
US20100169972A1 (en) * | 2008-12-31 | 2010-07-01 | Microsoft Corporation | Shared repository of malware data |
CN102360410A (zh) * | 2011-09-30 | 2012-02-22 | 许式伟 | 文件系统的用户操作发现方法和应用该方法的同步系统 |
-
2013
- 2013-12-12 CN CN201310681390.9A patent/CN103679002B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101236554A (zh) * | 2007-11-29 | 2008-08-06 | 中兴通讯股份有限公司 | 一种数据库海量数据比对的方法 |
CN101639880A (zh) * | 2008-07-31 | 2010-02-03 | 华为技术有限公司 | 一种文件检测方法和装置 |
US20100169972A1 (en) * | 2008-12-31 | 2010-07-01 | Microsoft Corporation | Shared repository of malware data |
CN101604268A (zh) * | 2009-07-13 | 2009-12-16 | 浪潮电子信息产业股份有限公司 | 一种监控目录变化事件过滤方法 |
CN102360410A (zh) * | 2011-09-30 | 2012-02-22 | 许式伟 | 文件系统的用户操作发现方法和应用该方法的同步系统 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104133739A (zh) * | 2014-07-28 | 2014-11-05 | 珠海市君天电子科技有限公司 | 一种自动备份文件的方法及装置 |
CN104133739B (zh) * | 2014-07-28 | 2017-09-05 | 珠海市君天电子科技有限公司 | 一种自动备份文件的方法及装置 |
CN104317950B (zh) * | 2014-11-07 | 2017-11-03 | 中国农业银行股份有限公司 | 代码的合规检查方法及装置 |
CN104317950A (zh) * | 2014-11-07 | 2015-01-28 | 中国农业银行股份有限公司 | 代码的合规检查方法及装置 |
CN104331666A (zh) * | 2014-11-10 | 2015-02-04 | 成都卫士通信息产业股份有限公司 | 一种计算机系统可信度量方法 |
WO2017206185A1 (zh) * | 2016-06-03 | 2017-12-07 | 华为技术有限公司 | 验证应用程序合法性的方法、装置及系统 |
CN106130995A (zh) * | 2016-06-30 | 2016-11-16 | 三星电子(中国)研发中心 | 建立通信连接的方法、装置及系统 |
CN106569936A (zh) * | 2016-09-26 | 2017-04-19 | 深圳盒子支付信息技术有限公司 | 一种实时采集滚动日志的方法及系统 |
CN106569936B (zh) * | 2016-09-26 | 2019-05-03 | 深圳盒子信息科技有限公司 | 一种实时采集滚动日志的方法及系统 |
CN109446165A (zh) * | 2018-10-11 | 2019-03-08 | 中盈优创资讯科技有限公司 | 大数据平台的文件合并方法及装置 |
CN111859896A (zh) * | 2019-04-01 | 2020-10-30 | 长鑫存储技术有限公司 | 配方文档检测方法、装置、计算机可读介质及电子设备 |
CN111625499A (zh) * | 2020-05-28 | 2020-09-04 | 浪潮电子信息产业股份有限公司 | 一种快照回滚工具、方法及设备 |
CN111967059A (zh) * | 2020-08-11 | 2020-11-20 | 广东堡塔安全技术有限公司 | 一种网站防篡改方法、系统及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103679002B (zh) | 2016-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103679002B (zh) | 监控文件变化的方法、装置及服务器 | |
US9760551B2 (en) | Generating regular expression | |
CN109784058A (zh) | 版本强一致性校验方法、客户端、服务器及存储介质 | |
CN107402945B (zh) | 词库生成方法及装置、短文本检测方法及装置 | |
CN110489701A (zh) | 提取cms识别特征的方法、装置及cms识别方法 | |
CN109783356A (zh) | 一种自动化测试方法及终端 | |
CN111443899B (zh) | 一种元素处理方法、装置、电子设备及存储介质 | |
CN111736762B (zh) | 数据存储网络的同步更新方法、装置、设备及存储介质 | |
CN109933502B (zh) | 电子装置、用户操作记录的处理方法和存储介质 | |
CN107480068A (zh) | 代码完整性检测方法、装置、电子终端及可读存储介质 | |
CN105160246A (zh) | 一种识别被劫持浏览器的方法及浏览器 | |
CN113869789A (zh) | 一种风险监控的方法、装置、计算机设备及存储介质 | |
CN110019193B (zh) | 相似帐号识别方法、装置、设备、系统及可读介质 | |
CN106453544B (zh) | 一种云环境及其监控方法、系统 | |
CN113282921A (zh) | 一种文件检测方法、装置、设备及存储介质 | |
CN117113430A (zh) | 网页违规图片检测方法和装置、电子设备、存储介质 | |
CN112287382A (zh) | 一种用于设备数据的安全合规处理系统及方法 | |
CN110503504B (zh) | 网络产品的信息识别方法、装置及设备 | |
CN113656044B (zh) | 安卓安装包压缩方法、装置、计算机设备及存储介质 | |
CN103514402A (zh) | 入侵检测方法及装置 | |
CN111488316A (zh) | 文件缓存回收方法及装置 | |
US10776376B1 (en) | Systems and methods for displaying search results | |
CN105787359A (zh) | 进程守护方法和装置 | |
CN115495740A (zh) | 一种病毒检测方法和装置 | |
CN105740666A (zh) | 识别线上操作风险的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |