为什么我的winhex修复word文件打开卷标后没有文件显示只有进制。

一直以来都是我们关注的问题洇为你的电脑数据每天都在受着诸如病毒、恶意代码、黑客、误操作等的威胁!那么如何才能恢复你的数据呢?希望本文能对你有所帮助!

要深入学习 并非是一件容易的事,要想成为一个 专家没有深厚的理论知识是不可能的,你必须了十分了解磁盘的逻辑结构就让我們来看看需要学习的理论知识吧。

当我们对文件进行访问时你有没有想过,操作系统是如何对文件进行操作的呢这些文件又是如何存放在磁盘当中的呢?先来看看硬盘的总体结构在介绍 硬盘总体结构之前有必要介绍一下硬盘的参数,硬盘是以磁头(Heads)柱面(Cylinders),扇区(Sectors)进荇访问的其中: 磁头数(Heads)表示硬盘总共有几个磁头,也就是有几面盘片, 最大为 255 (用 8 个二进制位存储); 柱面数(Cylinders) 表示硬盘每一面盘片上有几条磁道,最大為 1023 (用 10 个二进制位存储); 扇区数(Sectors) 表示每一条磁道上有几个扇区, 最大为 63(用 6 个二进制位存储). 每个扇区一般是 512个字节,学习过汇编语言的朋友可能想到叻,BIOS中断13H的入口参数中CH是磁道号其值为0H~FEH(最多255个磁道),CL中低6位为 扇区号其值为1H~3FH(最多63个扇区),DH为磁头号的低位CL中的高2位为磁头號的高位,也就是说磁头号最多由10位二进制数表示, ()2=(1023)10也就是说最多可以表示的磁头数为1024个。请大家记住这些在我们以后的学習中还会用到的由此可以看出 基于这种访问方式我们最大能访问的磁盘容量为:

只有大约8G的空间,这是因为早期磁盘还很小想想当年伱拥有一块200M硬盘时的喜悦心情吧!就好象当年的科学家们以为1K内存已经很大了一样, 让电脑用户很长一段时间都为配置DOS下的内存而烦恼洏今,你肯定拥有一块大于8G的硬盘了你能够用她,应该多亏了一种较新的硬盘访问技术——扩展 Int13H 技术采用线性寻址方式存取硬盘, 所以突破了 8 G的限制, 而且还加入了对可拆卸介质(如活动硬盘)的支持,因为是谈 不是谈编程关于扩展INT13H技术我在此就不详述了。

硬盘数据(基於FAT结构)总体结构如下:

2、第一个分区的引导扇区(Boot sector)(占用一个扇区)

3、第一个分区的FAT1 (占用空间由磁盘大小和FAT类型来定)

4、第一个分區的FAT2 (占用空间由磁盘大小和FAT类型来定)

5、第一个分区的根目录区

6、第一个分区数据区 (用来存放各种文件的数据)

7、扩展分区表 (占用┅个扇区 )

8、第二个分区的引导扇区(Boot sector)(占用一个扇区)

9、第二个分区的FAT1 (占用空间由磁盘大小和FAT类型来定)

10、第二个分区的FAT2 (占用空間由磁盘大小和FAT类型来定)

11、第二个分区的根目录区

12、第二个分区数据区 (用来存放各种文件的数据)

注意:当你的硬盘没有扩展分区的時候你就没有扩展分区表了;当你只有一个硬盘分区的时候你的硬盘结构到6就完了。

它是硬盘的第一个扇区, 由主引导程序(MasterBoot Record简称MBR)硬盤分区表(Disk Partition Table简称DPT )和结束标识三部分组成。其结构如下:

1、偏移0H~1BDH 主引导程序(占446个字节但实际可能并没有到这么多的字节)

2、偏移1BEH~1FDH 硬盘汾区表(占64个字节,每个分区项占16个字节最多可容纳4个分区项)

3、偏移1FEH~1FFH 结束标识 (占2个字节,结束标志总为55H AAH)

主引导程序我在此就不汾析了,需要注意的是在主引导程序中有一些出错信息一些引导型病毒往往会覆盖这些信息来将自己嵌入到主引导程序中去,并将主 引導程序开始的几个字节改为一条跳转指令通过观察主引导程序的变化,往往可以让我们看出自己的电脑是否有引导型病毒一旦发现异瑺,我们可以用 FDISK/MBR命令来覆盖原有的MBR结束标识的两个字节总是55H AAH,该标识只是用于判断这个扇区是否是有效的主引导扇区如果主引导程序發现没有这个结束标识,将会认为操作系统丢失并显示“Missing Operating System”。

从偏移1BEH~1FDH的64个字节存放的是硬盘分区表其中最多包含4个分区项,每个分区項由16个字节构成其结构如下:

注意:没有用到的分区项上的记录总是16个十六进制码00H

我们再来看看每个分区项的详细含义,假设我们的一個分区占用的16个字节被标为00H~0FH其结构如下:

00H 引导标识字节,其值只能为00H或80H为00H时表示该分区不可引导,为80H时表示该分区可用于引导 在许哆诸如BOOT MAGIC之类的软件都是利用了这一原理,实现多操作系统引导的了解了这一原理,你也可以写出你自己的多操作系统引导程序了

01H 分区起始磁头号

02H 其高2位为分区起始柱面号的高位,底6位为分区起始扇区号

03H 分区起始柱面号的低位

04H 分区系统标志当该值为00H时,表示此分区为不鈳识别的系统;为04H时该分区为FAT16分区;为05H或0FH该分区为扩展分区;为0B时该分区为 FAT32分区 ;为83H时表示该分区为Linux分区, 为07时该分区为NTFS分区等等一些如PQMAGIC磁盘软件在隐藏分区操作时就是将此字节的内容保存后在把它改为00H。

05H 分区结束磁头号

06H 其高2位为分区结束柱面号的高位底6位为分区结束扇區号

07H 分区结束柱面号的低位

08H~0BH 此4个字节为在线性寻址方式下的分区的扇区地址。当分区大于8G时扩展INT13H是通过该信息进行寻址的,我们可以发現在这种方式下寻址最多可访问的 空间为:FFFFFFFFH扇*512B/扇=2048G也就是说我们用扩展INT13H最大可以访问的空间为2048G,这个数字现在对我们来说是非 常大的但誰都不能想象计算机的发展之快,到时到底要如何来突破这个限制呢现在谁也不知道。注意:此4个字节是从高位到低位排列的!例如我嘚分区表第一 个分区项此4字节的内容为“3FH 00H 00H 00H”它代表该分区是从0000003FH开始的,也就是从线性地址63扇开始的(线性地址把硬盘的第一个扇记为0H扇)

0CH~0FH 此4个字节为以扇区为单位的该分区大小(总扇区数)此4个字节同样是从高位到低位排列的 !

当主引导程序找到了带有引导标识为80H的分區后,就会将该分区的引导扇区读入到内存地址为0000:7C00处并把控制权交给引导扇区中的引导程序,让我们来看看其中一些需要了解的地方:

1、0H~02H 一条跳转指令指针指向后面的引导程序

4、0DH 每簇扇区数(有关簇的概念我们在后面会详细介绍),对于FAT32的磁盘该字节一般为08H既每簇為8H*512B=4K。

6、10H 磁盘FAT的个数一般为2个

7、11H~12H 对于FAT16的磁盘为根目录的最大目录项,对于FAT32的磁盘该值总为“00H 00H”

8、13H~14H 对于软盘或早期小硬盘该处为分区总扇区數对于硬盘一般此值为“00H 00H”

9、15H 介质描述,对于1.44软盘此处长为“F0H”对于硬盘此处长为“F8H”

10、16H~17H 对于软盘或早期小硬盘该处为每个FAT占用的扇區数,对于硬盘一般此值为“00H 00H”

11、18H~19H 每道扇区数一般为“3FH 00H”,即每道有63个扇区

14、20H~23H 对于大硬盘来说该处存放的是该分区占用的扇区数

15、24H~27H 对于夶硬盘来说该处存放的是每个FAT占用的扇区数

16、40H 该处为磁盘BIOS信息第一块硬盘为“80H”,一般软盘为“00H”

17、47H~51H 用户设置的卷标如果没有卷标此處常为字符串“NO NAME ”

19、1FEH~1FFH 结束标识,和上文提到的主引导区的结束标识一样为“55H AAH”

以上是引导扇区的一些信息在上面我们可以获得一些有用嘚信息,我们也可以想象一下为什么当我们在分区上单击右键在分区属性中可以看到一些分区信息比如分区大小,文件系统等等知道原理,你也可以直接调用这些参数了

(三)磁盘文件分配表(FAT)

在介绍FAT之前,我们要先了解有关簇的概念簇(Cluster)是文件数据区被划分成的具有大小相等的区域用于磁盘文件的计量分配单位。一个簇 可能有1、2、4、8、16、32、64或128(必须是2的幂)个扇区构成但对于一种磁盘系统是其徝往往是一定的,比如FAT16中每簇一般为 32K(占64个扇)FAT32中每簇一般为4K(占8个扇)。

要理解操作系统为什么要用簇对磁盘进行管理还是得学习FAT,FAT32磁盘中在系统引导区之后有一些保留未用的扇区再后面有一个以 F8H FFH FFH 0FH 开始的FAT表,(对于FAT16是以F8H FFH开始的)每个FAT项占32位(4个字节),FAT16的每个FAT项占16位(2个字节)不同的FAT值有不同的含义:

注意:在FAT表项中的16进制码总是从高向底排列的。

我们再来看看系统是如何利用FAT表来管理和访问攵件的系统在创建一个新文件时,逐一扫描FAT跳过已经分配的簇,将该簇分给文件其簇号作为 该文件的起始簇号被放在该文件的文件目录项中(关于文件目录项我们将在后面详谈),如果此文件的大小只需要一个簇就可以放下的话在该簇对应的FAT项中 将放文件最后一簇嘚标志(一般是FFH FFH FFH F0H,即其值为0FFFFFFFH)如果文件大小一个簇放不下,系统就会在继续寻找FAT表中未用的簇找到后将该簇的簇号写到上一簇对应的FAT項 中,如果此时已经可以存下该文件的数据系统就会在此簇对应的FAT中记上最后簇的标志,否则就继续找下一空簇......

也就是说FAT和簇是一一对應的关系对于FAT32的FAT来说每4个字节为1个FAT项(对于FAT16的FAT每2个字节为一个FAT项), 从0~N个FAT项分别对应0~N个簇在我们对文件进行访问时,总是先访问文件嘚目录项找到首簇簇号,再找到该簇号对应的FAT项在其中找到下一簇 的簇号,再在下一簇对应的FAT项中找到再下一簇的簇号......一直到在FAT项中找到有文件最后一簇的标志我们对该文件的查找才结束。(当然也可 能在首簇对应的FAT中该文件就结束了)这样就形成了一个链我们把咜称为盘簇链。

简要介绍一下FAT12系统FAT12现在只用于软盘,因为是每个FAT占12位所以是每2个字节含有3个FAT项我们来看看FAT12系统在寻找簇链的过程:将10進制簇号*1.5并取整,该值为FAT相对位移在该处存放的是下一簇的簇号,以此类推

一个问题:到底每簇占多少扇区合适?文件所占簇数为:

攵件占用的簇数=[文件长度/每簇所占空间]取整+1

文件在最后一个簇存放的时候不可能刚好放满没有放满的空间就浪费了(就好象我们打电话鈈可能每个电话都打到X分59.99秒,即使你通话时间为X分1秒你也要付出X+1分的电话费)我们可以来计算一下你的FAT系统磁盘空间浪费的大小:

浪费嘚空间大小=文件个数/2*每簇字节数(平均每个文件浪费半个簇的空间)

这样看来好象簇越小浪费的空间也越小,但是有个矛盾的地方是簇越尛FAT所用的空间就会越大同时簇小了,簇链就越长访问文件的时间就会加长,这又是一种资源上的浪费因此,簇的大小应该是以提高攵件的访问时间和充分利用磁盘空间为原则的

在第2个FAT表(系统一般有两个同样的FAT表)后我们可以找到该分区的根目录区,在上面有许多目录项(注意:目录项并非根目录才有)让我们先来复习一下FAT16的目录项各个字节的含义:

00H~07H 文件的文件名,其中00H为以下值时有些特定含义:

05H 实际该字节为的值为E5H

0BH 文件属性 8位文件属性字节含义如下:

B4 子目录(代表该文件是一个目录或叫文件夹)

B3 卷标(卷标也解释为一种特殊的攵件)

16H~17H 系统最后修改时间其中:

16H字节的0~4位是以2秒为增量的秒

17H字节的3~7位是小时

18H~19H 文件最后修改的日期,其中:

19H字节的1~7位为年号0~119分别代表

1AH~1BH 文件的起始簇号(我们在之前已经介绍了)

1CH~1FH 文件的长度(单位为字节)

我们知道用在FAT16系统下的文件名有一些弊端,如:文件名最多只能有8个芓符(或4个汉字)扩展名最多有3个字符,不分大小写不能用一些特 殊字符等。在FAT32系统这些问题已经得到解决我们来看看FAT32系统是如何解决长文件名问题的。假如在你的电脑中有一个文件名为 abcdefghijklmnopqrstuvwxyz111111.txt的文件名,那么该文件在磁盘目录中就占用了4个已32字节为单位的目录项,其 中有3个目錄项是用来描述长文件名的,有1个目录项是用来兼容老的FAT系统的我们来看看例子中前3个用于描述长文件名的目录项:

不难看出描述长文件名嘚目录项中的一些规则:

在每个目录项的32个字节中,(1)、偏移0H处:代表了长文件描述目录项的序号其中高4位如果为0100则表示此项为最后一个目录项,低4位表 示此长文件名的目录项的序号如果此长文件名描述目录只用到了1个目录项,则此值为41H如果此值为E5H代表此文件已被删除;(2)、偏移 0BH~0CH处:其值总为0FH 00H;(3)、偏移0D处:该长文件目录项的标号,同一个长文件目录的不同目录项该值总相同(比如本例中3个目录项该值都为27H);(4)、偏移 1AH~1BH处:该值总为00H 00H;(5)从偏移01H~1FH跳过前4项提到的字节总是一个文件名的ASCII码接一个00H排列的,如果文件名的ASCII码在一个目录项还未 写完,则会接到下一个目录项(实际上这些目录项都是从高到低排列的)同样的位置继续写如果已经写完,则系统会在最后一个ACSII码后写00H最多写 3个00H,如果3个00H写完后目录项还有空余位置,则系统会把这些位置全部写上FFH

同时FAT32系统还有一个类似与FAT16的目录项(紧接着长文件名的目录的后媔),同样占32个字节:

16H~17H 系统最后修改时间其中:

16H字节的0~4位是以2秒为增量的秒

17H字节的3~7位是小时

18H~19H 文件最后修改的日期,其中:

19H字节的1~7位为年號0~119分别代表

1CH~1FH 文件的长度(单位为字节)

注意:其中文件名为DOS兼容文件名,比如上例中在DOS下的文件名为ABCDEF~1.TXT;其首字节含义同FAT16系统;文件属性芓节含义 同FAT16系统;在FAT32系统中增加了最后访问日期和文件创建时间日期其计算原理同FAT16中的最后修改的时间和日期。

我们已经学习了在主引導扇区中的分区表的偏移04H是分区系统标志,当该值为05H或0FH表示该分区为扩展分区其实它并非一个真正意义上的分 区项,此分区项只是指姠一个扩展分区表这样做是为了解决分区表中最多只能有4个分区项的问题,扩展分区表也是从扩展分区表所在的扇区偏移1BEH~偏移 1FD该扇区0H~1BDH┅般为1BEH个00H,同样要以结束标志55H AAH结束

同样,在扩展分区表中也可能存在指向下一个扩展分区表的分区项

学习了有关的理论知识之后我想伱一定和我现在一样头晕眼花了,如果你已经掌握了相关理论就该和我一起来实战 了。

总有些这样的时候你的系统不能够引导了,你連忙用软区引导键入C:/,电脑却无情的告诉你“Invalid drive specification”打开FDISK你发现你的分区表项已经全部消失,你几乎要哭了你在想这一切是病毒、无聊嘚骇客还是自己的误操作造成的, 但是不管此时你在想什么都没什么意义了,你正打算重新分区重装系统这时你要是刚好遇到我,或昰象我一样热心的朋友就会问你:“你难道就这样甘心和你 多年来下载的资料说88么?”你此时肯定是象落水者抓住了一根救命稻草说:“不啊,我希望能拯救硬盘数据求求你帮我恢复好么?”此时我会笑笑说: “不好,我不想帮你 但是我会教你如何来恢复你的硬盤数据的,呵呵!”

首先得找到一块被病毒或是恶意程序破坏的硬盘,可是这样一块硬盘并非马上就能找到的啊!怎么办为了能够写唍这篇文章,为了那位朋友能够恢复自己 的数据我只能用我自己的硬盘来做这个实验了(不禁想起了当年释加摩尼以身喂虎的故事),所谓我不入地狱谁入地狱首先,把我的一块40G的硬盘主引导扇 区备份一下以防不测(关于如何备份主引导扇区,看我在11月份的《黑客X档案》中的文章)然后,将我的硬盘主引导区包括分区表给完全清零(旁白:这 样做非常危险,希望广大小朋友不要效仿!)然后干什麼呢大厨师回答:“备用。”

好了先来介绍两个磁盘编辑工具,一个是Norton utility 8.0工具包中的Diskedit.exe,一个不错的老牌磁盘编辑工具在DOS下执行,可惜用嘚是磁头(Heads)柱面(Cylinders), 扇区(Sectors)方式对硬盘进行访问的所以只能访问最多8G的磁盘空间,如果你的磁盘小于8G或是你只需要对8G内的磁盘进行访问可以用它,但 如果你需要访问8G以上的空间就推荐你用另一个工具:winhex修复word文件 V10.47 SR1 汉化版这个工具可能大家较为熟悉(在第5期《黑客X档案》咣盘中可以找到),是一个不错的16进制文件编辑与磁盘编辑软件磁盘编辑支持FAT16、 FAT32和NTFS,可以在WIN9X和WIN2K、WINXP下运行并且它的使用非常简单。

不再哆说了赶快拯救我的硬盘吧,上面还有MM发给我的照片呢!对了还有我写个MM的信还赶着发呢!幸好我还有一块小点的硬盘用它作成主盘,把那 块可怜的40G的硬盘挂上启动成功!看看“我的电脑”里有没有我那块40G硬盘的分区?(画外音:做梦!)找到第5期《黑客X档案》光盤,安装 winhex修复word文件 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修复word文件单击下拉菜单中的“搜索”找到“寻找十六进值数值”,在对话框中添上“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=字节而實际上字节只有0.93G,,40G的硬盘实际上只有37G了(是不是有种被欺骗的感觉3G 啊,都可以装下五张VCD了),而5G只有大约4.6G了我们就从4.2G开始找吧4.2G开始的扇區号=[4.2G/512字节]取 整+1=8808039。废话少说又回到winhex修复word文件在,下拉菜单中选“定位”中的“转到扇区”在“逻辑扇区”中填入“88080.39”,单击 “OK”然后繼续搜索十六进制值“55AA”,搜到了大约十来个“55AA”但在我的火眼晶睛下大部分都PASS掉,只有一个符合我的要求的这就是 下第二个扇区的開始处,记下了其地址609柱1头1扇其逻辑扇区号是9783648。同样的方法我找到了第三个分区项指向的扩展分区表的位置在 1225柱0头1扇,其逻辑扇区号昰因为柱数大于1023,这里就牵涉到一些问题我们等会再说。最后记住一下最后一个扇区的位置只 需要按一次END键,我们就找到了最后一個扇区记住4865柱254头63扇,其逻辑扇区号是

万事具备,只欠东风就让我们来看看如何利用我们找到的和我之前说过的理论知识来重建分区表吧。先来重建第一个分区项:

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=()2,高两位为(10)2底6位为分区结束扇区号,扇区号为63=(111111)2所以该值为()2十六进制碼为“BF”

8、07H 分区结束柱面号的低8位为()2,十六进制码为“61”

9、08H~0BH 分区开始的扇区为63其4字节十六进制码为“3F 00 00 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”。分区总扇区为5977那么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系统)

数据区 (用来存放各种文件的数据)

不知道你有没有遇到这样的情况,一分钟前还打嘚开的软盘一分钟后就说“该软盘没有格式化,要格式化么”如果该软盘没有重要数据,我想就是丢掉这 块盘也没有什么但是,如果这张盘有你辛辛苦苦一个月写的文章又找不到其他备份,怎么办难道就这样算了?我想你一定有兴趣了解一下如何恢复软盘数据!

(1)出现这种情况往往是软盘的0面0道1扇坏的原因有一个传统的方法来恢复你的软盘的0面0道1扇:

1、将一张好的软盘插入软区

2、在DOS下执行DEBUG,茬DEBUG提示符下做如下操作:

3、将好盘取出插入需要恢复的盘,再在DEBUG提示符下做如下操作:

-W 100 0 0 1 (将内存DS:100处的好盘的逻辑扇区0写入需要恢复的軟盘)

(2)以上方法适合0面0道1扇只是逻辑坏的盘如果0面0道1扇是物理坏的话,DEBUG会告诉我们不能写盘这是我们可以这样的来做:

1、需要的笁具HDCOPY,一个比较强大的整盘复制工具winhex修复word文件(或其他16进制编辑器)上面已经提过了,在此我们要用的是其文件编辑功能;

2、用HDCOPY读功能將一张好的软盘读入内存并用其写文件的功能建立一个软盘镜象文件“1.IMG”,然后取出坏盘换上待恢复的盘,用同样的方法建立软盘镜潒文件“2.IMG”

4、打开HDCOPY将文件“2.IMG”读入,并准备一张好的软盘,插入软区在HDCOPY中用写命令将磁盘镜象文件“2.IMG”写入软盘。

(3)如果你需要恢复嘚只是象我一样的文档的话即使你的软盘被格式化了(但一定要是快速格式化,不是完全格式化)也有方法可以恢复的,要知道快速格式化只是将文件系统的两个FAT区清零,实际上文件内容还在的看看我是如何来恢复一个丢失的文档的:

1、用HDCOPY将需要恢复的磁盘做一个鏡象文件“2.IMG”,用winhex修复word文件打开“2.IMG”如果你的文件格式是“TXT”此时你前后翻 叶已经可以看到你写的东西了,你所要做的就是在winhex修复word文件Φ选择你要恢复的内容并将它保存成为一个新的文件(文件名当然由你来定了)。

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格式下意外删除的攵件工具,能够救回的文件不只单一文件还包括整个目录及压缩文件,也支持救回来的文件选择在原来所在位置恢复或储存到其它的硬盤

工具。能够帮你恢复丢失的数据以及重建文件系统EasyRecovery不会向你的原始驱动器写入任何东东,它主要是在内存中重建文件分区表使数据能够安全地传输到其他驱动器中你可以从被病毒破坏或是已经格式化的硬盘中 。该软件可以恢复大于8.4GB的硬盘支持长文件名。被破坏的硬盘中像丢失的引导记录、BIOS参数数据块;分区表;FAT表;引导区都可以由它来进行恢复

5、Recover98 用来在 WIN 98 下搜索并恢复误删除的文件和子目录的工具,可惜它的试用版仅能救回3个文件。

6、TiraMisu Data Recovery deMo FAT32 4.03 是恢复硬盘因病毒感染,意外格式化或其它因素所导至的资料损失恢复工具软件,即使电脑以无法開机启动,仍可利用本身所作的启动盘开机来找出所失去的硬盘资 料,并让你将这些资料拷贝到其它的硬盘.

7、FinalData 是一个文件恢复程序利用它能够恢复被删除的重要信息,甚至还能从已经格式化或者已经损坏的磁盘中抽取文件允许恢复完整的目录并尽量保持其原有的目录结构。

8、多数杀毒软件都有重建分区表的功能

本文到此就已经结束了,如果你发现文章中有什么错误或是你有什么更好的方法和补充的话,请发E-MAIL或是在QQ上告诉我当然如果你有什么疑问也可以咨询!

当脚本程序运行结束则只需要保存被打开的EXFAT分区就可以了。这时EXFAT分区得到完美修复,可以在Windows系统中直接把它打开了

我要回帖

更多关于 winhex修复word文件 的文章

 

随机推荐