文件备份方法、装置及文件还原方法、装置与流程

文档序号:14443891阅读:194来源:国知局
文件备份方法、装置及文件还原方法、装置与流程

本发明涉及文件系统技术领域,尤其涉及文件备份方法、装置及文件还原方法、装置。



背景技术:

随着计算机应用的普及,原有的各种纸质主文档也都开始转化为电子主文档的形式。这样,人们在使用时,可以直接打开之前存储的电子主文档进行使用和再次编辑,当使用完毕后,将电子主文档进行保存即可。为了避免误操作等造成电子主文档丢失的情况出现,通常都会对主文档进行备份。

现有的处理过程中,主文档备份采取的方式是主动备份,即在每次需要备份的时候,手动进行备份操作,这样,每次备份操作后都会重新生成一个备份文档,多次备份操作生成的多个备份文档会存在很多重复的内容,并且,占用大量的存储空间。而且,在每次修改主文档后都要进行备份操作,不然的话,当主用主文档丢失或损坏时,备份文档恢复主用主文档后就有可能丢失一部分资料。

另外,在以勒索类病毒不断泛滥的大背景下,一些带有明显后缀的备份文档(例如,txt、doc、pdf等)也可能随时被加密,严重时失去恢复主用主文档的功能。

综上,目前关于文件备份和恢复过程中操作繁琐的问题,尚无有效的解决办法。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供了文件备份方法、装置及文件还原方法、装置,通过设置备份文档,并通过hook技术将主文档与相对应的备份文档进行关联,从而实现了对主文档的便捷备份和还原。

第一方面,本发明实施例提供了文件备份方法,包括:判断主文档是否为需要备份的主文档;

为是时,在数据库中查找与主文档相对应的备份文档是否存在;

当查找到备份文档不存在时,创建备份文档,将主文档中的内容复制到备份文档中,且,将备份文档的路径写入数据库中;

当查找到备份文档存在时,编辑主文档,且,通过hook实现对备份文档的同步编辑;

关闭主文档和备份文档,计算备份文档的备份md5值,将备份md5值存储在数据库中。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,判断主文档是否为需要备份的主文档之前,还包括:

将需要备份的主文档设定为自动备份文档;

计算主文档路径的md5值,且,将md5值写入数据库中。

结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,判断主文档是否为需要备份的主文档,包括:

调用kernel32!createfile打开主文档;

在数据库中查找与主文档相对应的md5值是否存在;

查找结果为存在时,判定主文档为需要备份的主文档。

结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,当查找到备份文档不存在时,创建备份文档,包括:

当查找到备份文档不存在时,创建备份文档;

将备份文档去掉后缀,且,将主文档的内容复制到备份文档中。

结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,当查找到备份文档存在时,编辑主文档,且,通过hook实现对备份文档的同步编辑,包括:

当查找到备份文档存在时,将备份文档的属性修改为可写,且,打开备份文档;

调用kernel32!writefile修改主文档,且,通过hook实现对备份文档的同步编辑;

调用kernel32!closehandle关闭主文档和备份文档,且,将备份文档的属性修改为只读。

第二方面,本发明实施例提供了文件还原方法,包括:

调用kernel32!createfile打开主文档,且,获取与主文档相对应的备份文档的路径;

计算主文档的路径,得到路径的md5值;

获取数据库中存储的备份文档的备份md5值;

比较备份md5值与md5值是否相同;

当比较结果为不同时,将备份文档的内容复制到主文档中。

第三方面,本发明实施例还提供了一种文件备份装置,包括:需求判定模块,用于判断主文档是否为需要备份的主文档;

备份查找模块,用于为是时,在数据库中查找与主文档相对应的备份文档是否存在;

备份模块,用于当查找到备份文档不存在时,创建备份文档,将主文档中的内容复制到备份文档中,且,将备份文档的路径写入数据库中;

同步编辑模块,用于当查找到备份文档存在时,编辑主文档,且,通过hook实现对备份文档的同步编辑;

存储模块,用于关闭主文档和备份文档,计算备份文档的备份md5值,将备份md5值存储在数据库中。

第四方面,本发明实施例还提供了一种文件还原装置,包括:

主文档打开模块,用于调用kernel32!createfile打开主文档,且,获取与主文档相对应的备份文档的路径;

路径获取模块,用于计算主文档的路径,得到路径的md5值;

md5值获取模块,用于获取数据库中存储的备份文档的备份md5值;

md5值判断模块,用于比较备份md5值与md5值是否相同;

还原模块,用于当比较结果为不同时,将备份文档的内容复制到主文档中。

第五方面,本发明实施例还提供一种终端,包括存储器以及处理器,存储器用于存储支持处理器执行上述方面提供的文件备份方法的程序,处理器被配置为用于执行存储器中存储的程序。

第六方面,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述任一项的方法的步骤。

本发明实施例提供的文件备份方法、装置及文件还原方法、装置,其中,该文件备份方法包括:首先是,判断主文档是否为需要备份的主文档,为是时即当前主文档为需要进行备份的主文档,在数据库中查找与主文档相对应的备份文档是否存在,当查找到备份文档存在时,找到已存在的备份文档即可;当查找到备份文档不存在时,创建备份文档,将主文档中的内容复制到备份文档中,并且,将备份文档的路径写入数据库中,这样,当查找到备份文档存在时,编辑该主文档,并且,通过hook实现对备份文档的同步编辑,之后,关闭主文档和备份文档,计算备份文档的备份md5值,将备份md5值存储在数据库中,从而实现了对主文档和对应的备份文档的保存,并通过备份md5值在数据库中的存储实现了对备份文档路径的保存,通过上述处理过程,从而避免了对在每次编辑完主文档后都对其进行备份的操作,从而方便快捷的实现了主文档的备份操作。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本发明实施例所提供的文件备份方法的流程图;

图2示出了本发明实施例所提供的文件还原方法的流程图;

图3示出了本发明实施例所提供的文件备份装置的结构连接图;

图4示出了本发明实施例所提供的文件还原装置的结构连接图。

图标:1-需求判定模块;2-备份查找模块;3-备份模块;4-同步编辑模块;5-存储模块;6-主文档打开模块;7-路径获取模块;8-md5值获取模块;9-md5值判断模块;10-还原模块。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前,在主文档存储的处理过程中,往往采取主动备份的方式来实现对主文档的备份操作,但是,这样导致的后果是,每次备份操作后都会重新生成一个备份文档,多次备份操作生成的多个备份文档会存在很多重复的内容,并且,占用大量的存储空间。而且,在每次修改主文档后都要进行备份操作,不然的话,当主用主文档丢失或损坏时,备份文档恢复主用主文档后就有可能丢失一部分资料,往复的编辑和保存操作变得非常繁琐。

基于此,本发明实施例提供了文件备份方法、装置及文件还原方法、装置,下面通过实施例进行描述。

实施例1

参见图1,本实施例提出的文件备份方法具体包括以下步骤:

步骤s101:判断主文档是否为需要备份的主文档。

步骤s102:为是时,在数据库中查找与主文档相对应的备份文档是否存在。

步骤s103:当查找到备份文档不存在时,创建备份文档,将主文档中的内容复制到备份文档中,且,将备份文档的路径写入数据库中。

步骤s104:当查找到备份文档存在时,编辑主文档,且,通过hook实现对备份文档的同步编辑。

步骤s105:关闭主文档和备份文档,计算备份文档的备份md5值,将备份md5值存储在数据库中。

下面对上述各个步骤进行详细阐述,判断主文档是否为需要备份的主文档之前,还包括:

(1)将需要备份的主文档设定为自动备份文档,这里需要进行说明的是,主文档设定为自动备份文档的目的是用户在修改主文档的时候,备份文档在同时被修改,而当主文档关闭的时候同时关闭备份文档。也就是说主文档和备份文档是实时同步的,而且是用户无感知的,不需要主动触发备份的,避免了遗忘备份的可能性。而且以为是实时同步的,也避免了主动备份需要的额外备份时间。

(2)计算主文档路径的md5值,且,将md5值写入数据库中。这里需要进行说明的是,md5是message-digestalgorithm5的简称,中文名信息-摘要算法5,用来确保信息传输完整一致。md5主要实现将数据(如汉字)运算为另一固定长度值,md5算法具有以下特点:1、压缩性强:任意长度的数据,算出的md5值长度都是固定的,特别是多个数据需要进行比对时,md5算法能够将多个数据进行统一处理。2、容易计算:从原数据计算出md5值的过程计算简便。3、抗修改性好:对原数据进行任何改动,哪怕只修改1个字节,所得到的md5值都有很大区别,从而使区分更加明显。在本实施例中,将计算出的主文档路径的md5值写入数据库中,是为了标定当前文档为需要进行自动备份的文档。

判断主文档是否为需要备份的主文档,包括:

(1)调用kernel32!createfile打开主文档,首先,需要进行说明的是kernel32.dll是windows中的32位动态链接库文件,属于内核级文件。它控制着系统的内存管理、数据的输入输出操作和中断处理,当windows启动时,kernel32.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域。在本实施例中,运用到的api主要包括:kernel32!createfile、kernel32!writefile、kernel32!writefile和kernel32!closehandle,即通过上述api来分别实现打开文件、读取文件、写入文件和关闭文件等操作。在该步骤中调用kernel32!createfile打开主文档,即确定当前打开的文档即为主文档。

(2)在数据库中查找与主文档相对应的md5值是否存在,即确定当前的主文档是否已经被设置成需要备份的主文档。

(3)查找结果为存在时,判定主文档为需要备份的主文档,这时,需要进一步查找与主文档相对应的备份文档是否存在,如果存在相应的备份文档则进行步骤s104;如果不存在相应的备份文档则进行步骤s103。

当查找到备份文档不存在时,创建备份文档,包括:

(1)当查找到备份文档不存在时,创建备份文档,即建立与当前主文档相关联的备份文档。

(2)将备份文档去掉后缀,例如,如txt,doc,pdf等格式的文本去掉其后缀,并且,将主文档的内容复制到备份文档中,实现主文档的备份。

当查找到备份文档存在时,编辑主文档,且,通过hook实现对备份文档的同步编辑,包括:

(1)当查找到备份文档存在时,将备份文档的属性修改为可写,且,打开备份文档,这里将备份文档的属性修改为可写的目的是为了实现对其的编辑和更新,这样,当多次操作主文档时就不用每次建立新的备份文档,从而方便快捷的实现备份文档与主文档的实时同步。

(2)调用kernel32!writefile修改主文档,且,通过hook实现对备份文档的同步编辑,这里先说明下hook技术,在windows系统下编程时,常用的api函数大概有2000个左右,apihook即是其中的一个。通过apihook可以改变一个系统api的原有功能,基本的方法就是通过hook“接触”到需要修改的api函数入口点,改变它的地址指向新的自定义的函数。apihook需要通过基本的hook提高自己的权限,跨越不同进程间访问的限制,达到修改api函数地址的目的。microsoft自身也在windows操作系统里面使用了这个技术,例如windows兼容模式等。在运用过程中,计算机病毒经常使用apihook技术来达到隐藏自己的目的。调用kernel32!writefile修改主文档是为了实现对主文档进行编辑,同时对备份文档进行同步编辑。

(3)调用kernel32!closehandle关闭主文档和备份文档,且,将备份文档的属性修改为只读。备份文档采取不添加后缀名的方式保存,并且在保存的时候设置为只读权限,这样可以防止某些针对特定后缀名加密的病毒(比如勒索病毒)还可以避免病毒篡改备份文档(没有写权限)。

综上所述,本实施例提供的文件备份方法包括:首先是判断主文档是否为需要备份的主文档,判定当前的主文档需要备份时,即判断结果为是时,在数据库中查找与主文档相对应的备份文档是否存在,这样,当查找到备份文档不存在时,创建备份文档,之后将主文档中的内容复制到备份文档中,并且,将备份文档的路径写入数据库中,这样,当查找到备份文档存在时,编辑主文档,并且,通过hook来实现对备份文档的同步编辑,之后,关闭主文档和备份文档,计算备份文档的备份md5值,将备份md5值存储在数据库中,通过备份md5值的数值变化来方便快捷的知晓备份文档当前是否是最新的版本,通过上述处理过程能够实现对主文档和备份文档的同步编辑和保存,并避免了多次创建备份文档的操作过程,方便快捷的实现了对主文档的备份操作。

实施例2

参见图2,本实施例提出的文件还原方法具体包括以下步骤:

步骤s201:调用kernel32!createfile打开主文档,且,获取与主文档相对应的备份文档的路径。这里需要进行说明的是,在打开主文档的同时,获取在数据库中存储的相关联的备份文档的路径。

步骤s202:计算主文档的路径,得到路径的md5值,同上,md5是message-digestalgorithm5的简称,中文名信息-摘要算法5,用来确保信息传输完整一致。md5主要实现将数据(如汉字)运算为另一固定长度值,md5算法具有以下特点:1、压缩性强:任意长度的数据,算出的md5值长度都是固定的,特别是多个数据需要进行比对时,md5算法能够将多个数据进行统一处理。2、容易计算:从原数据计算出md5值的过程计算简便。3、抗修改性好:对原数据进行任何改动,哪怕只修改1个字节,所得到的md5值都有很大区别,从而使区分更加明显。在本实施例中,运用md5值来判定主文档的版本是否是实时更新的,从而避免了保存主文档的多个副本的操作。

步骤s203:获取数据库中存储的备份文档的备份md5值,与步骤s202类似,在该步骤中,备份md5值的运用,能够及时准确的标定出存储的备份文档的版本,从而能够简便快速的与主文档进行比对。

步骤s204:比较备份md5值与md5值是否相同,如果主文档被篡改或者遭遇了病毒入侵,那当前版本的主文档的md5值肯定会发生变化。那么,当比较备份md5值与md5值不相同时,说明当前的主文档出现了异常,需要进行还原。

步骤s205:当比较结果为不同时,将备份文档的内容复制到主文档中。即在还原过程中,是将备份文档的内容复制到主文档中,以保证当前主文档恢复到应有的版本,即与备份文档相一致的版本。

综上所述,本实施例提供的文件还原方法包括:首先是调用kernel32!createfile打开主文档,并且,获取与主文档相对应的备份文档的路径,之后,计算主文档的路径,得到路径的md5值,这样,获取数据库中存储的备份文档的备份md5值,之后,比较备份md5值与md5值是否相同,通过备份md5值与md5值之间的差异来判定当前主文档是否出现了被篡改或者被病毒侵入的情况出现,以便在比较结果为不同时,将备份文档的内容复制到主文档中,从而方便快捷的实现了主文档的还原。

实施例3

参见图3,本实施例提供了文件备份装置包括:需求判定模块1用于判断主文档是否为需要备份的主文档,备份查找模块2用于为是时,在数据库中查找与主文档相对应的备份文档是否存在,备份模块3用于当查找到备份文档不存在时,创建备份文档,将主文档中的内容复制到备份文档中,且,将备份文档的路径写入数据库中,同步编辑模块4用于当查找到备份文档存在时,编辑主文档,且,通过hook实现对备份文档的同步编辑,存储模块5用于关闭主文档和备份文档,计算备份文档的备份md5值,将备份md5值存储在数据库中。

本发明实施例提供的文件备份装置,与上述实施例提供的文件备份方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。

实施例5

参见图4,本实施例提供了文件还原装置包括:主文档打开模块6用于调用kernel32!createfile打开主文档,且,获取与主文档相对应的备份文档的路径,路径获取模块7用于计算主文档的路径,得到路径的md5值,md5值获取模块8用于获取数据库中存储的备份文档的备份md5值,md5值判断模块9用于比较备份md5值与md5值是否相同,还原模块10用于当比较结果为不同时,将备份文档的内容复制到主文档中。

本发明实施例提供的文件还原装置,与上述实施例提供的文件还原方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。

本发明实施例还提供了一种终端,包括存储器以及处理器,存储器用于存储支持处理器执行上述实施例方法的程序,处理器被配置为用于执行存储器中存储的程序。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述任一项的方法的步骤。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。本发明实施例所提供的文件备份方法、装置及文件还原方法、装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序,也不能理解为指示或暗示相对重要性。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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