Windows误删文件恢复技巧

如果只能使用Windows本身提供的工具,那么我们可以认为清空回收站之后,被删除的文件已经彻底清除了。不过事实并非如此,只要有专用的硬件和软件,即使数据已经被覆盖、驱动器已经重新格式化、引导扇区彻底损坏,或者磁盘驱动器不再运转,我们还是可以恢复几乎所有的文件。

  一、磁盘如何保存数据

  要理解如何恢复已删除的数据,首先要搞清楚磁盘如何保存数据。硬盘驱动器里面有一组盘片,数据就保存在盘片的磁道(Track)上,磁道在盘片上呈同心圆分布,读/写磁头在盘片的表面移动访问硬盘的各个区域,因此文件可以随机地分布到磁盘的各个位置,同一文件的各个部分不一定要顺序存放。

  存放在磁盘上的数据以簇为分配单位,簇的大小因操作系统和逻辑卷大小的不同而不同。如果一个硬盘的簇大小是4 K,那么保存1 K的文件也要占用4 K的磁盘空间。大的文件可能占用多达数千、数万的簇,分散到整个磁盘上,操作系统的文件子系统负责各个部分的组织和管理。

  当前,Windows支持的硬盘文件系统共有三种。第一种是FAT,即所谓的文件分配表(File Allocation Table),它是最古老的文件系统,从DOS时代开始就已经有了。Windows 95引入了第二种文件系统,即FAT 32,Windows NT 4.0则引入了第三种文件系统NTFS。这三种文件系统的基本原理都一样,都用一个类似目录的结构来组织文件,目录结构包含一个指向文件首簇的指针,首簇的FAT入口又包含一个指向下一簇地址的指针,依此类推,直至出现文件的结束标记为止。

  二、Windows不能真正清除文件

  在Windows中,如果我们用常规的办法删除一个文件,文件本身并未被真正清除。例如,如果我们在Windows资源管理器中删除一个文件,Windows会把文件放入回收站,即使我们清空了回收站(或者不启动回收站功能),操作系统也不会真正清除文件的数据。

  Windows所谓的删除实际上只是把文件名称的第一个字母改成一个特殊字符,然后把该文件占用的簇标记为空闲状态,但文件包含的数据仍在磁盘上,下次将新的文件保存到磁盘时,这些簇可能被新的文件使用,从而覆盖原来的数据。因此,只要不保存新的文件,被删除文件的数据实际上仍旧完整无缺地保存在磁盘上。

  因此,我们可以用工具软件绕过操作系统,直接操作磁盘,恢复被删除的文件。这类工具软件很多,EasyRecovery就是其中的佼佼者。

  如果不小心删除了某个重要文件,想要恢复,这时千万不要覆盖它。立即停用计算机,不要再向磁盘保存任何文件,包括不要把恢复工具安装到已删除文件所在的硬盘,因为任何写入磁盘的内容都有可能覆盖已删除文件释放的磁盘簇。如果必须安装恢复工具,可以安装到其他硬盘分区、软盘,或者干脆拆下硬盘到另一台机器上去恢复。

  三、覆盖七次才能清除的蛛丝马迹

  如果数据已经覆盖,用通常的恢复工具就无能为力了,但这并不意味着我们绝对不能挽救丢失的数据。读取硬盘上被覆盖的数据通常有两种办法。

  读/写磁头向磁盘写入数据时,它会将磁化数据位的信号调整到某个适当的强度,但信号不是越强越好,不应超出一定的界限,以免影响相邻的数据位。由于信号强度不足以使存储媒介达到饱和的磁化状态,所以实际记录在媒介上的信号受到以前保存在同一位置的信号的影响,例如,如果原来记录的数据位是0,现在被一个1覆盖,那么实际记录在磁盘媒介上的信号强度肯定不如原来数据位是1的强度。

  专用的硬件设备能够精确地检测出信号强度的实际值,将这个值减去当前数据位的标准强度,就得到了被覆盖数据的副本。理论上,这个过程可以向前递推七次,所以如果要彻底清除文件,必须反复覆盖数据七次以上,每次都用随机生成的数据覆盖。
第二种数据恢复技术的依据是,磁头每次读/写数据时,不可能绝对精确地定位在同一个点上,写入新数据的位置不会刚好覆盖在原来的数据上。原有数据总是会留下一些痕迹,利用专用的设备可以分析出原有数据的副本--称为影子数据。当然,如果我们反复执行覆盖操作,原有数据的痕迹也会越来越弱。

  ● 影子数据:被覆盖的数据总是与新写入的不离左右,就象人的影子总是紧跟着人,因此被覆盖的数据就称为影子数据。英文功力好的读者可以参见这篇专著:http://www.forensics-intl.com/art15.html。

  通常而言,能够恢复已删除、覆盖的数据应该算是一件好事,当然,某些必须彻底清除数据的场合除外。这方面最为著名的标准是美国国防部订立的磁盘清洗规范,它要求数据必须覆盖三次:第一次用一个8位的字符覆盖,第二次用该字符的补码(0和1全反转的字符)覆盖,最后用一个随机字符覆盖。不过这个清洗方法不适用于包含高度机密信息的媒介,这类媒介必须进行消磁处理,或者销毁其物理载体。当然,对于大多数场合来说,简单的覆盖处理已经足够。

  四、被遗忘的角落

  删除和覆盖文件还不能清除硬盘上的所有敏感数据,因为数据可能隐藏在某些意料之外的地方,所以文件占用的每一个扇区都必须彻底清除所谓扇区,就是大小为512字节的数据片断,每个簇包含多个扇区。

  向磁盘写入文件时,文件的最后一部分通常不会恰好填满最后一个扇区,这时操作系统就会随机地提取一些内存数据来填充空余区域。从内存获取的数据称为RAM Slack(内存渣滓),它可能是计算机启动之后创建、访问、修改的任何数据。另外,最后一个簇中没有用到的扇区就原封不动,即保留原来的数据,称为Drive Slack(磁盘渣滓)。问题在于许多号称安全删除文件的工具不会正确清除内存渣滓和磁盘渣滓,而这些被称为渣滓的地方却可能包含大量的敏感信息。

  在NTFS文件系统中,每个文件包含多个流,其中一个流用来保存访问权限之类的信息,另一个流用来保存真正的文件数据。除此之外,NTFS还允许额外的数据流,即ADS(Alternative Data Stream),ADS可以用来保存任何信息,最常见的用途是保存图形文件的缩略图。由于许多安全删除文件的工具不能清除ADS,所以即使存放文件实际数据的流已经清除,但缩略图仍可能泄露机密。微软知识库文章319300(http://support.microsoft.com)介绍了如何防止系统创建缩略图使用的流,即删除注册键HKEY_LOCAL_MACHINE/System/Currentcontrolset/Control/Contentindex/FilterTrackers。

  ●ADS:ADS这个缩写词经常用来表示活动目录服务(Active Directory Services),不过本文中ADS是指“可选数字流”,是文件主体数据之外的附属信息存储区域。就象你的公文包,包里面是正式存放物品的主空间,但包的外面还会有一二个附属小口袋便于快速取用物品,这些小口袋就相当于ADS。

  ADS已是人们熟知的隐藏数据和病毒之地,经常被计算机犯罪分子利用。但除此之外,硬盘上还有其他可以隐藏数据的区域。

  扇区是在低级格式化期间创建的,通常由硬盘制造厂完成。低级格式化工具会标记出损坏的扇区,从而避免磁盘控制器向损坏的区域写入数据。簇包含多个扇区,由高级格式化工具创建,如Windows或DOS的format命令。如果高级格式化期间发现坏扇区,整个簇被标记为坏簇,但是,坏簇里面还有好的扇区,有些人就利用这些扇区来隐藏数据。

  在老式磁盘上,数据还可以隐藏在称为扇区缝隙的地方。老式磁盘的每一个磁道都有数量相同的扇区,但外圈的磁道显然要比内圈的磁道长,有些人就利用外圈磁道上扇区之间的缝隙来保存数据。新型磁盘利用一种称为分区记录(Zoned Recording)的技术避免了这种空间浪费,它能够根据磁道的位置调整每个磁道的扇区数量。

  要访问磁盘上的这类隐藏区域,必须使用绕过操作系统磁盘访问功能的工具。搜索一下网络,可以看到正规的专业工具都很昂贵,例如EnCase Forensic Edition(www.guidancesoftware.com)要2000多美元;Directory Snoop可能最便宜,也要29美元,但它不支持NTFS。

  综上所述,我们可以说恢复数据实际上要比彻底清除数据简单。如果你不小心删除了某个重要的文件(谁都会遇到这类事情),恢复工具就是救命的稻草。反之,如果你想出售二手机或二手磁盘,应当考虑一下是否有必要彻底地清洗一下硬盘。

以上内容是本文的全部叙述,希望大家喜欢。

(0)

相关推荐

  • 二十九、教你备份与恢复Windows 2000注册表

    二十九.教你备份与恢复Windows 2000注册表  Windows 2000将它的配置信息存储在注册表的数据库中,其中包含了每个计算机用户的配置文件,以及有关系统硬件.已安装的程序和属性设置等信息,Windows 2000在运行过程中要一直引用这些信息.注册表是以二进制形式存储在硬盘上,错误地编辑注册表可能会严重损坏系统.所以,在更改注册表之前,强烈建议备份注册表信息.为了防止在修改注册表的时候发生致命错误,有必要了解一下注册表文件的备份和恢复方法.除此之外,为了研究注册表的结构,还可以将注

  • 在Windows中配置Rsync同步文件的方法

    Rsync是一款不错的文件免费同步软件,可以镜像保存整个目录树和文件系统,同时保持原来文件的权限.时间.软硬链接.第一次同步时 rsync 会复制全部内容,下次只传输修改过的文件部分.传输数据过程中可以实行压缩及解压缩操作,减少带宽流量.支持scp.ssh及直接socket方式连接,支持匿名传输.支持Linux,Window平台.写本文的时候,window版最新版为4.0.5版 官网:http://rsync.samba.org/ Linux版下载:http://rsync.samba.org/

  • Windows Powershell 执行文件和脚本

    象运行可执行文件一样,Powershell运行文件和脚本,也必须使用绝对路径或者相对路径,或者要运行的文件必须定义在可受信任的环境变量中. 关于脚本 脚本和批处理都属于伪可执行文件,它们只是包含了若干命令行解释器能够解释和执行的命令行代码. 执行批处理文件 批处理是扩展名为".bat"的文本文件,它可以包含任何cmd控制台能够处理的命令.当批处理文件被打开,Cmd控制台会逐行执行每条命令.那Powershell能够直接执行批处理吗? 将下列命令保存为ping.bat @echo off

  • Windows网络编程之winsock实现文件传输示例

    本文实例展示了Windows网络编程中winsock实现文件传输的方法,对于进行Windows下的winsock网络编程有一定的借鉴参考价值. 该程序代码主要是基于TCP流协议的winsock网络文件传输示例,采用Windows下的C语言编写.可以实现传递任何格式文件的文件传输功能. 具体实现代码如下: Server端代码如下: /************************************************************************* > File Na

  • Windows Server 2003服务器无法下载.exe文件的解决方法

    今天架设了一台Windows Server 2003的网站服务器,发现打开网页后无法下载网站中的.exe文件,经过研究问题得以解决,拿来做个备忘. 解决方法非常简单,只需要在IIS中,将网站属性里的执行权限设置为"纯脚本"即可. 附:Windows Server 2003服务器无法下载EXE为后缀的文件解决办法 实际操作过程中只进行了第二步就成功了, 即:打开iis管理器,右键网站-点击属性-主目录,将执行权限设置为"无"或者"纯脚本",即取消&

  • Windows 2000、XP、2003登录密码恢复攻略

    一.删除SAM文件,清除Administrator账号密码 二.从SAM文件中查找密码        1.L0phtCrack (LC)        2.LCP        3.SamInside pro 三.用Net User命令恢复系统登陆用户密码 四.用密码重设盘设新密码 五.修改屏保文件法 六.使用软件修改密码 Windows XP 2000 NT Password Recovery Key CleanPwd Offline NT Password & Registry Editor

  • Windows和Linux下定时删除某天前的文件的脚本

    以前做到最多的定时我们就是定时备份功能了,我们常用利用定时功能来备份网站数据或备份数据库了,下面我来给(www.jb51.net)大家介绍几个Linux与Windows中定时删除某天前的文件方法,这个与备份有点区别,但大同小义了. Windows下bat文件内容如下: 复制代码 代码如下: @echo off forfiles -p "D:\servers\apache2.2\logs" -s -m *.log -d -15 -c "cmd /c del @path"

  • Windows批处理中获取文件属性的一些方法

    windows的batchfile可以有%0-%9参数,其中%0默认表示batchfile的全路径,%1-%9为用户的传入参数. 以下特殊标记可以用来获得文件的属性,如果对%0使用特殊标记,表示获得batachfile的相关属性,如果%1-%9中某个%*是个文件的路径,也可以使用如下特殊标记来获得%*表示文件的相关属性. 例如:D:\testfolder\test.bat 复制代码 代码如下: echo off echo path name: echo %1 echo fully qualifi

  • Windows下的PHP安装文件线程安全和非线程安全的区别

    从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,这是由于与Linux/Unix系统是采用 多进程的工作方式不同的是Windows系统是采用多线程的工作方式.如果在IIS下以CGI方式运行PHP会非常慢,这是由于CGI模式是建立在多进程 的基础之上的,而非多线程.一般我们会把PHP配置成以ISAPI的方式来运行,ISAPI是多线程的方式,这样就快多了.但存在一个问题,很多常用的 PHP扩展是以Linux/Unix的多进程思想来开发的,这些扩展在IS

  • 备份和恢复Windows IIS服务器设置的方法

    我们在使用Windows 2000 Server自带的IIS(Internet Information Server,Internet信息服务器)时,经常需要设置一些Web服务.FTP服务等,但是经过一段时间的使用之后,Web站点.FTP站点.虚拟目录比较多了,其配置也变得越来越复杂.IIS能不能恢复到以前的状态呢?答案是肯定的. 备份IIS设置:IIS本身自带了备份和恢复IIS设置的功能.在恢复IIS设置之前需要备份IIS.备份的过程很简单:在Windows 2000 Server中找到"开始

随机推荐