深入了解硬盘分区表和逻辑锁

时间:2011-08-29 09:45来源:U盘数据恢复 作者:www.jdcok.com
第1页:大补血 扇区编号的基本知识先了解
        相信听说过硬盘MBR、硬盘分区表、DBR的朋友一定都不少。可是,您清楚他们分别起什么作用吗?他们的具体位置又在哪里呢?硬盘上的MBR只有一份吗?什么是硬盘逻辑锁?如何制造和破解他呢??本文转载自家缘网,文中内容不代表本站观点,仅供参考。

一、必备基础知识:
● 有关扇区编号的基本知识:
介绍一下有关硬盘扇区编号规则的3个易混淆的术语“物理扇区编号“、“绝对扇区编号“和“逻辑扇区编号“。
    我们都知道硬盘扇区的定位有两种办法:
    1. 直接按柱面、磁头、扇区3者的组合来定位(按这种编号方式得到的扇区编号称为物理扇区编号);
    2. 按扇区编号来定位(又分“绝对扇区编号“和“逻辑扇区编号“两种)。
    这两种定位办法的换算关系如下图:(设图中所示硬盘每道扇区数均为63)

     如图所示,由于现在大多数硬盘采用的是一种“垂直分区结构“,故左图一磁头数为2、盘片数为1的硬盘,图中0磁头所对扇区的表示方法就有2种,即:0柱面 0磁头1扇区=绝对0扇区,而1磁头所对扇区的表示方法也有2种,即:1柱面0磁头1扇区=绝对63扇区。假如是如右图所示磁头数为4、盘片数为2的硬盘,那么则顺着垂直于盘片的箭头线方向进行如图的绝对扇区的编号。
    上面,我们说了物理扇区、绝对扇区的编号方式,而逻辑扇区编号由于是操作系统采用的扇区编号方式,而操作系统只能读取分区内部的数据内容,故逻辑扇区是从各分区内的第一个扇区开始编号,如我们下文对mbr的说明能够知道:mbr这个扇区所在硬盘磁道是不属于分区范围内的,紧接着他后面的才是分区的内容,因此一般来说绝对63扇区= c:分区逻辑1扇区。
    好,让我们列个表总结一下3种编号方式的不同:

 第2页:硬盘MBR及硬盘分区表介绍


● 有关MBR、分区表、DBR的基本知识:
☆ 硬盘MBR(硬盘主引导记录)及硬盘分区表介绍
    硬盘MBR就是我们经常说的“硬盘主引导记录”,简单地说,他是由FDISK等磁盘分区命令写在硬盘
    绝对0扇区的一段数据,他由主引导程式、硬盘分区表及扇区结束标志字(55AA)这3个部分组成.

    这3部分的大小加起来正好是512字节=1个扇区(硬盘每扇区固定为512个字节),因此,人们又形象地把MBR称为“硬盘主引导扇区”。
    这个扇区所在硬盘磁道上的其他扇区一般均空出,且这个扇区所在硬盘磁道是不属于分区范围内的,紧接着他后面的才是分区的内容(也就是说假如该盘每磁道扇区数为63,那么从绝对63扇区开始才是分区的内容)。

第3页:硬盘DBR介绍

☆ 硬盘DBR(硬盘分区引导记录)介绍
    DBR是各个分区自己的引导记录,又称“分区引导记录”,他是由FORMAT高级格式化命令写在各个分区开始处第一个扇区(比如说:主分区C:从1磁头0 柱面1扇区=逻辑1扇区=绝对63扇区)开始,那么C:区逻辑1扇区就是DBR所存放的位置)的一段数据.这段数据主要由以下几个部分组成:
    1.占3个字节的跳转指令;
    2.占8个字节的操作系统厂商标识及版本号;
    3. 占19个字节的分区参数表(又称BPB),里面存放着对该分区进行读写操作时所必备的参数(如该分区内每扇区所包含的字节数、每簇扇区数、每个磁道的扇区数、该分区FAT份数等);
    4.占480个字节的DOS引导代码,他负责把DOS引导文档IO.SYS、MSDOS.SYS装入内存;
    5.占2个字节的结束标志字”55AA”.
    以上5个部分也正好占1个扇区;和MBR有所不同的是:DBR扇区后面一般就紧接着存放该分区的FAT(文档分配表,共2份)。
    综上所述,我们知道硬盘MBR负责总管硬盘分区,只有分区工具才能对他进行读写(如FDISK);而DBR则负责管理某个具体的分区,他是用操作系统的高级格式化命令(如FORMAT)来写入硬盘的。在系统启动时,最先读取的硬盘信息是MBR,然后由MBR内的主引导程式读出DBR,最后才由DBR内的 DOS引导代码读取操作系统的引导程式,其中任何一个环节出了问题,操作系统都无法正常启动成功,假如是MBR部分出了问题,即使只是”55AA”标志字丢失或被改为其他值,通常都会出现“无效分区表“、逻辑盘丢失、启动死机等现象;而假如是DBR部分出了问题,通常会出现“未格式化的分区”的错误提示。

第4页:基本知识的延伸

☆ 基本知识的延伸
    实际上,在每一个分区的前面,都有一份MBR,在每一个分区的开始处,都有一份DBR。通常我们把存放在绝对0扇区的那份MBR称为主MBR或C分区 MBR。这样我们就能画出如下的MBR、DBR的存放位置表:市面上很多分区表保存软件(如KV3000的分区表保存功能)实际上保存的就是表中各个分区前MBR区的数据。

第5页:观察主MBR

● 进距离观察MBR、DBR:
    口说无凭,眼见为实。还是让我们用工具来具体观察一下吧:)我们要观察的盘全部分作DOS区,在DOS区内共分C:、D:、E:三个盘。
1、观察主MBR:
    首先得准备工具,这里我们推荐DISKEDIT兼容FAT32的版本,能够搜索
DISKEDIT并下载。该程式启动后界面如下:

    选“PHYSICAL DEVICE”按OK进入。这时候,DISKEDIT首先显示的就是硬盘绝对0扇区的MBR信息,如下图:

    从图中我们能够看到MBR的0~01BD字节为主引导程式;01BE~01FD这64字节为硬盘分区表信息,每项分区表占16字节;最后是结束标志字55AA。下面我们周详分析一下分区表各个字节所表示的意思:


    注1:此处第一个字节存放磁头号(01、0B),第二字节低六位存放扇区号01=00(00 0001)=00(01)、FE=11(11 1110)=11(3F),第二字节高2位+第三字节为柱面号00(00)=000、11(7F)=37F。
    还需要说明的是01BF—01C1这3个字节在分区表里面,视后面01C2字节所示分区类型的不同而代表不同的含义。假如01C2是代表主分区的01、 04、06或0B,那么01BF—01C1所表示的就是该分区DBR所在的位置,假如01C2是代表扩展分区的05或0F,那么01BF—01C1所表示的就是该分区MBR所在的位置。
    看完上面我们给出的第一份MBR,不知道大家注意到没有,在硬盘分区表数据区里面只有两个分区表项,而我们的盘明明是分成C:、D:、E:三个盘的,怎么回事呢?再仔细观察一下分区表,我们还会发现在这份MBR里,第一个分区表项(01BE—01CD)描述的是C:盘的信息,第二个分区表项(01CE— 01DD)描述的是整个扩展分区的信息,他把剩下的D:、E:全部包含在里面了!未免太笼统了点吧。那么,假如我们要查看D:、E:各自周详的分区情况怎么办呢?参考上一段我们给出的01BF—01C1这3个字节所代表的不同含义,我们发现,第二个分区表项的分区类型符为0F,也就是说是扩展分区,那么分区类型符前面3个字节所代表的应该是扩展分区MBR所在的位置。可见不光是全盘最前面的0磁头0柱面1扇区有一份主MBR,扩展分区的最前面也有一份 MBR!
    还是让我们顺着系统启动的顺序先到1磁头 0柱面1扇区去看看主分区DBR,然后再看扩展分区的MBR是什么样的吧!


第6页:观察C分区DBR

2、观察C分区DBR:
    在DISKEDIT界面输入“ALT+S”,在出现的菜单内选“GOTO。。。”,如下图:


    接下来,按表1内01BF—01C1字节所示的主分区DBR位置,在出现的菜单内依次输入DBR所在的柱面数(CYLINDER)=0,磁头数(HEAD)=1,扇区数(SECTOR)=1,如下图:

哈哈,第一份DBR的数据就调出来啦:)


第7页:观察D分区MBR

3、观察D分区MBR:
    按照表1扩展分区01CF—01D1字节所示分区MBR位置,进入图4的菜单内输入281(119h)柱面、0磁头 、1扇区;D分区MBR就出来了:)

    哈哈,正如大家所看到的,这第二份MBR其实只是个分区表而已。同第一份MBR相同,也只是描述了当前主盘(D:盘)和剩余空间的分区状况。按照和第3 步中同样的办法,我们同样能够定位出D:盘的DBR和E分区MBR(最后一份MBR)所在的位置并用DISKEDIT进行观察。

第8页:MBR和DBR的遍历流程详解

    通过观察,我们证实了每一个硬盘分区,都有各自的MBR和DBR;操作系统启动时,不论是从硬盘还是从软盘启动,都需要先由BIOS读绝对0扇区的主 MBR,找到标志为80的可引导分区,然后由MBR负责读出该分区内的DBR,再由DBR负责读出存在该分区的系统启动程式(IO.SYS等),最后在 DOS系统程式IO.SYS的指挥下遍历任何的MBR和DBR,从而获知完整的硬盘分区结构。使用FDISK分区时也需要进行同样的过程。而IO.SYS 遍历任何的MBR和DBR的时候,是按照如下表的顺序进行:


第9页:我是无聊的小锁匠

三、分区表知识实际应用
● 我是无聊的小锁匠。。。
    看了这么多图表文字,读者老爷们是不是烦了?那么我们来折磨一下自己的硬盘,制作一个硬盘逻辑锁玩玩如何:)
    观察上面我们给出的遍历流程表,参考一中关于01C2字节的说明,假如我们在描述D分区MBR位置的01CF—01D1字节处作点手脚,把这里本来存放D:盘MBR位置的字节改成00 01 00(就是C分区MBR所在的位置)那么遍历流程不就变成下表所示了吗:

哈哈,表面上看,应该这样就能够做成一个逻辑锁了吧。可是实际情况一定会让您失望,98根本一点反应也没有,居然给我一切正常!!
    哎,再试试动动其他歪脑筋好了。咦。。。总觉得01D2字节表示D:盘分区类型的0F怪怪的,把他改成05看看!!哈哈,这下硬盘总算在出现98欢迎画面的时候陷入上表所示的死循环了:)好,现在我们换软盘启动看看。。。咦。。。怎么出现一大堆E文后居然还能引导成功!
    天哪!这什么破游戏,一点也不好玩!!!走走,搓雷神去了,不玩了!嗯。。。假如把表示C:盘分区类型的01C2字节的0B改成其他数会怎样???把他改成0A吧!
    嘿嘿嘿,终于大功告成了,无论是软盘或是硬盘启动,统统给我死翘翘了:)下面就给出一种完美的硬盘逻辑锁主MBR样本:(图中黄色字体的为改变的部分,只需要改区区4个字节哦!)

第10页:总结一下制作逻辑锁的必要步骤

    好了,我们来总结一下制作逻辑锁的必要步骤吧!
    1. 先把C:盘MBR的01CF—01D1字节处表示的D:盘MBR位置改成00 01 00;
    2. 然后把紧接着的表示D:盘分区类型的01D2字节改成05;
    3. 最后改C:盘MBR中表示C:盘分区类型的01C2字节,把他改成0A、04、03、02或
00这5种字节都能够。
    这样一来,不论是从软盘或硬盘用DOS7.0版本启动,甚至加挂正常的可引导硬盘,都难逃死机的恶运了至于为什么还要改两个盘的分区类型,这个本鸟也还没有完全想通。但是有一点能够肯定的是:即使不改分区类型,在使用FDISK时也是必死无疑的.
    哎呀,差点忘了说了,中了锁怎么解呢??
    别急,前面我们不是说到:”不论是从硬盘还是从软盘启动,都需要在DOS系统程式IO.SYS的指挥下遍历任何的MBR和DBR”吗,既然如此不如在IO.SYS上动动脑筋好了.


第11页:破解硬盘逻辑锁的三种办法

● 破解硬盘逻辑锁的三种办法:
    1 原来,IO.SYS在指挥系统遍历任何的MBR和DBR的时候,首先要检查MBR或DBR扇区结尾的结束标志字是否是”55AA”.假如不是,那么将退出遍历并报分区表错.幸运的是报错之前我们运行DISKEDIT改回原来的MBR所需要的系统核心部分已载入了内存,否则….
    知道了上面的原理,我们不妨反其道而行之,编辑IO.SYS,让他在指挥系统遍历任何的MBR和DBR时检查MBR或DBR扇区结尾的结束标志字是否是除了”55AA”外的其他值.这样一来,就能跳出死循环而执行DISKEDIT了.具体步骤如下:
    A 先制作一张启动软盘,并用ATTRIB –R –H –S A:\IO.SYS命令去掉IO.SYS的系统、只读及隐藏属性;
    B 用ULTRAEDIT之类的编辑工具搜索刚做好的启动软盘上的IO.SYS,找到数个”55AA”,把他们改成其他数值;
    C. 保存IO.SYS,并用ATTRIB +R +H +S A:\IO.SYS命令改回文档的属性.不怕逻辑锁的引导盘就做好啦!启动后不要理会出现的错误信息,赶快运行DISKEDIT改回原来的MBR吧!
    2 假如您嫌麻烦,也能够用硬盘厂家提供的硬盘修复工具制作修复软盘,这种修复软盘由于使用了不同
的启动办法,所以一般都不怕逻辑锁
    好了,大家都了解了吧!下次将带给您更出色的!

U盘数据恢复 http://www.jdcok.com


深入了解硬盘分区表和逻辑锁 www.jdcok.com/anli/5/1195.html
------分隔线----------------------------
分享到: