数据恢复(2)

二、手工恢复篇


学习了有关的理论知识之后我想你一定和我现在一样头晕眼花了,如果你已经掌握了相关理论,就该和我一起来实战数据恢复了。
(一)重建硬盘分区表
总有些这样的时候,你的系统不能够引导了,你连忙用软区引导,键入C:/,电脑却无情的告诉你“Invalid drive specification”,打开FDISK你发现你的分区表项已经全部消失,你几乎要哭了,你在想这一切是病毒、无聊的骇客还是自己的误操作造成的,但是不管此时你在想什么,都没什么意义了,你正打算重新分区重装系统,这时你要是刚好遇到我,或是象我一样热心的朋友,就会问你:“你难道就这样甘心和你多年来下载的资料说88么?”你此时肯定是象落水者抓住了一根救命稻草,说:“不啊,我希望能拯救硬盘数据,求求你帮我恢复好么?”此时,我会笑笑说:“不好,我不想帮你恢复数据,但是我会教你如何来恢复你的硬盘数据的,呵呵!”
首先,得找到一块被病毒或是恶意程序破坏的硬盘,可是这样一块硬盘并非马上就能找到的啊!怎么办?为了能够写完这篇文章,为了那位朋友能够恢复自己的数据,我只能用我自己的硬盘来做这个实验了(不禁想起了当年释加摩尼以身喂虎的故事),所谓我不入地狱谁入地狱。首先,把我的一块40G的硬盘主引导扇区备份一下,以防不测(关于如何备份主引导扇区,看我在11月份的《黑客X档案》中的文章),然后,将我的硬盘主引导区包括分区表给完全清零,(旁白:这样做非常危险,希望广大小朋友不要效仿!)然后干什么呢?大厨师回答:“备用。”
好了,先来介绍两个磁盘编辑工具,一个是Norton utility 8.0工具包中的Diskedit.exe,一个不错的老牌磁盘编辑工具,在DOS下执行,可惜用的是磁头(Heads),柱面(Cylinders),扇区(Sectors)方式对硬盘进行访问的,所以只能访问最多8G的磁盘空间,如果你的磁盘小于8G或是你只需要对8G内的磁盘进行访问,可以用它,但如果你需要访问8G以上的空间就推荐你用另一个工具:WinHex V10.47 SR1 汉化版,这个工具可能大家较为熟悉(在第5期《黑客X档案》光盘中可以找到),是一个不错的16进制文件编辑与磁盘编辑软件,磁盘编辑支持FAT16、FAT32和NTFS,可以在WIN9X和WIN2K、WINXP下运行,并且它的使用非常简单。
不再多说了,赶快拯救我的硬盘吧,上面还有MM发给我的照片呢!对了还有我写个MM的信还赶着发呢!幸好我还有一块小点的硬盘,用它作成主盘,把那块可怜的40G的硬盘挂上,启动成功!看看“我的电脑”里有没有我那块40G硬盘的分区?(画外音:做梦!),找到第5期《黑客X档案》光盘,安装WinHex V10.47 SR1 汉化版,打开WINHEW,刚启动会有一个“启动中心”的东西,选择“物理驱动器“中的”硬盘2“(标号为81H),(如果你在这都找不到你需要修复的硬盘的话,十有八九会是硬件问题,这时你要检查一下硬盘的数据线和电源线是否没接好,如果不是这些原因,我想你的硬盘不是需要修复数据了,而是需要真正物理意义上的修理了。)
此时你已经看到了被我完全清零的主引导区了,不用再复习主引导区的结构吧(什么老师没教过?这位同学你可以下课了),让我先回忆一下我的分区的大致情况吧,分了4个区,第一个区装的是WIN98,FAT32系统,大约5G;第二个区装的是WINXP,NTFS系统,大约5G;第三个区是FAT32系统,大约15G;第四个区是FAT32系统,大约15G。
注意:因为我的分区用PQMAGIC进行操作过,我将原来的第二个分区变为了主分区(即在主引导区中的非扩展分区的分区,可以用来引导系统),并且激活该分区(将引导标识字节的值改为80H,并将原来的引导标识改为00H),然后用光盘来安装WINXP,把它安装到第二分区,本来想装一个BOOTMAGIC实现多系统引导的,还没来得及就被拿来做实验了。第三和第四分区其实只是在同一个扩展分区表中的,也就是说,在主引导分区中,我们只要建一个扩展分区项指向后面的扩展分区表就可以把第三和第四分区全部找到了。如果你的硬盘只是用分区工具直接分区的话那么你可能只要恢复两个分区项就可以了,一个用于引导的分区项,和一个扩展的分区项。而我这块盘做了两个主分区,所以要重建三个分区项,两个主分区项和一个扩展分区项。
我们需要知道的信息有,1、该分区开始的磁头,柱面,和扇区号 2、该分区的所用的系统(这个好办) 3、该分区结束的磁头,柱面,和扇区号 4、该分区开始的扇区地址 5、该分区所占用的总扇区数。好了,回到WINHEX,单击下拉菜单中的“搜索”找到“寻找十六进值数值”,在对话框中添上“55AA”,在代码偏移量余数前打钩,并添入510(结束标志的偏移量)单击“OK”(知道为什么要找它么),你可能会找到许多“55AA”但是我们已经学习了引导分区的结构,上面有一些明显的特征,比如有厂商名和系统版本的ASCII码(FAT32的分区为MSWIN4.1,NTFS的分区为MSNTFS),分区开始字节为EBH开始的跳转码,第三字节为90H(NOP指令的机器码),在扇区后面有些出错信息等等。很快,我就在0柱1头1扇找到了符合我的要求的扇区其逻辑扇区号是63,也就是说我们已经找到了第一个分区开始的地址了,好象有些兴奋哦!但是凭我的经验每块硬盘第一个分区开始的位置都是0柱1头1扇(除非你的硬盘因为坏道把一部分空间屏蔽了),那么该分区结束的地址又要怎么来找呢?其实很简单,只要再找到下一个分区的开始向前推一个扇区,不就是这个扇区的结束位置了呀!哦原来啊,那就继续按F3键找“55AA”,靠~GG,我都等了N分钟还没找到要找的下一个NTFS的分区啊,说实话,你还是真的有些笨啊,既然告诉你了我的第一个分区大小,居然不知道利用,5G,对了,忘了告诉你了,有些厂家的40G的硬盘是以1K=1000字节算出来的,也就是说1G=1000000000字节,而实际上1000000000字节只有0.93G,,40G的硬盘实际上只有37G了(是不是有种被欺骗的感觉,3G啊,都可以装下五张VCD了),而5G只有大约4.6G了,我们就从4.2G开始找吧4.2G开始的扇区号=[4.2G/512字节]取整+1=8808039。废话少说,又回到WINHEX在,下拉菜单中选“定位”中的“转到扇区”,在“逻辑扇区”中填入“88080.39”,单击“OK”,然后继续搜索十六进制值“55AA”,搜到了大约十来个“55AA”,但在我的火眼晶睛下大部分都PASS掉,只有一个符合我的要求的,这就是下第二个扇区的开始处,记下了其地址609柱1头1扇,其逻辑扇区号是9783648。同样的方法我找到了第三个分区项指向的扩展分区表的位置,在1225柱0头1扇,其逻辑扇区号是19679625,因为柱数大于1023,这里就牵涉到一些问题,我们等会再说。最后记住一下最后一个扇区的位置,只需要按一次END键,我们就找到了最后一个扇区,记住4865柱254头63扇,其逻辑扇区号是78172289。
万事具备,只欠东风,就让我们来看看如何利用我们找到的和我之前说过的理论知识来重建分区表吧。先来重建第一个分区项:
1、00H 我不想用WIN98引导系统,所以我在此把值设为十六进制码“00”
2、01H 分区起始磁头号为1磁头,因此把值设为十六进制码“01”
   3、02H 其高2位为分区起始柱面号的高位为(00)2,底6位为分区起始扇区号(000001)2,把值设为十六进制码“01”
4、03H 分区起始柱面号的低位,因为是0柱面,所以把值设为十六进制码“00”
5、04H 该分区系统为FAT32, 把值设为十六进制码“0B”
6、05H 分区结束磁头号为0,把值设为十六进制码“00”
7、06H 其高2位为分区结束柱面号的高位,因为柱面号为609=(1001100001)2,高两位为(10)2,底6位为分区结束扇区号,扇区号为63=(111111)2所以该值为(10111111)2,十六进制码为“BF”
8、07H 分区结束柱面号的低8位为(01100001)2,十六进制码为“61”
9、08H~0BH 分区开始的扇区为63,其4字节十六进制码为“3F 00 00 00”(从高位向低位排列)
10、0CH~0FH 总扇区数=[9783647(第一分区的结束扇)-63(第一分区的开始扇)]+1 = 9783585,十六进制码为:“21 49 95 00”
最后得到我的第一个分区项为十六进制值:“00 01 01 00 0B 00 BF 61 3F 00 00 00 21 49 95 00”,用同样的方法得到我的第二分区项的0H~05H为十六进制值“80 01 81 61 07 FE”但是到了06H~07H字节处有些困难了,柱面号为1224,已经超出了十位二进制数所能表示的范围,怎么办?其实方法很简单,就是只要是大于1023的柱面号,一律把它认为是1023,这样就好办了,1023柱63扇,十六进制值当然是“FF FF”
(就好象我们在玩星际争霸时你有个英雄口水兵杀死了1000个敌人,可是在记录上永远只记录了255)。其他的问题就好办多了,分区开始的扇区是9783648,那么08H~0BH处就是十六进制值“06 49 95 00”。分区总扇区为19679624-9783648+1=9895977,那么0CH~0FH处就是十六进制值“29 00 97 00”。同样的方法我很快算出了第三分区项的十六进制的分区信息“00 00 C1 FF 0F FE FF FF 89 49 2C 01 F9 86 7C 03”。到此重建分区表的工作就基本结束,还不赶快把这些千辛万苦得到的十六进制码写进你的主引导区,不要忘了把结束标志写上,存盘退出。然后关机,把我们恢复的盘设为主盘,引导一下看看!激动人心的时候就要到了,等啊等,为什么黑屏?呵呵~,这正是我要问你的问题,为什么呢?因为主引导程序还没有呢!连忙用软盘重启动,打个“F:/”看看,哈!熟悉的提示符“F:/>” 找到我的WIN98目录,进入COMMAND子目录,飞快的键入“FDISK/MBR”,学习过DOS的朋友一定还记得这个命令(这个参数居然还被微软保密了很久),用于重新写入主引导程序(MBR)。
再用这个硬盘重新启动试试。熟悉的XP桌面上又出现了MM的照片!打开我的电脑看看有没少什么,哈,一件不少,我的硬盘终于从噩梦中醒了过来。
本来可以就这样把这段结束的,可是不说出来我总是不安,虽然我的硬盘数据完全恢复了,可是当我用PQMAGIC的时候却报错,说我的硬盘分区表有个错误,我苦思冥想,最后和我备份的分区表比对才发现,原来的第一项分区表中结束地址是608柱面254磁头63扇区,逻辑扇区号是9783584,不是我所认为的609柱面0磁头63扇区,逻辑扇区号9783647,这样,从逻辑扇9783584到9783647的63个扇,没有被任何一个扇区用到。而且我们企图用它的时候PQMAGIC都报错(但是我用FDISK查看扇区正常),分析原因可能是因为我曾经用PQMAGIC把第二个分区从扩展分区中的第一个分区变为一个主分区时,删除了原来的扩展分区表,这样扩展分区表到后来的保留扇(即逻辑扇9783584到9783647)都没用到!当我认为9783647这个扇区号就是第一分区的结束扇区号时,和第一分区引导扇区上的“分区总扇区数”对不到,所以PQMAGIC才会报错,得出个结论,分区的结束定位我们应该根据引导扇上的“分区总扇区数”来计算,而不要象我一样凭经验武断的认为就是下一个分区开始的前一个分区。在恢复中我们记得一些规律,第一扇区的开始一般是0柱1头1扇,一般某分区结束总是在N柱254头63扇(也就是N柱的最后一扇)这些只是个人多年来重建分区的经验,并非理论!
一点补充:如果这是块被CIH病毒破坏的硬盘,往往到了这一步还没完,因为虽然我重建了分区表,但是我的首分区的FAT表被破坏了,但是不要紧,记得系统有两个FAT么?只要把第二个FAT覆盖到第一个FAT就可以了。可是我们要怎么才找得到第二个FAT呢?一般的办法是寻找偏移0的十六进制值“F8 FF FF 0F”,判断是不是FAT可能需要你有一定的经验,(没事用WINHEW观察你的硬盘会是一个好办法),如果找到第二个FAT,如何判断FAT的长度呢?这个有些困难,本来是通过引导扇的FAT长度字节来看的,但此时引导扇也被病毒覆盖了!我的方法是一般第一个FAT是从该分区的32扇开始的(FAT32系统),找到了第二FAT的开始,又知道第一FAT的开始,要算每个FAT的长度,还不好办么?恢复了FAT后,要恢复引导扇区就更好办了,除了分区占用的扇区数和每个FAT占用的扇区数要自己计算,其他都可以到别人的机器上拷贝一个过来。你可能要问我,要是它的第二个FAT也被覆盖了怎么办?唯一的办法是重建盘簇链,当然你要将大到以G为单位的分区用手工来建分区链,我想是没有可行性的!
(二)恢复软盘上的数据
软盘的逻辑结构有点象硬盘某分区的结构:
引导扇区(Boot sector)(占用一个扇区)
第一个FAT (用的是FAT12系统)
第二个FAT
根目录区
数据区 (用来存放各种文件的数据)
不知道你有没有遇到这样的情况,一分钟前还打得开的软盘,一分钟后就说“该软盘没有格式化,要格式化么?”如果该软盘没有重要数据,我想就是丢掉这块盘也没有什么,但是,如果这张盘有你辛辛苦苦一个月写的文章,又找不到其他备份,怎么办?难道就这样算了?我想你一定有兴趣了解一下如何恢复软盘数据!
(1)出现这种情况往往是软盘的0面0道1扇坏的原因,有一个传统的方法来恢复你的软盘的0面0道1扇:
1、将一张好的软盘插入软区
2、在DOS下执行DEBUG,在DEBUG提示符下做如下操作:
-L 100 0 0 1 (将好盘的逻辑扇区0读入内存DS:100处)
3、将好盘取出,插入需要恢复的盘,再在DEBUG提示符下做如下操作:
-W 100 0 0 1 (将内存DS:100处的好盘的逻辑扇区0写入需要恢复的软盘)
(2)以上方法适合0面0道1扇只是逻辑坏的盘,如果0面0道1扇是物理坏的话,DEBUG会告诉我们不能写盘,这是我们可以这样的来做:
1、需要的工具HDCOPY,一个比较强大的整盘复制工具。WINHEX(或其他16进制编辑器)上面已经提过了,在此我们要用的是其文件编辑功能;
2、用HDCOPY读功能将一张好的软盘读入内存,并用其写文件的功能建立一个软盘镜象文件“1.IMG”,然后取出坏盘,换上待恢复的盘,用同样的方法建立软盘镜象文件“2.IMG”
3、用WINHEX打开“1.IMG”和“2.IMG”,将“1.IMG”的前512个字节的内容覆盖“2.IMG”的前512个字节。
4、打开HDCOPY,将文件“2.IMG”读入,并准备一张好的软盘,插入软区,在HDCOPY中用写命令将磁盘镜象文件“2.IMG”写入软盘。
(3)如果你需要恢复的只是象我一样的文档的话,即使你的软盘被格式化了(但一定要是快速格式化,不是完全格式化),也有方法可以恢复的,要知道,快速格式化只是将文件系统的两个FAT区清零,实际上文件内容还在的。看看我是如何来恢复一个丢失的文档的:
1、用HDCOPY将需要恢复的磁盘做一个镜象文件“2.IMG”,用WINHEX打开“2.IMG”,如果你的文件格式是“TXT”此时你前后翻叶已经可以看到你写的东西了,你所要做的就是在WINHEX中选择你要恢复的内容,并将它保存成为一个新的文件(文件名当然由你来定了)。
2、如果你的文件格式不是“TXT”,而是“DOC”之类的,就用相应的程序打开“2.IMG”,比如是“DOC”的话用MSWORD来打开,WORD会提示你的文件中有非法的字符要不要删除?这时你选择“是的”,你会发现,你的文章的绝大部分内容都在,不过你的排版信息没了,不过没关系,大不了我们重新排过,总比重新写过要快多了。
三、工具篇
数据恢复软件有许多,我不敢说它们都是有用的,但是如果你实在是不愿意学习那些深奥的理论,身边又没有有数据恢复经验的人,你可以试试这些软件,但是有一点,我还是希望你能多多了解一些理论知识,因为要充分利用好别人的软件,你同样需要知道你在做什么,这样做会有什么样的后果,我相信一定有这样的时候,本来一块完全可以恢复的盘被你倒弄完就变得难以恢复了。所以即使你信任这些恢复工具,在你操作的过程中也最好有对磁盘数据结构比较熟悉的人在你的身边(不要告诉我最好是个MM)。下面来介绍几个较为有名的恢复工具。
1、Harddisk Data Recovery 3.0 硬盘文件系统恢复工具,该工具不象其它修复工具需要写入数据从而有可能把您的硬盘搞得更糟,它可以在内存重建文件系统,并可以安全的把数据传输到另外一个设备,支持FAT16/32、NTFS。
2、Disk Genius(DiskMan) 2.0 国产全中文硬盘分区表维护软件,软件主要功能及特点:1、仿WINDOWS纯中文图形界面,支持鼠标操作;2、提供比fdisk更灵活的分区操作,支持分区参数编辑;3、提供强大的分区表重建功能,迅速修复损坏 了的分区表;4、支持FAT/FAT32分区的快速格式化;5、在不破坏数据的情况下直接调整FAT/FAT32 分区的大小;6、自动重建被破坏的硬盘主引导记录;7、为防止误操作,对于简单的分区动作,在存盘之 前仅更改内存缓冲区,不影响硬盘分区表;8、能查看硬盘任意扇区,并可保存到文件。9、可隐藏FAT/FAT32 及NTFS分区。10、可备份包括逻辑分区表及各分区引导记录在内的所有硬盘分区信息。11、提供扫描硬盘 坏区功能,报告损坏的柱面。12、具备扇区拷贝功能。13、可以彻底清除分区数据。
3、File Scavenger 2.1 能够恢复在NTFS格式下意外删除的文件工具,能够救回的文件不只单一文件,还包括整个目录及压缩文件,也支持救回来的文件选择在原来所在位置恢复或储存到其它的硬盘。
4、EasyRecovery Pro 6.0是威力非常强大的硬盘数据恢复工具。能够帮你恢复丢失的数据以及重建文件系统。EasyRecovery不会向你的原始驱动器写入任何东东,它主要是在内存中重建文件分区表使数据能够安全地传输到其他驱动器中。你可以从被病毒破坏或是已经格式化的硬盘中恢复数据。该软件可以恢复大于8.4GB的硬盘。支持长文件名。被破坏的硬盘中像丢失的引导记录、BIOS参数数据块;分区表;FAT表;引导区都可以由它来进行恢复。
5、Recover98 用来在 WIN 98 下搜索并恢复误删除的文件和子目录的工具,可惜它的试用版,仅能救回3个文件。
6、TiraMisu Data Recovery deMo FAT32 4.03 是恢复硬盘因病毒感染,意外格式化或其它因素所导至的资料损失恢复工具软件,即使电脑以无法开机启动,仍可利用本身所作的启动盘开机来找出所失去的硬盘资料,并让你将这些资料拷贝到其它的硬盘.
7、FinalData 是一个文件恢复程序,利用它能够恢复被删除的重要信息,甚至还能从已经格式化或者已经损坏的磁盘中抽取文件,允许恢复完整的目录并尽量保持其原有的目录结构。
8、多数杀毒软件都有重建分区表的功能。
本文到此就已经结束了,如果你发现文章中有什么错误,或是你有什么更好的方法和补充的话,请发E-MAIL或是在QQ上告诉我,当然如果你有什么疑问也可以咨询!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值