- 积分
- 58
- 下载分
- 分
- 威望
- 点
- 原创币
- 点
- 下载
- 次
- 上传
- 次
- 注册时间
- 2010-12-15
- 精华
|
2#
发表于 2010-12-16 23:37:29
|
只看该作者
来自: 广东深圳 来自 广东深圳
---------接上-----------
在中篇里,我们将来看看怎样实际操作,观察我们硬盘上的MBR、DBR。
动手观察MBR、DBR:
近距离观察MBR、DBR:
口说无凭,眼见为实。还是让我们用工具来具体观察一下吧:)我们要观察的盘全部分作DOS区,在DOS区内共分C:、D:、E:三个盘。
1、观察主MBR:
首先得准备工具,这里我们推荐DISKEDIT兼容FAT32的版本,可以到www.download.com.cn搜索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是什么样的吧!
2、观察C分区DBR:
在DISKEDIT界面输入“ALT+S”,在出现的菜单内选“GOTO。。。”,如下图:
接下来,按表1内01BF—01C1字节所示的主分区DBR位置,在出现的菜单内依次输入DBR所在的柱面数(CYLINDER)=0,磁头数(HEAD)=1,扇区数(SECTOR)=1,如下图:
哈哈,第一份DBR的数据就调出来啦:)
3、观察D分区MBR:
按照表1扩展分区01CF—01D1字节所示分区MBR位置,进入图4的菜单内输入281(119h)柱面、0磁头 、1扇区;D分区MBR就出来了:)
哈哈,正如大家所看到的,这第二份MBR其实只是一个分区表而已。同第一份MBR一样,也只是描述了当前主盘(D:盘)和剩余空间的分区状况。按照和第3步中同样的办法,我们同样能够定位出D:盘的DBR和E分区MBR(最后一份MBR)所在的位置并用DISKEDIT进行观察。
在下篇内将对以上知识进行总结,并对逻辑锁进行一个详细的分析。
前两篇文章中我们了解了硬盘逻辑分区的概念也实际看到了分区的情况,下面是对前问的总结,附带逻辑锁的详解。==
通过观察,我们证实了每一个硬盘分区,都有各自的MBR和DBR;操作系统启动时,不论是从硬盘还是从软盘启动,都需要先由BIOS读绝对0扇区的主MBR,找到标志为80的可引导分区,然后由MBR负责读出该分区内的DBR,再由DBR负责读出存在该分区的系统启动程序(IO.SYS等),最后在DOS系统程序IO.SYS的指挥下遍历所有的MBR和DBR,从而获知完整的硬盘分区结构。使用FDISK分区时也需要进行同样的过程。而IO.SYS遍历所有的MBR和DBR的时候,是按照如下表的顺序进行:
==分区表知识实际应用==
,制作一个硬盘逻辑锁
观察上面我们给出的遍历流程表,参考一中关于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个字节哦!)
好了,我们来总结一下制作逻辑锁的必要步骤吧!
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版本启动,甚至加挂正常的可引导硬盘,都难逃死机的恶运了,至于为什么还要改两个盘的分区类型,这个本鸟也还没有完全想通L不过有一点可以肯定的是:即使不改分区类型,在使用FDISK时也是必死无疑的.
哎呀,差点忘了说了,中了锁怎么解呢??
别急,前面我们不是说到:”不论是从硬盘还是从软盘启动,都需要在DOS系统程序IO.SYS的指挥下遍历所有的MBR和DBR”吗,既然如此不如在IO.SYS上动动脑筋好了.
破解硬盘逻辑锁的三种办法:
1、原来,IO.SYS在指挥系统遍历所有的MBR和DBR的时候,首先要检查MBR或者DBR扇区结尾的
结束标志字是否是“55AA”.如果不是,那么将退出遍历并报分区表错.幸运的是报错之前我们运行DISKEDIT改回原来的MBR所需要的系统核心部分已经载入了内存,否则….
知道了上面的原理,我们不妨反其道而行之,编辑IO.SYS,让它在指挥系统遍历所有的MBR和DBR时检查MBR或者DBR扇区结尾的结束标志字是否是除了“55AA”外的其它值.这样一来,就能跳出死循环而执行DISKEDIT了.具体步骤如下:
先制作一张启动软盘,并用ATTRIB –R –H –S A:\IO.SYS命令去掉IO.SYS的系统、只读及隐藏属性;
用ULTRAEDIT之类的编辑工具搜索刚做好的启动软盘上的IO.SYS,找到数个”55AA”,把它们改成其它数值;
保存IO.SYS,并用ATTRIB +R +H +S A:\IO.SYS命令改回文件的属性.
不怕逻辑锁的启动盘就做好啦!启动后不要理会出现的错误信息,赶快运行DISKEDIT改回原来的MBR吧!
|
|