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 <t.-F% 126C0350968A4604B4063C0E7411B40B3c0c74 126C03603AC4752B40c64625-067524BBAA5550 u+@F%.uS UP. 126c:037041CD1358721681FB-55AA7510F6C10174 A.Xr. Uu.t 126C:03800B8AE0885624C706-A106EB1E886604 126c03900A00B801028BDC33-c983FF057F038B 4E 3.N 126c03A025034E02CD137229-BE4607813EFE7D 55%N.r).F.>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 <.t...........F% 126C:0350 96 8A 46 04 B4 06 3C 0E-74 11 B4 0B 3C 0C 74 05 ..F...<.t...<.t. 126C:0360 3A C4 75 2B 40 C6 46 25-06 75 24 BB AA 55 50 B4 :.u+@.F%.u$..UP. 126C:0370 41 CD 13 58 72 16 81 FB-55 AA 75 10 F6 C1 01 74 A..Xr...U.u....t 126C:0380 0B 8A E0 88 56 24 C7 06-A1 06 EB 1E 88 66 04 BF ....V$.......f.. 126C:0390 0A 00 B8 01 02 8B DC 33-C9 83 FF 05 7F 03 8B 4E .......3.......N 126C:03A0 25 03 4E 02 CD 13 72 29-BE 46 07 81 3E FE 7D 55 %.N...r).F..>.}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 ;执行 其实,我们相当于修改了刚才输入的读主引导扇区程序,使程序变为