快速业务通道

KV300技术分析(有关硬盘锁)

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-30
首先检查分区类型,若为1、4或6,则从01h-03h取分区dos引导扇区地址,根据引导扇区和分区表信息建立该分区的磁盘基数表,然后转向下一表项(如果有的话);若为5,则从01h-03h取该分区首隐藏扇区地址,并转向该扇区,判断该扇区分区表,准备建立下一分区的磁盘基数表;若04h为其他值则跳过,而调试程序运行后,04h字节被误置为5。引导时,DOS据此认为该表项指向下一个DOS扩展分区,于是从01h-03字节取“下一个”分区的起始物理地址,读取下一个分区的首隐藏扇区,而此处又被误置为D盘的首隐藏扇区的地址,于是机器就陷于读取D盘首隐藏扇区的死循环中。

虽然发生如此情况的可能性微乎其微,但一但出现,造成的危害不可低估,因为低版本的DOS已极度难找到,即使找到也需要对硬盘分区表了解较深,才能挽救。作为一个完善的操作系统,应该在任何情况下都是无懈可击的,而且仅需加几条指令就可避免如此后果,这不能不说是设计者的一个失误。更高版本的DOS是否注意到了这一点呢?笔者为此曾用dos3.30,5.0,6.20在多种型号的机器上试验,均出现上述现象。

虽然这是一个失误,但我们可以利用它做一些有益的事。比如:很多硬盘加锁软件,虽然可以做到从软盘启动不能使用硬盘,但无法避免对硬盘了解较深的人通过修复主引导扇区进入硬盘,因此,要达到完全锁住硬盘,必须做到从软盘不能启动机器。DOS的这个失误为此提供了可能。笔者利用此点编写了一个硬盘主引导程序,使得机器只能从硬盘启动,并且必须输入正确的口令;从软盘启动则死机。

首先,《失误》文中所述DOS对逻辑分区的管理机制基本上正确的,DOS的这种链表式数据结构,可以说到处可见,在设备管理中、在内存管理中、在文件管理中,可谓比比皆是,而且严格地讲,不仅DOS如此,其他操作系统亦如此。文中所述方法会造成死机,这是事实,但进而就说这是DOS的一个失误,可就不应该了。原因很简单:在DOS的这些链表式结构中,不管改变了哪一个,都可能引起死机。比如:改变了内存链(即MCB链),使之不符合DOS的要求,则马上就会死机。能因此就说这是DOS的失误吗?显然是不合适的。作为用户,要求DOS能在任何情况下,都能正常运行,是可

以理解的,但这也是不可能的。事实上,任何一种操作系统,进而言之,任何一种软件,都不可能做到。那么,从开发的角度,或者说从程序设计的角度,用户要设计一个较低级(指管理上)一点的程序,使其能和DOS一起工作,甚至控制DOS的工作,可能就要牵扯到对这些链表的操作,怎么办呢?一句话,必须适应DOS!(不可能让操作系统去适应您)比如想自己去管理内存,就必须符合DOS的管理方式,使DOS认为是合理的,否则DOS就死了。再比如想接管DOS的磁盘管理,也必须如此,否则,虽然DOS不至于马上就死,但会造成磁盘的混乱和数据的丢失。

其次,《失误》文中认为这是加密的一个好方法,实际上也不然。应该说《失误》文中谈到的种种现象都确实是存在的,即:硬盘、软盘启动结果都是死机,硬盘灯常亮。但并不是没有办法解决。这里应该先明确一点, DOS为各逻辑盘建立磁盘基数表(即建立设备管理链表)的过程是由IO.SYS(或IBMIO.COM)文件来完成的,明白了这一点,我们就可以在IO.SYS取得控制权之前,先行一步,即:对软盘的DOS引导扇区--0面0道1扇区直接编程,就可以排除《失误》文中所述的情况(不熟悉DOS引导过程的读者,可参考有关专著,这里不作叙述)。

有一个最简单的解决办法就是把硬盘的主引导扇区改为无效。然后就可以用软盘启动了,也可以用一些磁盘维护工具(或者直接用INT13H),来对硬盘工作了。比如:

恢复主引导扇区和被破坏了的“扩展分区首隐藏扇区”。具体操作如下。

首先用另一台计算机,找一张格式化好的软盘,插入A驱

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号