冰点还原的原理:
要想实现硬盘还原,需要做到两个步骤:第一步是分析扇区,还原产品通过分区表和文件分配表,获取当前硬盘哪些扇区是已经使用过的,哪些扇区是暂未使用的。第二步是拦截读写,还原产品通过还原驱动程序拦截硬盘读写驱动,并改变系统对硬盘的读写,实现对硬盘已经存在的数据的保护。
没有原来,是真理
要想实现硬盘还原,需要做到两个步骤:第一步是分析扇区,还原产品通过分区表和文件分配表,获取当前硬盘哪些扇区是已经使用过的,哪些扇区是暂未使用的。第二步是拦截读写,还原产品通过还原驱动程序拦截硬盘读写驱动,并改变系统对硬盘的读写,实现对硬盘已经存在的数据的保护。
举个简单的例子。Windows要将一段内容写入到硬盘的第100扇区,这时还原驱动会将它拦截下来,通过还原算法将这段内容转而写入到了硬盘中空闲的第1000扇区,并将这个扇区映射关系(100→1000)记录下来,这样实际上100扇区原先的内容并未改变。之后当Windows要读取100扇区时,还原驱动通过查询将1000扇区的内容提交给Windows,Windows则认为它成功的从100扇区得到了想要的数据。这样对用户甚至Windows来说硬盘随时都在发生着改变,然而实际上硬盘原有的数据都没有改变。当Windows重新启动后,包括这个100→1000在内的所有记录都被清除了,在用户和Windows看来,硬盘没有发生任何变化,数据被还原了。
目前还原方式不外乎硬件还原和软件还原两种。
那么还原卡和还原软件有什么区别呢?我们一一分析。
现在流行的还原软件大致可分为两种,一种是以冰点为代表的纯驱动还原软件。这一类的还原软件只有一个驱动程序,在Windows启动过程中加载。这个驱动程序不仅要实现对硬盘驱动的拦截,它还要在程序加载时完成对硬盘已使用扇区和未使用扇区的分析。它把还原的两个步骤结合到了一个驱动程序当中。它还舍弃了从Windows开始启动后,到还原驱动程序启动前这段时间Windows对硬盘的读写(事实上这段时间几乎没有写操作)。这是实现还原最简单的方法,简单就会存在安全性的问题,我们后面再分析。
第二种是已还原精灵为代表的类还原卡软件。顾名思义,它们和还原卡很类似,它们的特点是通过修改硬盘的主引导记录(MBR)来启动还原。启动还原的代码是在安装时写入到硬盘中去的。我们知道,硬盘都是通过主引导记录来启动的。还原精灵将硬盘原有的主引导记录保存下来,并改成自己的主引导程序。这样当硬盘启动时,系统就会首先加载还原精灵的主引导程序。分析扇区这一步就是在这个时候完成的。而同时还原精灵可以做很多事情,包括分析硬盘扇区,还原,转储(又叫更新硬盘数据)等等,这让它也能实现还原卡的诸多功能。当还原精灵做完了这些事后,就去加载硬盘原有的主引导记录,开始启动Windows。然后还是通过驱动程序,完成对硬盘读写的拦截。
还原卡的工作原理和还原精灵类似,也是分两部分,只不过它的启动是通过插在主板PCI槽上的还原卡来实现的。这种方式启动时间更早,而且也无需修改硬盘的引导区,相比之下更加安全。还原卡在启动时,同样可以实现转储等功能,甚至还能实现网络对拷,硬盘复制等附加功能,这些对于拥有多台相同型号电脑的机房来说,非常实用。
了解了这些还原产品的原理后,我们可以对它们做一番比较。(考虑到市场上还原产品很多,各有特点和附加的功能,所以我们只针对还原相关的功能,对以上三类还原产品做比较)。
功能比较
纯驱动还原软件的功能都很简单,只有开机还原,和开放还原两个功能。这和它的工作原理有关。没有引导程序,让它无法执行转储等类似于整理磁盘的功能。当还原驱动处于工作状态时,就是开机还原;当还原驱动停止工作时,就是开放还原。
类还原卡软件,顾名思义和还原卡很类似。它除了有开机还原和开放还原的功能外,还包含了继续保持,转储等功能,甚至拥有图形化的开机操作界面。这些功能对于新安装软件要方便的多。
还原卡则拥有类还原卡软件的所有功能,此外,由于它的启动级别非常高,使它能够实现对CMOS的保护。这个功能使得还原卡的安全性大大提高了。
性能比较
其实对于现在速度飞快的计算机来说,还原产品对于计算机性能的影响已经可以忽略不计了。我们还是从产品特点上来分析一下他们的性能差别。
前面我们说过,要实现还原需要两个步骤,分析扇区和拦截读写。纯驱动还原软件功能最简单,没有保持和转储等功能,这也使它无需将扇区映射关系表保存在硬盘中,直接使用内存保存,重启后自动消失完成还原。所以它在进入Windows后的效率肯定要比另两种还原产品要高,毕竟少了很多更费时的硬盘操作。也就是说在拦截读写上,纯驱动还原效率更高。但是同样因为它不保存数据,所有它每次启动时都要分析扇区。还原卡和类还原卡软件则只需在安装时和转储后分析扇区,其他时候直接从保存在的硬盘的扇区状态表中读取即可。所以在启动时纯驱动还原软件要慢一些。
至于还原卡和类还原卡软件,他们的原理都是一样的,效率自然差不多。除非谁的算法更高明一些。
不过还是那句话,以现在计算机的速度,这些影响你根本感觉不出来。
安全性比较
还原产品作为一种系统安全产品,其安全性肯定是最重要的一个参数。还原卡是否比还原软件更加安全呢?
我们还是先看纯驱动还原软件,它们的特点是没有引导程序,在驱动程序加载时才起作用,也就是说,它的安全是在这个时候才开始的。这样一看,它的安全性就比较差了。我们可以做个试验。先在XP系统下装好冰点,让XP可以正常还原。然后在启动Windows时,按F8键进入启动菜单,选择“上一次正确配置”进入Windows。我们可以看到,还原再也不起作用了。
这是为什么呢?我们知道,选择“上一次正确配置”,Windows会将最近一次成功启动时的Windows配置文件,覆盖当前的Windows配置文件,这个Windows配置文件包含了注册表。这个覆盖动作是在驱动程序启动之前完成的,也就是说,这个动作并不在纯驱动还原软件的保护下。所以它真的被覆盖了,无法再还原了。
那类还原卡软件能否防止“上一次正确配置”的破坏呢?答案是可以的。因为类还原卡软件的作用时间是从硬盘启动时开始的,这个时间是在F8前面的,所以它能保护。那么它的安全性就很高了吗?以还原精灵为例,如果我们带了一个启动U盘,在CMOS中将U盘的启动权限放到硬盘之前,那么我们就能通过U盘启动,而不经过硬盘。既然不经过硬盘,那么必须通过硬盘MBR启动的还原精灵就没有启动。这时只要执行一下恢复硬盘MBR的操作(如Fdisk/mbr),再从硬盘启动就可以发现,还原精灵也不起作用了。
如果对CMOS加密码,防止修改CMOS呢?那就找个在Windows下修改CMOS的工具,照样改掉。
那么还原卡能防住U盘引导吗?答案是可以!因为现在几乎所有主板的PCI设备启动时间都比存储设备要早。也就是说,虽然你用U盘进入了DOS,但是还原已经起了作用,你删除的文件还是可以还原回来。那么我要是在U盘中是一个WinPE呢?WinPE下没有还原驱动,的确是可以破坏。不过别忘了,还原卡还有个CMOS保护功能!每次启动时会检查CMOS,一旦发现CMOS被修改,还原卡会将CMOS恢复回去。即使你在Windows下修改了CMOS,当你重启时,CMOS还是会被恢复回去。这样你就永远无法用U盘启动了,管你U盘里装了WinPE又怎样。光盘、软盘、PXE同样起不了作用。
最后不得不提一下机器狗,这个病毒曾经让所有还原产品疲于打补丁。实际上它的原理就是绕过还原驱动,从更底层的硬盘驱动直接访问硬盘。无论是还原软件还是还原卡都是通过拦截硬盘读写来实现还原的,所以它们都无法躲过机器狗的攻击。机器狗的出现一度让还原行业产生了恐慌,因为业内人士都知道,一旦机器狗直接通过端口访问硬盘的话,再怎么打补丁也是徒劳。不过现在一些还原产品开始效仿杀毒软件,推出了驱动防火墙。所有不明身份的驱动程序,一律不允许加载。这样一来,必须靠驱动程序访问硬盘的机器狗,就基本上没有办法了。
可以肯定,还原卡的安全性是最高的。还原软件总会存在各种安全漏洞、密码漏洞等。而还原卡由于它硬件的特性,从启动上来讲基本上是无懈可击的。但也不排除有更强大的类似机器狗病毒的出现,不通过驱动程序也能直接访问硬盘。至少目前没有。从密码安全上来说,如果密码是保存在硬盘上的话,谁都难保不被破解。如果还原卡能将密码保存在PCI卡上的存储空间的话,那就完美了。还原卡工作原理可参见