1、系统工作机理的简单介绍(本节由 owpower缩写) 这一部分在原作中是最重要的一章,考虑到篇幅关系,进行了大量的删节 ①、Dos(Dos兼容系统)硬盘数据的构成 DoS磁盘系统,可以按照逻辑分区的概念管理物理空间,不同分区可以装载不同的OS系统。 示意如下 硬盘空间 第一扇区分区1 |分区3份分区4 主引导扇区|引导扇区|引导扇区|引导扇区|引导扇区 各分区公用各个分区相对独立,可安装不同操作系统 对FAT结构的分区每一分区都有独立的引导记录,FDT表,FAT表等。同时,系统还有一个最为重要的 主引导记录。在0柱0面1扇区,今后我们用cYL代表柱、SDE代表面,SEC代表扇区。以下一个FAT 结构分区的简图 保留区-磁盘参数表、DOS引导记录 控制区-FAT表1、FAT表2根目录区 数据区-数据区 以下简单介绍一下重要的部分 主引导记录又称主分区表、MBR等等:MBR占一个扇区,在CY0、S|DE0、SEC1,由代码区和 数据区构成。其中代码区是一端标准的程序,完成B|OS自举到 OS BOOT之间的工作,为OS启动做 后的准备。标准代码区可以由 FDISK/MBR重建,但对于多系统引导的不标准MBR,将被这一操作破坏 MBR的数据区记录了分区情况 系统扇区:CYL0、S|DE0、SEC1CY0、SDE0、SEC63,共62个扇 区引导区又称BoOT区:CY0、SDE1、SEC1这是我们过去称的Dos引 导区。也占一个扇区 文件分配表又称FAT:是记录文件占用簇的情况和连接关系的地方。一般有两个FAT表,起到备份的作用 FAT12、FAT16的第一FAT表一般均在0-1-2,FAT32的第一FAT表在0-1-33。由于FAT表记录文件占 用扇区连接的地方,如果两个FAT表都坏了,后果不堪设想。 由于FAT表的长度与当前分区的大小有关所以FAT2的地址是需要计算的。根目录区(RoOT、FDT) 这里记录了根目录里的目录文件项等,ROOT区跟在FAT2后面 数据区:跟在ROOT区后面,这才是数据内容。其实,MBR、隐含扇区、BOOT区,重建都比较容易 数据恢复的关键在于恢复数据文件。由于FAT表记录了文件在硬盘上占用扇区的链表,如果2个FAT表 都完全损坏了。那么恢复文件,特别是占用多个不连续扇区文件就相当困难了 ②、主引导记录简单说明 主引导记录是硬盘引导的起点,关于代码区不多说了,其数据区,比较重要的是2个标志,80H和55AA, 80H一般在偏移1BE处,80是分区激活的标志的标记表示系统可引导,且整个分区表只能有一个80标记 另一个就是结尾的55AA标记,用来表示主引导记录是一个有效的记录。另外,各个分区自身的引导记 录,也是以55AA结束,这是我们查找分区的标志。我们后面在介绍如何主引导记录中,给出了一个完整 的分区表的例子,大家可对照查看。数据区中,用10H字节表示一个分区,最多可表示4个分区,分别从 1BE、1CE、1DE、1EE开始,我们后面给出了分区表项对应地址的含义。大家可以对应分析一下以下分 区的情况。 800101000 B FE BF FC3F00-00007E86BB00
1、 系统工作机理的简单介绍(本节由 lowpower 缩写) 这一部分在原作中是最重要的一章,考虑到篇幅关系,进行了大量的删节。 ①、 DOS(DOS 兼容系统)硬盘数据的构成 DOS 磁盘系统,可以按照逻辑分区的概念管理物理空间,不同分区可以装载不同的 OS 系统。 示意如下: 硬盘空间 第一扇区|分区 1 |分区 2 |分区 3 |分区 4 主引导扇区|引导扇区|引导扇区|引导扇区|引导扇区| 各分区公用|各个分区相对独立,可安装不同操作系统。 对 FAT 结构的分区每一分区都有独立的引导记录,FDT 表,FAT 表等。同时,系统还有一个最为重要的 主引导记录。在 0 柱 0 面 1 扇区,今后我们用 CYL 代表柱、SIDE 代表面,SEC 代表扇区。以下一个 FAT 结构分区的简图。 保留区- 磁盘参数表、DOS 引导记录 控制区-FAT 表 1、FAT 表 2 根目录区 数据区-数据区 以下简单介绍一下重要的部分: 主引导记录又称主分区表、MBR 等等:MBR 占一个扇区,在 CYL 0、SIDE 0、SEC 1,由代码区和 数据区构成。其中代码区是一端标准的程序,完成 BIOS 自举到 OS BOOT 之间的工作,为 OS 启动做最 后的准备。标准代码区可以由 FDISK/MBR 重建,但对于多系统引导的不标准 MBR,将被这一操作破坏。 MBR 的数据区记录了分区情况。 系统扇区:CYL 0、SIDE 0 、SEC 1-CYL 0、SIDE 0 、SEC 63,共 62 个扇 区引导区又称 BOOT 区:CYL 0、SIDE 1 、SEC 1 这是我们过去称的 DOS 引 导区。也占一个扇区。 文件分配表又称 FAT:是记录文件占用簇的情况和连接关系的地方。一般有两个 FAT 表,起到备份的作用。 FAT12、FAT16 的第一 FAT 表一般均在 0-1-2,FAT32 的第一 FAT 表在 0-1-33。由于 FAT 表记录文件占 用扇区连接的地方,如果两个 FAT 表都坏了,后果不堪设想。 由于 FAT 表的长度与当前分区的大小有关所以 FAT2 的地址是需要计算的。根目录区(ROOT、FDT): 这里记录了根目录里的目录文件项等,ROOT 区跟在 FAT2 后面。 数据区:跟在 ROOT 区后面,这才是数据内容。其实, MBR、隐含扇区、BOOT 区,重建都比较容易。 数据恢复的关键在于恢复数据文件。由于 FAT 表记录了文件在硬盘上占用扇区的链表,如果 2 个 FAT 表 都完全损坏了。那么恢复文件,特别是占用多个不连续扇区文件就相当困难了。 ②、 主引导记录简单说明: 主引导记录是硬盘引导的起点,关于代码区不多说了,其数据区,比较重要的是 2 个标志,80H 和 55AA, 80H 一般在偏移 1BE 处,80 是分区激活的标志的标记表示系统可引导,且整个分区表只能有一个 80 标记。 另一个就是结尾的 55 AA 标记,用来表示主引导记录是一个有效的记录。另外,各个分区自身的引导记 录,也是以 55AA 结束,这是我们查找分区的标志。我们后面在介绍如何主引导记录中,给出了一个完整 的分区表的例子,大家可对照查看。数据区中,用 10H 字节表示一个分区,最多可表示 4 个分区,分别从 1BE、1CE、1DE、1EE 开始,我们后面给出了分区表项对应地址的含义。大家可以对应分析一下以下分 区的情况。 80 01 01 00 0B FE BF FC 3F 00-00 00 7E 86 BB 00
①:激活标记,80表示可引导分区 ②:分区开始的磁头号为01、开始的扇区号为01、开始的柱面号为00,由于开始的扇区号为2进制6位 而开始的柱面号为2进制10位,因此扇区号所用字节的高两位要加在柱面号高两位。 ③:分区的系统类型FAT32(0B),01是FAT12,04为FAT16,06为B|GDOs,07为NTFS 其他参见分区类型表 ④:分区结束磁头号254、分区结束扇区号63、分区结束柱面号764 ⑤:首扇区的相对扇区号63 ⑥:总扇区数12289622 2、常见手工处理工具与DOS外部命令介绍 DEBUG:古老和最为常见的调试跟踪软件,始终捆绑在微软的 DOSWIN9X操作系统中。有19个子命令 有编写执行汇编指令,直接读写绝对扇区和内存单元等功能,可以在最艰苦的条件下工作。DOS622以下 的系统, DEBUG.EXE在DOS目录下,WN9X系统中它在 WINDOWSICOMMAND目录下,它 也出现在WN9X所生成的应急盘中。 DISKEDIT:常见16进制编辑软件,字符界面,可以以文件方式和 扇区方式读写逻辑内容,可以读写绝对扇区,可以方便的查找编辑分区表、FAT表、ROOT区等重要扇区 这一点要比 DEBUG更方便。但在一些重要扇区损坏的情况下, DISKEDIT可能无法启动。 DISKEDIT软 件可以在著名的 Norton Utilities软件包中找到。最新的 DISKED出现在NU4中。 NDD:常见的FAT文件结构磁盘修复工具,就是著名的 NORTON磁盘医生,可以自动修复分区丢失等情 况,可以抢救软盘坏区中的数据,强制读出后搬移到其他空白扇区。希望大家不要再使用 NORTON FOR DoS7或8的NDD,这个版本由于不支持大分区、FAT32、长文件名等技术,会给你带来大量的麻烦。建 议大家使用 Norton Utilities4或更高版本中的 NDD EXE,这是纯Dos下的工具。在硬盘崩溃或异常的情 况下,他可能可以带给用户以希望。WN9X下的磁盘医生调用的并不是这个程序,而 是NDD32EXE FD|SK:FDSK当然是个危险的命令,很多人非常恐惧,事实上,FDSK命令的运行并不影响任何分区内 的硬盘数据,他对分区的设置操作,只改变主分区表的数据区。而特别是FDsK异常重要的隐含参数MBR, 可以重建主分区表的代码区,清除主引导型病毒等。这是非常有用的操作。DOS622以下的系统 FDISK. EXE在DOS目录下,WN9X系统中它在 WINDOWS\COMMAND目录下,它也出现在WN9X所 生成的应急盘中 FORMAT:在一些人眼中, FORMAT是最可怕的命令,但他并不是对硬盘清零,特别值得注意的是,很 多文件恢复工具都建议你恢复前先 FORMAT该分区起到保护的饿作用。DOS622以下的系统 FORMAT COM在DOS目录下,WN9X系统中它在W| NDOWSICOMMAND目录下,它也出现在WN9X 所生成的应急盘中。 HD-COPY:传统的软盘COPY工具,20版本以后加入了强制读的功能,可以读出一些损坏扇区的内容 sYS:SYS命令是重建BOOT区的最简洁的手段,也可以杀除BOOT区病毒。DOS622以下的系统 sys. COM在DOS目录下,WN9X系统中它在 WINDOWS\COMMAND目录下,它也出现在WN9X所生 成的应急盘中。 令我非常遗憾的是,至今我没有发现比较出色的扇区级备份镜象工具,我曾写过一个 HD-MIRROR,但由 于错误较多,我提供下载的第二天就停止了发布,另外fxc的作者noz写过一个 done. exe,但可惜只适合 相同的硬盘。我也曾以为 GHOST可以做到这点,事实上,你目前还不能指望他为你备份一块深度破损的 硬盘。。如果有一个有效的能以按扇区机制(而不是文件机制)压缩备份一块硬盘将之做成一个镜象文件 的话,那么我们的恢复工作就拥有了更多的保证和余地。我们可以更大胆的做恢复的尝试 3 些自动处理工具或软件包 首先介绍国内的一些免费修复工具
① ② ③ ④ ⑤ ⑥ ①:激活标记,80 表示可引导分区 ②:分区开始的磁头号为 01、开始的扇区号为 01、开始的柱面号为 00,由于开始的扇区号为 2 进制 6 位, 而开始的柱面号为 2 进制 10 位,因此扇区号所用字节的高两位要加在柱面号高两位。 ③:分区的系统类型 FAT32(0B),01 是 FAT12,04 为 FAT16,06 为 BIGDOS,07 为 NTFS, 其他参见分区类型表。 ④:分区结束磁头号 254、分区结束扇区号 63、分区结束柱面号 764 ⑤:首扇区的相对扇区号 63 ⑥:总扇区数 12289622 2、常见手工处理工具与 DOS 外部命令介绍 DEBUG:古老和最为常见的调试跟踪软件,始终捆绑在微软的 DOS/WIN9X 操作系统中。有 19 个子命令。 有编写执行汇编指令,直接读写绝对扇区和内存单元等功能,可以在最艰苦的条件下工作。DOS6.22 以下 的系统,DEBUG.EXE 在 DOS 目录下,WIN9X 系统中它在 WINDOWS\COMMAND 目录下,它 也出现在 WIN9X 所生成的应急盘中。DISKEDIT:常见 16 进制编辑软件,字符界面,可以以文件方式和 扇区方式读写逻辑内容,可以读写绝对扇区,可以方便的查找编辑分区表、FAT 表、ROOT 区等重要扇区。 这一点要比 DEBUG 更方便。但在一些重要扇区损坏的情况下,DISKEDIT 可能无法启动。DISKEDIT 软 件可以在著名的 Norton Utilities 软件包中找到。最新的 DISKEDIT 出现在 NU4 中。 NDD:常见的 FAT 文件结构磁盘修复工具,就是著名的 NORTON 磁盘医生,可以自动修复分区丢失等情 况,可以抢救软盘坏区中的数据,强制读出后搬移到其他空白扇区。希望大家不要再使用 NORTON FOR DOS7 或 8 的 NDD,这个版本由于不支持大分区、FAT32、长文件名等技术,会给你带来大量的麻烦。建 议大家使用 Norton Utilities4 或更高版本中的 NDD.EXE,这是纯 DOS 下的工具。在硬盘崩溃或异常的情 况下,他可能可以带给用户以希望。WIN9X 下的磁盘医生调用的并不是这个程序,而 是 NDD32.EXE. FDISK:FDISK 当然是个危险的命令,很多人非常恐惧,事实上,FDISK 命令的运行并不影响任何分区内 的硬盘数据,他对分区的设置操作,只改变主分区表的数据区。而特别是 FDISK 异常重要的隐含参数/MBR, 可以重建主分区表的代码区,清除主引导型病毒等。这是非常有用的操作。DOS6.22 以下的系统, FDISK.EXE 在 DOS 目录下,WIN9X 系统中它在 WINDOWS\COMMAND 目录下,它也出现在 WIN9X 所 生成的应急盘中。 FORMAT:在一些人眼中,FORMAT 是最可怕的命令,但他并不是对硬盘清零,特别值得注意的是,很 多文件恢复工具都建议你恢复前先 FORMAT 该分区起到保护的饿作用。DOS6.22 以下的系统, FORMAT.COM 在 DOS 目录下,WIN9X 系统中它在 WINDOWS\COMMAND 目录下,它也出现在 WIN9X 所生成的应急盘中。 HD-COPY:传统的软盘 COPY 工具,2.0 版本以后加入了强制读的功能,可以读出一些损坏扇区的内容。 SYS:SYS 命令是重建 BOOT 区的最简洁的手段,也可以杀除 BOOT 区病毒。DOS6.22 以下的系统, sys.COM 在 DOS 目录下,WIN9X 系统中它在 WINDOWS\COMMAND 目录下,它也出现在 WIN9X 所生 成的应急盘中。 令我非常遗憾的是,至今我没有发现比较出色的扇区级备份镜象工具,我曾写过一个 HD-MIRROR,但由 于错误较多,我提供下载的第二天就停止了发布,另外 fixc 的作者 noz 写过一个 clone.exe,但可惜只适合 相同的硬盘。我也曾以为 GHOST 可以做到这点,事实上,你目前还不能指望他为你备份一块深度破损的 硬盘。。如果有一个有效的能以按扇区机制(而不是文件机制)压缩备份一块硬盘将之做成一个镜象文件 的话,那么我们的恢复工作就拥有了更多的保证和余地。我们可以更大胆的做恢复的尝试。 3、 一些自动处理工具或软件包 首先介绍国内的一些免费修复工具
FⅨXMBR:何公道先生写的一个修复MBR的工具,适合处理逻辑分区丢失的情况,有一些可选参数,支 持FAT32、FAT16,不支持NTFS、LNUX等分区,支持84G以上硬盘。可修复CH发作后的扩展逻 VRVFⅨ:北信源公司的推出的修复硬盘共享工具,适合处理逻辑分区丢失的情况,处理的基本比较准确 支持FAT32、FAT16,不支持NTFS、LNUX等分区。也不支持8。4G以上硬盘。 FIXC 早出现的可以修复部分被CH破坏的C盘的工具,作者是NOZ 本也加入了修复分区 信息的功能,支持FAT32、FAT16,有限支持NTFS,不支持8。4G以上硬盘。目前的版本已经比较完善 FⅨ KHDPT: TBSOFT工作室的分区信息修复工具。支持FAT32、FAT16,不支持NTFS和LNUX,不支 持8.4G以上硬盘,是历史比较长的工具之一。 RE( ReapirEasy):本人早期写的分区表修复工具,支持FAT32、FAT16,有限支持NTFS,不支持84G 以上硬盘,和某些BOS不兼容。其整体水准低于前面列举的工具 国外一些系统维护的工具目前已经达到了非常强大的程度 Norton utilities:历史最悠久的系统维护工具。不仅可以数据恢复,还可以系统加速和修补内存错误。目 前最新的版本是NU45FOR9X、NU2 FOR NT等。 Tiramint:最为出色的灾难恢复工具之一,有NTFS、FAT32、FAT16、 NOVELL4种版本。生成急救软盘, 可以对深度破坏的磁盘进行交叉恢复。 4、常用的基本操作 ①读出主引导记录:这是系统级数据恢复可能涉及最多的程序之一。 例 DEBUG -a100:从此处开始汇编 126c0100 mov ax201:读操作一个扇区 126c0103 mov bx300:送入地址300 ,1:0面1扇 126c0109 mov dx80:80H为硬盘,头为0 126c:010Cint13 126C: 010E int 3 126c:010F -g=100:执行 AX=0050BX=030cX=0010X=0080P= FFEE BF=0000:0 DS=126C ES=126C SS=126C CS=126C P=010E NV UP EI PL NZ NA PO NC 这里用了O中断13,涉及的寄存器含义为 ah,操作方式,02H为读,03H为写 a送扇区数 bx送准备装入扇区的内存偏移地址 ∝x送从哪一道哪一扇区开始,我们一般依靠改换CX来读写不同逻辑盘某个逻辑扇区。dx,送盘符和头数 NT3是断点中断,使程序运行到此停止。 ②显示引导区内容:我们把扇区读到某个内存地址并不是目的。而是为了看到他的内容,在 DEBUG中 D命令可以方便的査看内存单元的内容。续前例,如果我们要看到主引导区的内容的话,既然装载到300 -d3001200就可以查看了,一个引导区的映象类似如下,可以直观的看到我们前面所提到的代码区和数 据区。是否正常请大家自行分析一下 126c:030033c08ED0BC007CFB5007501 F FC BE1B7C
FIXMBR:何公道先生写的一个修复 MBR 的工具,适合处理逻辑分区丢失的情况, 有一些可选参数,支 持 FAT32、FAT16,不支持 NTFS、LINUX 等分区,支持 8.4G 以上硬盘。可修复 CIH 发作后的扩展逻 辑分区。 VRVFIX:北信源公司的推出的修复硬盘共享工具,适合处理逻辑分区丢失的情况,处理的基本比较准确。 支持 FAT32、FAT16,不支持 NTFS、LINUX 等分区。也不支持 8。4G 以上硬盘。 FIXC:国内最早出现的可以修复部分被 CIH 破坏的 C 盘的工具,作者是 NOZ,新版本也加入了修复分区 信息的功能,支持 FAT32、FAT16,有限支持 NTFS,不支持 8。4G 以上硬盘。目前的版本已经比较完善。 FIXHDPT:TBSOFT 工作室的分区信息修复工具。支持 FAT32、FAT16,不支持 NTFS 和 LINUX,不支 持 8。4G 以上硬盘,是历史比较长的工具之一。 RE(ReapirEasy):本人早期写的分区表修复工具,支持 FAT32、FAT16,有限支持 NTFS,不支持 8.4G 以上硬盘,和某些 BIOS 不兼容。其整体水准低于前面列举的工具。 国外一些系统维护的工具目前已经达到了非常强大的程度。 Norton Utilities:历史最悠久的系统维护工具。不仅可以数据恢复,还可以系统加速和修补内存错误。目 前最新的版本是 NU 4.5FOR 9X、NU2 FOR NT 等。 Tiramint:最为出色的灾难恢复工具之一,有 NTFS、FAT32、FAT16、NOVELL4 种版本。生成急救软盘, 可以对深度破坏的磁盘进行交叉恢复。 4、常用的基本操作 ① 读出主引导记录:这是系统级数据恢复可能涉及最多的程序之一。 例: DEBUG -a100 ;从此处开始汇编 126C:0100 mov ax,201; 读操作一个扇区 126C:0103 mov bx,300; 送入地址 300 126C:0106 mov cx,1 ;0 面 1 扇 126C:0109 mov dx,80 ;80H 为硬盘,头为 0 126C:010C int 13 126C:010E int 3 126C:010F -g=100 ;执行 AX=0050 BX=0300 CX=0001 DX=0080 SP=FFEE BP=0000 SI=0000 DI=0000 DS=126C ES=126C SS=126C CS=126C IP=010E NV UP EI PL NZ NA PO NC 这里用了 I/O 中断 13,涉及的寄存器含义为 ah,操作方式,02H 为读,03H 为写 al,送扇区数 bx,送准备装入扇区的内存偏移地址 cx 送从哪一道哪一扇区开始,我们一般依靠改换 CX 来读写不同逻辑盘某个逻辑扇区。dx,送盘符和头数 INT 3 是断点中断,使程序运行到此停止。 ② 显示引导区内容:我们把扇区读到某个内存地址并不是目的。而是为了看到他的内容,在 DEBUG 中 D 命令可以方便的查看内存单元的内容。续前例,如果我们要看到主引导区的内容的话,既然装载到 300。 -d300 l200 就可以查看了,一个引导区的映象类似如下,可以直观的看到我们前面所提到的代码区和数 据区。是否正常请大家自行分析一下 126C:0300 33 C0 8E D0 BC 00 7C FB-50 07 50 1F FC BE 1B 7C
126C:0310BF1B065057B9E501-F3A4 CB BEBE07B1 P 126C0320 9751583C6-10E2F5CD1888148B 126C:0330EE83c61049741638-2074F6BE10074E It8.t.N 126C03403c0074FABB0700B40EcD10EBF2894625 JU 126c:03B0AA745A83EF057FDA85F67583BE2707 126c03c08A98915299034608-13560AE812005A RFV.Z 126c03D0D54F74E433c0CD13-EBB80000000000 Ot. 3 126C03E05633F65656525006-5351 V3 WRP SQ .V 126c03F05052B80044 PR. BVS.ZX. d 126C:04000A4075014280C702E2F7F85EC3EB74 49 @uB.….t 126C04106E76616C696420706172746974696F6E nvalid 126C0420207461626C650045-72726F72206C6F61 table error loa 797374656D004D69-7373696E6 126C0450 726174696E6720-73797374656D0000 ra system 126C04600000000000000000-00000000000000
3.....|.P.P....| 126C:0310 BF 1B 06 50 57 B9 E5 01-F3 A4 CB BE BE 07 B1 04 ...PW........... 126C:0320 38 2C 7C 09 75 15 83 C6-10 E2 F5 CD 18 8B 14 8B 8,|.u........... 126C:0330 EE 83 C6 10 49 74 16 38-2C 74 F6 BE 10 07 4E AC ....It.8,t....N. 126C:0340 3C 00 74 FA BB 07 00 B4-0E CD 10 EB F2 89 46 25 .}U 126C:03B0 AA 74 5A 83 EF 05 7F DA-85 F6 75 83 BE 27 07 EB .tZ.......u..''.. 126C:03C0 8A 98 91 52 99 03 46 08-13 56 0A E8 12 00 5A EB ...R..F..V....Z. 126C:03D0 D5 4F 74 E4 33 C0 CD 13-EB B8 00 00 00 00 00 00 .Ot.3........... 126C:03E0 56 33 F6 56 56 52 50 06-53 51 BE 10 00 56 8B F4 V3.VVRP.SQ...V.. 126C:03F0 50 52 B8 00 42 8A 56 24-CD 13 5A 58 8D 64 10 72 PR..B.V$..ZX.d.r 126C:0400 0A 40 75 01 42 80 C7 02-E2 F7 F8 5E C3 EB 74 49 .@u.B......^..tI 126C:0410 6E 76 61 6C 69 64 20 70-61 72 74 69 74 69 6F 6E nvalid partition 126C:0420 20 74 61 62 6C 65 00 45-72 72 6F 72 20 6C 6F 61 table.Error loa 126C:0430 64 69 6E 67 20 6F 70 65-72 61 74 69 6E 67 20 73 ding operating s 126C:0440 79 73 74 65 6D 00 4D 69-73 73 69 6E 67 20 6F 70 ystem.Missing op 126C:0450 65 72 61 74 69 6E 67 20-73 79 73 74 65 6D 00 00 erating system.. 126C:0460 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00
126C:04700000000000000000-00000000000000 126c04800000008BFC1E578B-F5CB0000000000 126C:04900000000000000000-00000000000000 126c:04A00000000000000000-00000000000000 126C04B00000000000000000-00000000000080 126c04c001000 B FE BF FO3F00-00007E86BB0000 ?.~ 126c:04D081FD BD 86-BB A9750000 126C:04E00000000000000000-00000000000000 126C04F00000000000000000-00000000000055 ③反汇编主引导区内容:判定MBR的代码区是否正常,对于数据区的基本情况,我们可以通过直观观 察得出,但对于存在引导型病毒,或者引导区出现异常代码的情况,我们可能需要分析MBR中代码区的 指令。这一般要对己经读入内存的引导区进行反汇编。 反汇编用指令U 续前例 u30015D:反汇编主引导扇区代码区内容 126c030033c0 XOR AX AX 126c03028ED0 MOV SS.AX 126c:04565 DB 65 ④写内存单元,在我们的前例中,主分区类型是0B是FAT32的,假定这个类型实际是NTFS的,我们 该如何修改呢?由于主分区类型的偏移是4c3H,我们可以用E命令写到内存单元中,从附表中查得NTFs 的类型为07。因此e4c37再比如说,假定我们想把无效的分区表清零,那么,我们应当用另一个命 令F,这个命令可以用填充一个内存地址范围。清零分区表的操作就是-f4be 0,以下两个操作也 比较常见 重置80标记,-e4be80 重置55AA标记,-f4ff4fe55aa 不要忘记了,此时仅仅是改动了内存中的数据,并未写到硬盘上。因此需要用int13中断把改写的结果, 写回硬盘。 续前例, -a100 126c0100 mov ax301:写操作一个扇区 100:执行 其实,我们相当于修改了刚才输入的读主引导扇区程序,使程序变为
00 ................ 126C:0470 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 126C:0480 00 00 00 8B FC 1E 57 8B-F5 CB 00 00 00 00 00 00 ......W......... 126C:0490 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 126C:04A0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 126C:04B0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 80 01 ................ 126C:04C0 01 00 0B FE BF FC 3F 00-00 00 7E 86 BB 00 00 00 ......?...~..... 126C:04D0 81 FD 0F FE FF FF BD 86-BB 00 E0 A9 75 00 00 00 ............u... 126C:04E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 126C:04F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA ..............U. ③ 反汇编主引导区内容:判定 MBR 的代码区是否正常,对于数据区的基本情况,我们可以通过直观观 察得出,但对于存在引导型病毒,或者引导区出现异常代码的情况,我们可能需要分析 MBR 中代码区的 指令。这一般要对已经读入内存的引导区进行反汇编。 反汇编用指令 U 续前例: -u300 l15D ;反汇编主引导扇区代码区内容 126C:0300 33C0 XOR AX,AX 126C:0302 8ED0 MOV SS,AX ………… 126C:045C 65 DB 65 126C:045D 6D DB 6D ④ 写内存单元,在我们的前例中,主分区类型是 0B 是 FAT32 的,假定这个类型实际是 NTFS 的,我们 该如何修改呢?由于主分区类型的偏移是 4C3H,我们可以用 E 命令写到内存单元中,从附表中查得 NTFS 的类型为 07。因此 -e4c3 7 再比如说,假定我们想把无效的分区表清零,那么,我们应当用另一个命 令 F,这个命令可以用填充一个内存地址范围。清零分区表的操作就是 -f4be 4ff 00,以下两个操作也 比较常见。 重置 80 标记,-e4be 80 重置 55AA 标记,-f4ff 4fe 55 aa 不要忘记了,此时仅仅是改动了内存中的数据,并未写到硬盘上。因此需要用 int 13 中断把改写的结果, 写回硬盘。 续前例, -a100 126C:0100 mov ax,301 ; 写操作一个扇区 -g=100 ;执行 其实,我们相当于修改了刚才输入的读主引导扇区程序,使程序变为
126C0100 mov ax,301 写操作一个扇区 126c0103 mov bx,300:从内存地址300 126C0106 mov cX,1 0面1扇 126c0109 mov dx80:80H为硬盘,头为0 126C010cint13 126C: 010E int 3 断点 ⑤绝对磁盘内容的读出与写入 类似操作在FAT32结构硬盘被C∏H破坏的修复中比较常见,我们后面将讲到恢复的基本思路就是用第二 FAT表覆盖第一FAT表。那么无疑要读出第二FAT表的内容,再回写到第一FAT表的位置上。一般的来 说,大量连续扇区的读出写入 DISKEDIT进行非常方便,如果用 DEBUG做则要写一段子程序,不过程序 的主要技巧就是利用int25绝对磁盘读中断读出的内容,而用int26绝对磁盘写做内容写入。 4、数据可恢复的前提 有人觉得这个题目说法比较奇特,但数据恢复,作为一个数据再现的过程,一定要解决两个问题,第 是从哪里恢复的问题,第二是怎么恢复的问题。解决了这两个问题,我们事实上就把握了数据恢复的全 部思想脉络。而这一部分就是从哪里恢复的问题, ①、有效而及时的备份中是数据恢复最可靠的来源,在许多人倡导备份到秒的今天,恐怕不会有人怀疑 这点。而有些备份机制则是系统内建的,比如两份FAT表 ②、数据的实际有效性的判定是关键,对我们来说,硬盘无法自举、文件找不到、文件打不开等现象, 其实并不与数据丢失画等号。因为此时往往数据只是从操作系统的角度是一种逻辑丢失,而从物理扇区意 义上,它仍然存在或部分存在。最明显的就是文件删除的例子,事实上,这只是把文件首字节,改为0E 而已。而此时文件体依然存在 ③、数据损坏过程的可逆性分析:对数据的改变无非两种,取代和变换,前者是不可逆的,而后者则是 可逆的。我们以杀毒为例,对于大多文件性病毒来说,那些以附加而非代换方式感染的文件型病毒,理想 的杀毒过程就是感染的逆过程。这种分析也常见与重要信息被隐藏搬移或者被加密的情况,但分析将比较 复杂 ④、数据本身是否是标准信息:有些信息实际是通用或局部通用的,你无须考虑如何从本机抢救。只要 相同或相近的系统版本就可以了,比如BOOT区、隐含扇区、 WINDOWS的DLL文件等等。典型的例子 如分区表的代码区,这是一段标准代码,事实上,它就放在你的FD|sK程序里面,你可以用 DEBUG把他 提取出来 ⑤、数据本身是否可以由其他信息统计再生:有些信息尽管丢失了,也没有备份。但它实际可以从其他 数据中间接求得。最典型的就是主分区表中的分区信息,即使你把他清零也不必害怕,因为你可以从你几 个分区中计算再生 ⑥、破坏的完成程度:事实上,FDsK、 FORMAT都不会彻底破坏数据,一般只有低格和扇区覆盖操作 才会彻底破坏数据。但有时,破坏过程或者误操作过程会因人工终止、死机等原因不能完成。最明显的就 是CH病毒的例子,由于CH是以1024字节为单位覆盖扇区,这当然是不可逆过程,于是我们最初都认 为,破坏是很难恢复的,除非人工终止。事实上,当病毒覆盖某些扇区时会与9X系统发生冲突,从而造 成死机,使数据得到了保护 硬盘数据恢复知识1 1、硬件或介质问题的情况 ①、硬盘坏:硬盘自检不到的情况一般是硬件故障,又可分为主版的硬盘控制器(包括DE口)故障 和硬盘本身的故障。如果问题在主板上,那么数据应当没有影响。如果出在硬盘上,也不是一定不能修 复。硬盘可能的故障又可能在控制电路、电机和磁头以及盘片。如果是控制电路的问题,一般修好它 就可以读出数据。但如果电机、磁头和盘片故障,即使修理也要返回原厂,数据恢复基本没有可操作性
126C:0100 mov ax,301 ; 写操作一个扇区 126C:0103 mov bx,300 ;从内存地址 300 126C:0106 mov cx,1 ;0 面 1 扇 126C:0109 mov dx,80 ;80H 为硬盘,头为 0 126C:010C int 13 126C:010E int 3 ;断点 ⑤ 绝对磁盘内容的读出与写入 类似操作在 FAT32 结构硬盘被 CIH 破坏的修复中比较常见,我们后面将讲到恢复的基本思路就是用第二 FAT 表覆盖第一 FAT 表。那么无疑要读出第二 FAT 表的内容,再回写到第一 FAT 表的位置上。一般的来 说,大量连续扇区的读出写入 DISKEDIT 进行非常方便,如果用 DEBUG 做则要写一段子程序,不过程序 的主要技巧就是利用 int 25 绝对磁盘读中断读出的内容,而用 int 26 绝对磁盘写做内容写入。 4、数据可恢复的前提 有人觉得这个题目说法比较奇特,但数据恢复,作为一个数据再现的过程,一定要解决两个问题,第 一是从哪里恢复的问题,第二是怎么恢复的问题。解决了这两个问题,我们事实上就把握了数据恢复的全 部思想脉络。而这一部分就是从哪里恢复的问题。 ①、 有效而及时的备份中是数据恢复最可靠的来源,在许多人倡导备份到秒的今天,恐怕不会有人怀疑 这点。而有些备份机制则是系统内建的,比如两份 FAT 表。 ②、 数据的实际有效性的判定是关键,对我们来说,硬盘无法自举、文件找不到、文件打不开等现象, 其实并不与数据丢失画等号。因为此时往往数据只是从操作系统的角度是一种逻辑丢失,而从物理扇区意 义上,它仍然存在或部分存在。最明显的就是文件删除的例子,事实上,这只是把文件首字节,改为 0E 而已。而此时文件体依然存在。 ③、 数据损坏过程的可逆性分析:对数据的改变无非两种,取代和变换,前者是不可逆的,而后者则是 可逆的。我们以杀毒为例,对于大多文件性病毒来说,那些以附加而非代换方式感染的文件型病毒,理想 的杀毒过程就是感染的逆过程。这种分析也常见与重要信息被隐藏搬移或者被加密的情况,但分析将比较 复杂。 ④、 数据本身是否是标准信息:有些信息实际是通用或局部通用的,你无须考虑如何从本机抢救。只要 相同或相近的系统版本就可以了,比如 BOOT 区、隐含扇区、WINDOWS 的 DLL 文件等等。典型的例子 如分区表的代码区,这是一段标准代码,事实上,它就放在你的 FDISK 程序里面,你可以用 DEBUG 把他 提取出来。 ⑤、 数据本身是否可以由其他信息统计再生:有些信息尽管丢失了,也没有备份。但它实际可以从其他 数据中间接求得。最典型的就是主分区表中的分区信息,即使你把他清零也不必害怕,因为你可以从你几 个分区中计算再生。 ⑥、 破坏的完成程度:事实上,FDISK、FORMAT 都不会彻底破坏数据,一般只有低格和扇区覆盖操作 才会彻底破坏数据。但有时,破坏过程或者误操作过程会因人工终止、死机等原因不能完成。最明显的就 是 CIH 病毒的例子,由于 CIH 是以 1024 字节为单位覆盖扇区,这当然是不可逆过程,于是我们最初都认 为,破坏是很难恢复的,除非人工终止。事实上,当病毒覆盖某些扇区时会与 9X 系统发生冲突,从而造 成死机,使数据得到了保护。 硬盘数据恢复知识 1 1、 硬件或介质问题的情况 ①、 硬盘坏:硬盘自检不到的情况一般是硬件故障,又可分为主版的 硬盘控制器(包括 IDE 口)故障 和硬盘本身的故障。如果问题在主板上 ,那么数据应当没有影响。如果出在硬盘上,也不是一定不能修 复。 硬盘可能的故障又可能在控制电路、电机和磁头以及盘片。如果是控 制电路的问题,一般修好它, 就可以读出数据。但如果电机、磁头和盘片故障,即使修理也要返回原厂,数据恢复基本没有可操作性
②、软盘坏:当软盘数据损坏时,可以有几种处理,一种是用NDD修复,他会强制读出你坏区中的 东西,MOVE到空白扇区中,这就意味着如果你的磁盘很满操作是没法进行的。你也可以用 HDCOPY2.0 以上版本READ软盘,他也会进行强读,使读入缓冲区的数据是完好的,你再写入一张好磁盘就可以 了。当然这些方式,要看盘坏的程度。如果0磁道坏,数据也并非无法抢救,早先可以通过扇区读的方式, 把后面的数据读出,不过一般来说,你依然可以 HDCOPY来实验。 2、系统问题的情况 ①、在硬盘崩溃的情况下,我们经常要和一些提示信息打交道。我们要了解他典型提示信息的含义, 注意这些原因仅仅分析逻辑损坏而不是硬盘物理坏道的情况。 提示信息 可能原因 参考处理 nvalid Partition Table 分区信息中1BE、1CE、1DE处不符合只有一个80而其他两处为0用工具设定,操作在前面已经讲了 Error Loading Operating System 主引导程序读BOOT区5次没成功 重建BOOT区 Missing Operating System DOS 引导区的55AA标记丢失 用工具设定,把前面读写主引导区程序的DX=80改为180即可 Non-System Disk or Disk Error BOOT区中的系统文件名与根目录中的前两个文件不同 SYs命令重新传递系 Disk Boot Failure 读系统文件错误SYs命令重新传递系统 Invalid Driver Specification 如果试图切换到一个确实存在的逻辑分区出现以下信息,说明主分区表的分区记录被破坏了 根据各分区情况重建分区表,或者用自动修复工具修复。注意分区丢失是最常见的故障之一,此时不要 紧张,一般的说此时数据并没有问题,如果你不了解处理的方法。你可以选择我前面介绍的自动修复 分区工具进行处理,他们大多只改写主分区表的数据区,不会影响你的其他数据。特别提醒大家,这 些工具有的不支持84G硬盘,有的与BOS对硬盘的识别有关系。如果你在一台机器上不行,可以换 台BOs不同的机器实验一下 Bad or missing command interpreter 这是说找不到 COMMAND. com,或者 COMMAND文件坏了 如果你cOPY过去 COMMAND文件还是如此,一般来说是感染了某种病毒。 Invalid media type reading drive X Abort, Retry, Fail? 该盘没有高级格式化,或BOOT区中MO参数表被破坏。 这里情况较多,手工处理比较复杂,特别指出,此时 DISKEDIT可能无法运行,建议用工具修复 Incorrect Dos Version 可能是文件版本不统一,对9X来说,有95950s2,9898。em2等版本,重新SYS时,不要弄错了 用正确版本的启动盘重新SYs系统 另外说明一下,对于比较老的机器还有1071和 not found rom basic、 ROM BASIC OK等提示, 在目前机器中以消失。另外,当代码区完全被破坏的情况下,系统关于无系统的提示是来自B○S的 这条提示与B|os的种类有关。另外, FDISK/MBR对代码区的重建是我们经常采用的。再介绍一种比较 极端的情况,就是硬盘自检正常,而用软盘和硬盘都无法正常启动的情况,这可能是,病毒或恶意程
②、 软盘坏:当软盘数据损坏时,可以有几种处理,一种是用 NDD 修 复,他会强制读出你坏区中的 东西,MOVE 到空白扇区中,这就意味着 如果你的磁盘很满操作是没法进行的。你也可以用 HDCOPY2.0 以上版本 READ 软盘,他也会进行强读,使读入缓冲区的数据是完好的,你再写 入一张好磁盘就可以 了。当然这些方式,要看盘坏的程度。如果 0 磁道坏,数据也并非无法抢救,早先可以通过扇区读的方式, 把后面的数 据读出,不过一般来说,你依然可以 HDCOPY 来实验。 2、系统问题的情况 ①、 在硬盘崩溃的情况下,我们经常要和一些提示信息打交道。我们 要了解他典型提示信息的含义, 注意这些原因仅仅分析逻辑损坏而不是 硬盘物理坏道的情况。 提示信息 可能原因 参考处理 Invalid Partition Table 分区信息中 1BE、1CE、1DE 处不符合只有一个 80 而其他两处为 0 用工具设定,操作在前面已经讲了。 Error Loading Operating System 主引导程序读 BOOT 区 5 次没成功。 重建 BOOT 区 Missing Operating System DOS 引导区的 55AA 标记丢失 用工具设定,把前面读写主引导区程序的 DX=80 改为 180 即可 Non-System Disk or Disk Error BOOT 区中的系统文件名与根目录中的前两个文件不同 SYS 命令重新传递系统, Disk Boot Failure 读系统文件错误 SYS 命令重新传递系统, Invalid Driver Specifcationg 如果试图切换到一个确实存在的逻辑分区出现以下信 息,说明主分区表的分区记录被破坏了。 根据各分区情况重建分区表,或者用自动修复工具修 复。注意分区丢失是最常见的故障之一,此时不要 紧 张,一般的说此时数据并没有问题,如果你不了解处理 的方法。你可以选择我前面介绍的自动修复 分区工具进 行处理,他们大多只改写主分区表的数据区,不会影响 你的其他数据。特别提醒大家,这 些工具有的不支持 8.4G 硬盘,有的与 BIOS 对硬盘的识别有关系。如果你 在一台机器上不行,可以换 台 BIOS 不同的机器实验一下。 Bad or missing command interpreter 这是说找不到 COMMAND.com,或者 COMMAND 文件坏了。 如果你 COPY 过去 COMMAND 文件还是如此,一般来说是 感染了某种病毒。 Invalid media type reading drive X ,Abort,Retry,Fail? 该盘没有高级格式化,或 BOOT 区中 I/O 参数表被破坏。 这里情况较多,手工处理比较复杂,特别指出,此时 DISKEDIT 可能无法运行,建议用工具修复。 Incorrect DOS Version 可能是文件版本不统一,对 9X 来说,有 95 95osr/2,98,98 oem/2 等版本,重新 SYS 时,不要弄错 了。 用正确版本的启动盘重新 SYS 系统 另外说明一下,对于比较老的机器还有 1071 和 not found rom basic、ROM BASIC OK 等提示, 在目前机器中以消失。另外,当 代码区完全被破坏的情况下,系统关于无系统的提示是来自 BIOS 的, 这条提示与 BIOS 的种类有关。另外,FDISK/MBR 对代码区的 重建是我们经常采用的。再介绍一种比较 极端的情况,就是硬盘 自检正常,而用软盘和硬盘都无法正常启动的情况,这可能是, 病毒或恶意程
序利用,DOs3以上版本启动中都要检索分区表这一特点,把分区表置为死循环。造成启动中死机。网 上曾经流传过Dos622k修改方案,其实是修改西文 MS-DOS622的osYs,把C20306E8 0A00077203替换为:C20390E80A00728090就可以启动被类似情况锁住的硬 盘 ②、9无法正常进入或工作:以下仅仅是对可能的软故障分析,没有考虑硬件故障进入图形界面前 死机情况比较复杂,可能与加载的某些驱动有关可以在 START MS WINDOWS时,用F8激活菜单 设置为 step by step,看是哪项使系统死机。而后从 CONFIG或者 SYSTEM。IN中删除进入图形界 面后死机一般这与开机加载的程序有关进入安全模式(此时自动运行的程序将不能加载),对注册表中 的 HKEY LOCAL MACHINEISoftware Microsoftlwindows \CurrentVersion \ Run*中的键值和启动组中 加载的程序进行分析。必要的予以删除。显示正 XPLORE.EXE错误,不能进行任何操作 可能有某个系统的动态连接库损坏覆盖安装wN9X,或从其他机器上COPY损坏的连接库。(确定哪 个库损坏一般比较困难) 频繁出现出错各种信息 般是虚拟内存不足造成的看C盘是否剩余空间过少,或者打开的应用程序和窗口太多。 2、全盘崩溃和分区丢失 首先重建MBR代码区,再根据情况修正分区表。修正分区表的基本思路是查找以55AA为结束的扇区, 再根据扇区结构和后面是否有FAT等情况判定是否为分区表,最后计算填回,主分区表,由于需要计 算,过程比较烦琐,就不仔细介绍了,希望大家用前面介绍的工具,比如NDD处理。如果文件仍然无 法读取,要考虑用 TIRAMINT等工具进行修复。如果在FAT表彻底崩溃的情况下,恢复某个指定文件, 可以用 DISKEDIT或 DEBUG查找已知信息。比如文件为文本,文件中包含“软件狗”,那么我我们 就要把他们转换为内码C8EDBC 9B7进行查找 3、文件丢失、误格式化的情况 般的来说,文件删除仅仅是把文件的首字节,改为E5H,而并不破坏本身,因此可以恢复。但由于对 不连续文件要恢复文件链,由于手工交叉恢复对一般计算机用户来说并不容易,在这篇缩略版中就不 讲了,建议用工具处理,如果已经安装了 Norton utilities,可以用他来查找。另外, RECOVERNT等 工具,都是恢复的利器。特别注意的是,千万不要在发现文件丢失后,在本机安装什么恢复工具,你 可能恰恰把文件覆盖掉了。特别是你的文件在C盘的情况下,如果你发现主要文件被你失手清掉了 (比如你按SHFT删除),你应该马上直接关闭电源,用软盘启动进行恢复或把硬盘串接到其他有恢复 工具的机器处理。误格式化的情况可以用等工具处理。 4、文件损坏的情 般的说,恢复文件损坏需要清楚的了解文件的结构,并不是很容易的事情,而这方面的工具也不多。 不过一般的说,文件如果字节正常,不能正常打开往往是文件头损坏。 就文件恢复举几个简单例子 类型特征处理 ZP、TGZ等压缩包无法解压 Z|P文件损坏的情况下可以用一个名为zPFⅨ的工具处理。不过如果你的文件是从FTP站点上下载的 那么有可能是你没有定义下载模式为B|N 自解压文件无法解压 可能是可执行文件头损坏,可以用对应压缩工具按 缩文件解压。 DBF文件死机后无法打开 典型的文件头中的记录数与实际不匹配了,把文件头中的记录数向下调整,遗憾的是公式我找不到了 5、硬盘被加密或变换: 此时千万不要 FDISK/MBR,SYS等处理,否则可能数据再也无法找回,一定要反解加密算法,或找到 被移走的重要扇区。对于那些加密硬盘数据的病毒,清除时一定要选择能恢复加密数据的可靠杀毒软
序利用,DOS3 以上版本启动中都要检索分区表这一 特点,把分区表置为死循环。造成启动中死机。网 上曾经流传过 DOS6.22k 修改方案,其实是修改西文 MS-DOS6.22 的 IO.SYS,把 C2 03 06 E8 0A 00 07 72 03 替换为:C2 03 90 E8 0A 00 72 80 90 就可以启动被类似情况锁住的硬 盘。 ②、 9X 无法正常进入或工作:以下仅仅是对可能的软故障分析 ,没有考虑硬件故障.进入图形界面前 死机情况比较复杂,可能与加载的某些驱动有关 可以在 START MS WINDOWS 时,用 F8 激活菜单, 设置为 step by step ,看是哪项使系统死机。而后从 CONFIG 或者 SYSTEM。INI 中删除进入图形界 面后死机一般这与开机加载的程序有关进入安全模式(此时自动 运行的程序将不能加载),对注册表中 的 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run* 中的键值和启动组中 加载的程序进行分析。必要的予以删除。显示 IEXPLORE.EXE 错误,不能进行任何操作 可能有某个系统的动态连接库损坏覆盖安装 WIN9X,或从 其他机器上 COPY 损坏的连接库。(确定哪 个库损坏一般 比较困难) 频繁出现出错各种信息 一般是虚拟内存不足造成的看 C 盘是否剩余空间过少, 或者打开的应用程序和窗口太多。 2、 全盘崩溃和分区丢失 首先重建 MBR 代码区,再根据情况修正分区表。修正分区 表的基本思路是查找以 55AA 为结束的扇区, 再根据扇区结构 和后面是否有 FAT 等情况判定是否为分区表,最后计算填回, 主分区表,由于需要计 算,过程比较烦琐,就不仔细介绍了 ,希望大家用前面介绍的工具,比如 NDD 处理。如果文件仍然 无 法读取,要考虑用 TIRAMINT 等工具进行修复。如果在 FAT 表彻底崩溃的情况下,恢复某个指定文件, 可以用 DISKEDIT 或 DEBUG 查找已知信息。比如文件为文本,文件中包含“软件 狗”,那么我我们 就要把他们转换为内码 C8 ED BC FE B9 B7 进行查找。 3、 文件丢失、误格式化的情况 一般的来说,文件删除仅仅是把文件的首字节,改为 E5H,而并 不破坏本身,因此可以恢复。但由于对 不连续文件要恢复文件 链,由于手工交叉恢复对一般计算机用户来说并不容易,在这 篇缩略版中就不 讲了,建议用工具处理,如果已经安装了 Norton Utilities,可以用他来查找。另外,RECOVERNT 等 工具,都是 恢复的利器。特别注意的是,千万不要在发现文件丢失后,在 本机安装什么恢复工具,你 可能恰恰把文件覆盖掉了。特别是 你的文件在 C 盘的情况下,如果你发现主要文件被你失手清掉了 , (比如你按 SHIFT 删除),你应该马上直接关闭电源,用软盘 启动进行恢复或把硬盘串接到其他有恢复 工具的机器处理。误格 式化的情况可以用等工具处理。 4、 文件损坏的情况 一般的说,恢复文件损坏需要清楚的了解文件的结构,并不是很 容易的事情,而这方面的工具也不多。 不过一般的说,文件如果 字节正常,不能正常打开往往是文件头损坏。 就文件恢复举几个 简单例子。 类型 特征 处理 ZIP、TGZ 等压缩包无法解压 ZIP 文件损坏的情况下可以用一个名为 ZIPFIX 的工具 处理。不过如果你的文件是从 FTP 站点上下载的, 那么 有可能是你没有定义下载模式为 BIN。 自解压文件无法解压 可能是可执行文件头损坏,可以用对应压缩工具按一般 压缩文件解压。 DBF 文件死机后无法打开 典型的文件头中的记录数与实际不匹配了,把文件头中 的记录数向下调整,遗憾的是公式我找不到了。 5、 硬盘被加密或变换: 此时千万不要 FDISK/MBR,SYS 等处理,否则可 能数据再也无法找回,一定要反解加密算法,或找到 被移走的重要扇区。 对于那些加密硬盘数据的病毒,清除时一定要选择能恢复加密数据的可 靠杀毒软
件。 6、文件加密后密码遗忘: 对于很多字处理软件的文件加密和ZP等压缩包的加密,你是不能靠加密逆过程来完成的,因为那从理 论上是异常困难的。目前有一些相关的软件,他们的思想一般都是用一个大字典集中的数据循环用相 同算法加密后与密码的密文匹配,直到一致时则说明找到了密码。你可以去寻找这些软件,当然,有些 软件是有后门的,比如DOs下的WPs,ct+ qiubojun就是通用密码。 Undiskp的作者冯志宏是解 文件密码的个中高手,大家不妨去他的主页看看 7、系统用户密码遗忘的处理: 最简单的方法就是用软盘启动(NT的你也可以把盘挂接在其他NT上),找到支持该文件系统结构的软 件(比如针对NT的 NTFSDOS),利用他把密码文件清掉、或者是cOPY出密码档案,用破解软件 套字典来处理。前者时间短但所有用户信息丢失,后者时间长,但保全了所有用户信息。对UNⅨ系统 我建议你一定先做一张应急盘 硬盘数据恢复教程 前言 此文章从 google搜索经鄙人整理而来,并非本人的造诣至此,请勿联系笔者 硬盘数据恢复很大程度依靠运气,无必胜把握,并且不与投入时间成正比,不要寄予太大的希望。 请勿轻易拿自己硬盘做实验 建议数据恢复前先用硬盘保护卡对拷到其他硬盘上做一个备份,然后修理备份。(用 ghost不行) ●硬盘数据恢复,一概论 初买来一块硬盘,我们是没有办法使用的,你需要将它分区、格式化,然后再安装上操作系统才可以使 用。一个完整硬盘的数据应该包括五部分:MBR,DBR,FAT,DR区和DATA区。其中只有主引导扇区 是唯一的,其它的随你的分区数的增加而增加。 主引导扇区 主引导扇区位于整个硬盘的0磁道0柱面1扇区,包括硬盘主引导记录MBR( Main boot record)和 分区表DPT( Disk Partition table)。其中主引导记录的作用就是检查分区表是否正确以及确定哪个分区 为引导分区,并在程序结束时把该分区的启动程序(也就是操作系统引导扇区)调入内存加以执行。至于 分区表,很多人都知道,以80H或00H为开始标志,以55AAH为结束标志,共64字节,位于本扇区的 最末端。值得一提的是,MBR是由分区程序(例如DOs的 Fdisk. exe)产生的,不同的操作系统可能这 个扇区是不尽相同。如果你有这个意向也可以自己去编写一个,只要它能完成前述的任务即可,这也是为 什么能实现多系统启动的原因(说句题外话:正因为这个主引导记录容易编写,所以才出现了很多的引导区 病毒)。 操作系统引导扇区 oBR( OS Boot Record)即操作系统引导扇区,通常位于硬盘的0磁道1柱面1扇区(这是对于DoS 来说的,对于那些以多重引导方式启动的系统则位于相应的主分区展分区的第一个扇区),是操作系统 可直接访问的第一个扇区,它也包括一个引导程序和一个被称为BPB( BIOS Parameter block)的本分区 参数记录表。其实每个逻辑分区都有一个OBR,其参数视分区的大小、操作系统的类别而有所不同。引导 程序的主要任务是判断本分区根目录前两个文件是否为操作系统的引导文件(例如 MSDOS或者起源于 MSDOS的Wn9xMe的oSYs和 MSDOS. SYS)。如是,就把第一个文件读入内存,并把控制权交予 该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小 FAT个数、分配单元( Allocation unit,以前也称之为簇)的大小等重要参数。OBR由高级格式化程序产 生(例如DOs的 Format co)。 文件分配表 FAT(F|eA| ocation Table)即文件分配表,是 DOSMin9x系统的文件寻址系统,为了数据安全起见
件。 6、 文件加密后密码遗忘: 对于很多字处理软件的文件加密和 ZIP 等压 缩包的加密,你是不能靠加密逆过程来完成的,因为那从理 论上是异常 困难的。目前有一些相关的软件,他们的思想一般都是用一个大字典集 中的数据循环用相 同算法加密后与密码的密文匹配,直到一致时则说明 找到了密码。你可以去寻找这些软件,当然,有些 软件是有后门的,比 如 DOS 下的 WPS,Ctrl+qiubojun 就是通用密码。Undiskp 的作者冯志宏 是解 文件密码的个中高手,大家不妨去他的主页看看。 7、 系统用户密码遗忘的处理: 最简单的方法就是用软盘启动(NT 的你也 可以把盘挂接在其他 NT 上),找到支持该文件系统结构的软 件(比如针对 NT 的 NTFSDOS),利用他把密码文件清掉、或者是 COPY 出密码档案,用破解 软件 套字典来处理。前者时间短但所有用户信息丢失,后者时间长,但保 全了所有用户信息。对 UNIX 系统, 我建议你一定先做一张应急盘 硬盘数据恢复教程 前言: 此文章从 google 搜索经鄙人整理而来,并非本人的造诣至此,请勿联系笔者。 硬盘数据恢复很大程度依靠运气,无必胜把握,并且不与投入时间成正比,不要寄予太大的希望。 请勿轻易拿自己硬盘做实验。 建议数据恢复前先用硬盘保护卡对拷到其他硬盘上做一个备份,然后修理备份。(用 ghost 不行) ●硬盘数据恢复,一概论 初买来一块硬盘,我们是没有办法使用的,你需要将它分区、格式化,然后再安装上操作系统才可以使 用。一个完整硬盘的数据应该包括五部分:MBR,DBR,FAT,DIR 区和 DATA 区。其中只有主引导扇区 是唯一的,其它的随你的分区数的增加而增加。 主引导扇区 主引导扇区位于整个硬盘的 0 磁道 0 柱面 1 扇区,包括硬盘主引导记录 MBR(Main Boot Record)和 分区表 DPT(Disk Partition Table)。其中主引导记录的作用就是检查分区表是否正确以及确定哪个分区 为引导分区,并在程序结束时把该分区的启动程序(也就是操作系统引导扇区)调入内存加以执行。至于 分区表,很多人都知道,以 80H 或 00H 为开始标志,以 55AAH 为结束标志,共 64 字节,位于本扇区的 最末端。值得一提的是,MBR 是由分区程序(例如 DOS 的 Fdisk.exe)产生的,不同的操作系统可能这 个扇区是不尽相同。如果你有这个意向也可以自己去编写一个,只要它能完成前述的任务即可,这也是为 什么能实现多系统启动的原因(说句题外话:正因为这个主引导记录容易编写,所以才出现了很多的引导区 病毒)。 操作系统引导扇区 OBR(OS Boot Record)即操作系统引导扇区,通常位于硬盘的 0 磁道 1 柱面 1 扇区(这是对于 DOS 来说的,对于那些以多重引导方式启动的系统则位于相应的主分区/扩展分区的第一个扇区),是操作系统 可直接访问的第一个扇区,它也包括一个引导程序和一个被称为 BPB(BIOS Parameter Block)的本分区 参数记录表。其实每个逻辑分区都有一个 OBR,其参数视分区的大小、操作系统的类别而有所不同。引导 程序的主要任务是判断本分区根目录前两个文件是否为操作系统的引导文件(例如 MSDOS 或者起源于 MSDOS 的 Win9x/Me 的 IO.SYS 和 MSDOS.SYS)。如是,就把第一个文件读入内存,并把控制权交予 该文件。BPB 参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、 FAT 个数、分配单元(Allocation Unit,以前也称之为簇)的大小等重要参数。OBR 由高级格式化程序产 生(例如 DOS 的 Format.com)。 文件分配表 FAT(File Allocation Table)即文件分配表,是 DOS/Win9x 系统的文件寻址系统,为了数据安全起见
FAT一般做两个,第二FAT为第一FAT的备份,FAT区紧接在OBR之后,其大小由本分区的大小及文件 分配单元的大小决定。关于FAT的格式历来有很多选择, Microsoft的DOs及 Windows采用我们所熟悉 的FAT12、FAT16和FAT32格式,但除此以外并非没有其它格式的FAT,像 Windows nt、OS/2 UNⅨ Linux、Nove等都有自己的文件管理方式 目录区 DR是 Directory即根目录区的简写,DR紧接在第二FAT表之后只有FAT还不能定位文件在磁盘中 的位置,FAT还必须和DR配合才能准确定位文件的位置。DR记录着每个文件(目录)的起始单元(这 是最重要的)、文件的属性等。定位文件位置时,操作系统根据DR中的起始单元,结合FAT表就可以知 道文件在磁盘的具体位置及大小了。在DR区之后,才是真正意义上的数据存储区,即DATA区 数据区 DATA虽然占据了硬盘的绝大部分空间,但没有了前面的各部分,它对于我们来说,也只能是一些枯燥 的二进制代码,没有任何意义。在这里有一点要说明的是,我们通常所说的格式化程序(指高级格式化, 例如Dos下的 Format程序),并没有把DATA区的数据清除,只是重写了FAT表而己,至于分区硬盘 也只是修改了MBR和OBR,绝大部分的DATA区的数据并没有被改变,这也是许多硬盘数据能够得以修 复的原因。但即便如此,如 MBR/OBR/FAT/DIR之一被破坏的话,也足够咱们那些所谓的DY老鸟们忙乎 半天了……需要提醒大家的是,如果你经常整理磁盘,那么你的数据区的数据可能是连续的,这样即使 MBRFAT/DIR全部坏了,我们也可以使用磁盘编辑软件(比如DOs下的 DiskEdit),只要找到一个文件 的起始保存位置,那么这个文件就有可能被恢复(当然了,这需要一个前提,那就是你没有覆盖这个文 件……) 硬盘分区方式 我们平时说到的分区概念,不外乎三种主分区、扩展分区和逻辑分区。 主分区是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。在主分区中,不 允许再建立其它逻辑磁盘。 扩展分区的概念则比较复杂,也是造成分区和逻辑磁盘混淆的主要原因。由于硬盘仅仅为分区表保留了 64个字节的存储空间,而每个分区的参数占据16个字节,故主引导扇区中总计可以存储4个分区的数据。 操作系统只允许存储4个分区的数据,如果说逻辑磁盘就是分区,则系统最多只允许4个逻辑磁盘。对于 具体的应用,4个逻辑磁盘往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,系统引入 了扩展分区的概念。 所谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针 结构将形成一个单向链表。这样在主引导扇区中除了主分区外,仅需要存储一个被称为扩展分区的分区 据,通过这个扩展分区的数据可以找到下一个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此起 始位置类推可以找到所有的分区。无论系统中建立多少个逻辑磁盘,在主引导扇区中通过一个扩展分区的 参数就可以逐个找到每一个逻辑磁盘。 需要特别注意的是,由于主分区之后的各个分区是通过一种单向链表的结构来实现链接的,因此,若单 向链表发生问题,将导致逻辑磁盘的丢失 数据存储原理 既然要进行数据的恢复,当然数据的存储原理我们不能不提,在这之中,我们还要介绍一下数据的删除 和硬盘的格式化相关问题 文件的读 操作系统从目录区中读取文件信息(包括文件名、后缀名、文件大小、修改日期和文件在数据区保存的 第一个簇的簇号),我们这里假设第一个簇号是0023 操作系统从0023簇读取相应的数据,然后再找到FAT的0023单元,如果内容是文件结束标志(FF 则表示文件结束,否则内容保存数据的下一个簇的簇号,这样重复下去直到遇到文件结束标志 文件的写入
FAT 一般做两个,第二 FAT 为第一 FAT 的备份, FAT 区紧接在 OBR 之后,其大小由本分区的大小及文件 分配单元的大小决定。关于 FAT 的格式历来有很多选择,Microsoft 的 DOS 及 Windows 采用我们所熟悉 的 FAT12、FAT16 和 FAT32 格式,但除此以外并非没有其它格式的 FAT,像 Windows NT、OS/2、 UNIX/Linux、Novell 等都有自己的文件管理方式。 目录区 DIR 是 Directory 即根目录区的简写,DIR 紧接在第二 FAT 表之后,只有 FAT 还不能定位文件在磁盘中 的位置,FAT 还必须和 DIR 配合才能准确定位文件的位置。DIR 记录着每个文件(目录)的起始单元(这 是最重要的)、文件的属性等。定位文件位置时,操作系统根据 DIR 中的起始单元,结合 FAT 表就可以知 道文件在磁盘的具体位置及大小了。在 DIR 区之后,才是真正意义上的数据存储区,即 DATA 区。 数据区 DATA 虽然占据了硬盘的绝大部分空间,但没有了前面的各部分,它对于我们来说,也只能是一些枯燥 的二进制代码,没有任何意义。在这里有一点要说明的是,我们通常所说的格式化程序(指高级格式化, 例如 DOS 下的 Format 程序),并没有把 DATA 区的数据清除,只是重写了 FAT 表而已,至于分区硬盘, 也只是修改了 MBR 和 OBR,绝大部分的 DATA 区的数据并没有被改变,这也是许多硬盘数据能够得以修 复的原因。但即便如此,如 MBR/OBR/FAT/DIR 之一被破坏的话,也足够咱们那些所谓的 DIY 老鸟们忙乎 半天了……需要提醒大家的是,如果你经常整理磁盘,那么你的数据区的数据可能是连续的,这样即使 MBR/FAT/DIR 全部坏了,我们也可以使用磁盘编辑软件(比如 DOS 下的 DiskEdit),只要找到一个文件 的起始保存位置,那么这个文件就有可能被恢复(当然了,这需要一个前提,那就是你没有覆盖这个文 件……)。 硬盘分区方式 我们平时说到的分区概念,不外乎三种:主分区、扩展分区和逻辑分区。 主分区是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑 C 磁盘。在主分区中,不 允许再建立其它逻辑磁盘。 扩展分区的概念则比较复杂,也是造成分区和逻辑磁盘混淆的主要原因。由于硬盘仅仅为分区表保留了 64 个字节的存储空间,而每个分区的参数占据 16 个字节,故主引导扇区中总计可以存储 4 个分区的数据。 操作系统只允许存储 4 个分区的数据,如果说逻辑磁盘就是分区,则系统最多只允许 4 个逻辑磁盘。对于 具体的应用,4 个逻辑磁盘往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,系统引入 了扩展分区的概念。 所谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针 结构将形成一个单向链表。这样在主引导扇区中除了主分区外,仅需要存储一个被称为扩展分区的分区数 据,通过这个扩展分区的数据可以找到下一个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此起 始位置类推可以找到所有的分区。无论系统中建立多少个逻辑磁盘,在主引导扇区中通过一个扩展分区的 参数就可以逐个找到每一个逻辑磁盘。 需要特别注意的是,由于主分区之后的各个分区是通过一种单向链表的结构来实现链接的,因此,若单 向链表发生问题,将导致逻辑磁盘的丢失。 数据存储原理 既然要进行数据的恢复,当然数据的存储原理我们不能不提,在这之中,我们还要介绍一下数据的删除 和硬盘的格式化相关问题…… 文件的读取 操作系统从目录区中读取文件信息(包括文件名、后缀名、文件大小、修改日期和文件在数据区保存的 第一个簇的簇号),我们这里假设第一个簇号是 0023。 操作系统从 0023 簇读取相应的数据,然后再找到 FAT 的 0023 单元,如果内容是文件结束标志(FF), 则表示文件结束,否则内容保存数据的下一个簇的簇号,这样重复下去直到遇到文件结束标志。 文件的写入