硬盘逻辑锁的解决办法
有人提到了“解决方法”,如硬盘热插拔、DM低格等等,不仅麻烦、危险,而且会可能对硬盘中的所有数据造成破坏。比如硬盘热插拔后(需拆机箱且拿下硬 盘,并在启动后再重新装上硬盘,非常麻烦且危险),即使是用软盘启动成功了,此时硬盘将彻底不能被识别,包括各种硬盘工具也不能识别。如果用DM跳过 BIOS对硬盘进行低格,这样一来,硬盘上的所有数据将全部丢失,不可恢复,损失非常大。由此可见,硬盘热插拔等“方法”都是不实用也不可行的。因此,只要找到了好的解决办法,并进行相应的操作,所谓的“硬盘逻辑锁”是可以轻易解决的,大家不妨一试。 由上文可知,“硬盘逻辑锁”主要对微软的MS-DOS系统发生影响,因此,使用其它的DOS启动就可以了。为此,我特意对几种较实用的高版本的DOS,如MS-DOS 7.10、PC-DOS 7.10、DR-DOS 7.05、ROM-DOS 7.10、FreeDOS beta9、PTS-DOS Pro 2000的启动盘在硬盘中了“逻辑锁”的情况下进行了启动测试,结果如下:PC-DOS 7.10启动盘:启动一切正常;DR-DOS 7.05(版本号:7.10)启动盘:启动一切正常;ROM-DOS 7.10启动盘:启动一切正常;FreeDOS beta9(版本号:7.10):启动时显示硬盘有错误,并完全正常启动;PTS-DOS Pro 2000(版本号:6.90):启动一切正常。注:以上各种DOS都十分稳定,且均支持FAT32分区和大硬盘,其中ROM-DOS 7.10还完全本地支持长文件名,且兼容性非常好。因此,可以用任何一种以上的DOS启动盘启动带有“逻辑锁”的硬盘,启动后已被锁住的硬盘驱动器的盘符(如C:)虽然看不到,但各种磁盘分区软件,如 Norton Disk Editor 2002、Norton Disk Doctor 2002,以及DOS自带的FDISK程序等,均可以显示出被锁住的硬盘。此时既可用上面提到的DISKEDIT等工具对此硬盘进行查看/手工修复等操 作,也可以用一些软件进行自动修复。如NetResq,SRCTools等,以彻底去掉硬盘上的“逻辑锁”,且硬盘上的数据不会受到任何损坏。 以上提到的方法都是解决“硬盘逻辑锁”的最直接的方法(即“使用不受‘逻辑锁'影响的DOS启动盘来启动电脑”),也是最好的办法。因此,只要制作一张上 面提到的任何一种启动盘(如PC-DOS 7.10启动盘、ROM-DOS 7.10启动盘、FreeDOS启动盘,或修复的MS-DOS启动盘等)就可以了。既可平时将此启动盘当作正常启动盘使用,而且当硬盘被锁住时则可用此启 动盘启动并解决问题。用制作的linux启动u盘或者光盘(有的pe工具箱里面已经集成了cdlinux等系统)启动电脑,进入linux系统后,打开shell,输入fdisk -l,按回车键确定,会发现有200多个sda*,然后输入dd if=/dev/zero of=/dev/sda bs=512 count=1命令,按回车键确定(这个过程是将整个MBR清除,这样逻辑锁自然就解除了,所有的分区也都丢失了,但是硬盘中的数据全部都在),然后重启电脑,用集成有DiskGenius的pe工具箱的u盘或者光盘启动(此时逻辑锁已经解除,可以用u盘或者光盘来启动了),进入pe后,运行DiskGenius,选择“搜索已丢失的分区(重建分区表),就会自动找回丢失的分区,然后保存,退出软件,这样,硬盘已经修复完成,接下来就可以正常的安装操作系统了。
什么叫硬盘的逻辑锁,如何解开?
硬盘逻辑锁总共有三种,本质都是对硬盘的分区表作了修改,以前只是一些黑客程序使用它,开始大范围对计算机造成危害是在臭名昭著的KV3000反盗版事件的时候,那时江民公司为了打击盗版。在KV3000新版升级程序植入了一个黑客程序,当检测到用户使用了盗版的KV3000以后就将硬盘的分区表锁住,被称为“主动逻辑锁”,其实就是硬盘逻辑锁的一种,当时却使无数无辜的人受害,江民公司也因此被定罪。这是旧事不谈,下面我们就来介绍一下它的三种情况和解决方法。 首先我们来了解一下硬盘的分区表。硬盘分区表位于磁盘的0磁头0柱面1扇区,这个扇区从01BEH开始的64个字节就是分区表。分区表共64字节,分为4栏,每栏16个字节描述一个分区。如果用FDISK程序分区,那最多只用两栏,第一栏描述主引导分区,第二栏描述扩展分区。分区表的结构与各字节的含义如下: 00H—标志活动字节。活动DOS分区为80H,其它为00H。 01H—本分区逻辑0扇区所在的磁头号。 02H—逻辑0扇区所在柱面中的扇区号。 03H—逻辑0扇区所在的柱面号。 04H—分区类型标志。 05H—本分区最后一个扇区的磁头号。 06H—最后一个扇区的扇区号。 07H—最后一个柱面的柱面号。 08H—硬盘上在本分区之前的扇区总数,用双字节表示。 0CH—本分区的扇区总数,从逻辑0扇区计数,不含隐藏扇区,用双字节表示。 分区表的最后两个字节是它的有效标志,改变后将无法从硬盘启动,这就是第一种简单的锁住硬盘的方法。不过比较容易解决,只要从软盘启动就一切正常,启动后用Debug或Diskedit等软件将硬盘分区表中的标志恢复就可以了。第二种方法是修改分区参数,如果将分区参数全部变为0,则启动后由于找不到分区参数无法从硬盘启动,用启动盘从软盘启动后也不认硬盘,不过机器毕竟能够启动,我们可以在启动后用软盘里的debug等工具修复被改动的分区表参数,重新启动后就没问题了。 我们重点要讲的就是第三种,也就是上文提到的“主动逻辑锁”,它是因为分区表参数被修改成了一个死循环。正常启动时DOS接管硬盘后查找分区表,主引导分区被定义为C盘,然后查找逻辑盘,定义为D盘,然后是E、F、G,而这个主动逻辑锁就是将第一个逻辑盘(一般是D盘)的下一个分区指向它本身,不断读取下一个,其实就是读它自己,结果陷入死循环。因为DOS启动必须包含基本输入输出文件io.sys(我们在windows下也可以看到,位于C盘根目录下)。而它是有些固执的,启动以后非要把硬盘分区表读完然后接管不可,所以无论我们用什么启动,它一查找逻辑盘就死循环,我们就看到了硬盘灯常亮系统挂起的情况了。 那么我们如何解开它呢?从根本上讲就是让io.sys不起作用或者在它起作用以前将分区表参数修改回来。 1、debug法。 用这种方法首先必须要能启动机器,我们可以在一台正常的电脑上修改启动软盘中的io.sys文件,查找到第一个“55aa”字符串,找到以后修改为任何其他数值,用这张启动软盘你就可以顺利地带着被锁的硬盘启动了。不过这时该硬盘的分区表已经不正常,所以我们无法用FDISK来删除和修改分区,而且仍然无法用正常的启动盘启动系统,这时可以用DEBUG来手工恢复。具体命令如下: a:>debug -a -????:100 mov ax,0201(读一扇区内容) -????:103 mov bx,500(设置一缓存地址) -????:106 mov cx,0001(设置第一硬盘的硬盘指针) -????:109 mov dx,0080(读零磁头) -????:10c int 13 (硬盘中断) -????:10e int 20 -????:0110 回车 (注:-????各硬盘不相同,跟后面的:1??都是自动显示的,我们要输入的只是其后的内容) -g -d500 (查看运行后缓存地址500的内容,这时候我们会发现地址6be开始的内容就是硬盘分区表信息,如果硬盘的扩展分区正是指向自己,那么DOS或WINDOWS启动时就会因查找逻辑分区而陷入死循环。)在DEBUG指示符下继续修改内存数据: E6BE ??.0 ??.0 ??.0…… …… ……55 AA 55 AA是硬盘有效的标志,不要修改,??.0表示把以前的数据“??”改成了0,再用硬盘中断13把修改好的数据写入硬盘就可以了: A:>debug a 100 (表示修改100地址的汇编指令) -????:100 mov ax,0301 (写硬盘一个扇区) -????: 回车 -g (运行) -q (退出) 退出后运行fdisk/mbr来重置硬盘引导程序,重新启动即可。 这种方法虽然麻烦一点,但是它能够恢复硬盘分区表,也就是说恢复以后硬盘中的数据也不会丢失。而以下方法虽然更加方便,但是要么硬盘中的数据难保,要么有一定危险性。 2、外挂软件法 这种方法原理都是绕过bios对硬盘的检测而直接用一些能够自己查找硬盘的软件来控制硬盘。 首先是DM,现在每一个硬盘厂商都有自己的DiskManager程序,而且都能放进一张软盘里,你可以下载一个使用,如果不清楚自己硬盘的牌子,也可以用IBM出的DM万用版,不过它对现在32G以上的大硬盘支持不好。我们先在bios里面将硬盘所在的IDE口设置为none,(如果你不知道哪个是,全部设为none也可以),然后用启动盘启动系统,启动完成后将软盘取出,放入装有DM软件的软盘,运行DM,它会检测到你的病硬盘的存在,然后将它重新分区就搞定了。DM具体用法比较简单,就不详细说了,不过对E文不太好的朋友可能有些困难,请教身边的高手吧。 我们还可以使用低格软件,也是每一种硬盘都有自己的低格软件,但也有通用的Lformat程序(只有30多k),前面的做法相同,还是在bios里面屏蔽掉硬盘,用启动盘启动,然后换软盘运行低格程序对硬盘进行低级格式化,由于分区表只在硬盘最前列部分,所以估摸着格过前面的分区表部分就可以停止了,然后重新启动在bios里面将硬盘设出来,就可以像一块新的硬盘一样对它进行分区等操作了。 3、热插拔 这是最危险的一种方法,很有可能将你的硬盘烧毁,所以请谨慎。具体做法很简单,首先将硬盘的电源线拔掉,然后软盘启动系统,启动完成后再将硬盘的电源线插上,这时候系统就能够控制硬盘了,可以对它进行分区,恢复分区表等操作。我有一个菜鸟朋友就是在热插拔硬盘3次以后搞定的。不过此种方法存在危险,强烈不推荐使用,如因此损坏,本人概不负责。 其实最好的情况是你有分区表备份,那恢复起来就比较容易了,而且数据也不会丢失。
巧解硬盘逻辑锁
巧解硬盘逻辑锁
硬盘逻辑锁想必不少网友们不会陌生吧,硬盘逻辑锁最初是江民公司的kv300
L版中带的一个保护程序,本意是对付那些企图破解KV300软件那些人的硬盘的。后来有好事者将它分离出来单独用上了。那时江民公司为了打击盗版,在KV新版升级程序植入了一个黑客程序,当检测到用户使用了盗版的KV以后就将硬盘的分区表锁住,被称为“主动逻辑锁”,使无数人受害,江民公司也因此被处罚,这都是很早以前的事了。
前几天我的一位朋友向我求助,说自己用逻辑锁把自己的硬盘锁住了......,我很是奇怪,难不成这哥们吃饱了撑的没事干?后来到了朋友家里才明白,原来这哥们在网上看到了有逻辑锁这个程序,非常感兴趣,就找了一个想要发给朋友恶作剧一下,但是从网上下载了程序后,又不知道好不好用,所以就在自己的机子上试了一下。
没想到直接就把自己的.硬盘锁住了,光驱软驱全部不好使,DOS也进不去了;实在无奈所以就打电话向我求助了,我先是幸灾乐祸一通,后来又以一顿饭作为条件,答应帮助他解开逻辑锁。为了让大家能够了解如何解开逻辑锁,今天我将详细的方法写出来,也希望一会会对大家有所帮助。
硬盘锁的原理
说实话,虽然有关于逻辑锁的文章在网上到处皆是,我对于逻辑锁也早有耳闻,但是其实我也没有实际使用和操作过,对于如何解锁我脑子里也是一团浆糊,但是为了这一顿饭,我怎么也要试试呀,大不了在朋友面前丢点人!
为了弄清楚逻辑锁的工作原理和解决办法,我在网上查了不少资料,逻辑锁的工作原理基本上是计算机在引导DOS系统时将会搜索所有逻辑盘的顺序,当DOS被引导时,首先要去找主引
导扇区的分区表信息,位于硬盘的零头零柱面的第一个扇区的OBEH地址开始的地方。
当分区信息开始的地方为80H时表示是主引导分区,其他的为扩展分区,主引导分区被定义为逻辑盘C盘,然后查找扩展分区的逻辑盘,被定义为D盘。
以此类推找到E,F,G…..
"逻辑锁"就是在此下手,修改了正常的主引导分区记录将扩展分区的第一个逻辑盘指向自己,DOS在启动时查找到第一个逻辑盘后,查找下个逻辑盘总是找到是自己,这样一来
就形成了死循环,这就是使用软驱,光驱,双硬盘都不能正常启动的原因。 ;
有没有真正可以解除江民炸弹的方法,
下面是摘抄来的,我过去处理一概都是热插拔,简单快速。
先说一个简单的方法,就是低格硬盘了:
找一台主机BIOS中带有低格软件的计算机,把被锁硬盘用这一台计算机进行低格就可以解除硬盘锁了呀~~,不过我事先说一下,你的硬盘什么都没有了呀,而且这样的电脑好想也消失了呀。
第2种方法就要热插拔了:
先将硬盘的电源拔的松一点,将98启动盘放入软驱,然后启动电脑,这时要小心看这电脑呀:)在软盘要启动的时候按下PAUSE键,使电脑停止启动;现在是高潮了呀,你要小心的将拔掉硬盘的电源线,按回车键,计算机又开始启动了,启动完毕后,将硬盘的电源线在插入硬盘。现在硬盘就可以使用了呀`~哈哈,不过这中方法,太冒险了呀,做不好就会机毁人伤呀:)所以我还是不推荐这样呀。
第3种方法debug法。
先准备一张能启动计算机的98启动盘,然后还要准备一贯工具软件UltraEdit32。在一台正常的计算机中将IO.SYS的系统文件打开,并去掉它的全部属性,在用上述的软件打开它并查找55AA,并将它改成任意的数(我用的是44CC的呀),其实这样就是将自举标准改掉了。
至于里面的细节,我就不说了,你们看截图好了呀,用这张启动软盘你就可以顺利地带着被锁的硬盘启动了。不过这时该硬盘的分区表已经不正常,所以我们无法用FDISK来删除和修改分区,而且仍然无法用正常的启动盘启动系统,这时可以用DEBUG来手工恢复。具体命令如下:
a:\>debug
-a
-????:100 mov ax,0201(读一扇区内容)
-????:103 mov bx,500(设置一缓存地址)
-????:106 mov cx,0001(设置第一硬盘的硬盘指针)
-????:109 mov dx,0080(读零磁头)
-????:10c int 13 (硬盘中断)
-????:10e int 20
-????:0110回车
(注:-????各硬盘不相同,跟后面的:1??都是自动显示的,我们要输入的只是其后的内容)
-g
-d500 (查看运行后缓存地址500的内容,这时候我们会发现地址6be开始的内容就是硬盘分区表信息,如果硬盘的扩展分区正是指向自己,那么DOS或WINDOWS启动时就会因查找逻辑分区而陷入死循环。)在DEBUG指示符下继续修改内存数据:
E6BE
??.0 ??.0 ??.0……
……
……55 AA
55 AA是硬盘有效的标志,不要修改,??.0表示把以前的数据“??”改成了0,再用硬盘中断13把修改好的数据写入硬盘就可以了:
A:\>debug
a 100 (表示修改100地址的汇编指令)
-????:100 mov ax,0301 (写硬盘一个扇区)
-????:回车
-g (运行)
-q (退出)
退出后运行fdisk/mbr来重置硬盘引导程序,重新启动即可。
这种方法虽然麻烦一点,但是它能够恢复硬盘分区表,也就是说恢复以后硬盘中的数据也不会丢失。而以下方法虽然更加方便,但是要么硬盘中的数据难保,要么有一定危险性
第4种是修改IO.SYS的方法
在将上面改过的IO.SYS文件拷入到我们的98启动盘中。在次启动有硬盘锁的硬盘。因为同学的电脑上有很多有用的文件,而采用这种方法可以不损害硬盘上的文件。你现在可以修复你的分区表了呀,你可以用KV3000和DM中文版的修复分区表的功能了。(此方法适合新手:)
第5种方法是DM修复
第一步,把DM拷到好的硬盘上(如果有的话,没有的就用软盘好了)。
第二步,接上坏硬盘,开机,进CMOS,除好硬盘外,其他的IDE设为NONE(关键所在),保存,启动。
第三步,进入DOS,运行DM,选中坏硬盘,分区格式化,OK后启动。
第四步,进CMOS,识别硬盘或设为AUTO,保存后启动。
好了,简单吧。
逻辑硬盘锁怎么解锁?
硬盘是个人计算机必不可少的部件。从计算机工作原理来说硬盘是辅助存储设备,但从用户角度来说硬盘是最重要最常规的存储设备。内存损坏我们只需简单更换即可,其损失不大于市场上内存条的价格。但硬盘故障不仅仅是一个物理设备的损失,更重要的是我们长时间智力工作的成果存放在里面。其价值要远大于市场上一块硬盘的价格!硬盘故障并不都是无法挽救的物理损坏,其中有许多是可以用计算机指令来修复的逻辑故障。然而硬盘数据结构复杂,非专业人士无从下手。基于此,本人开发一工具软件,使用方法简单,对计算机“略知一二”的普通用户可以自己动手修复硬盘逻辑故障,维修单位更可用它为客户提供相应服务而获得收益。如果硬盘出现问题,你可以通过下面方法初步判断出它是否属于逻辑故障。硬盘逻辑故障也称硬盘软故障,通常表现为:硬盘没有异常声音,系统能识别硬盘,但不能正常(读写)访问。大致原因有二:1.硬盘锁死:表现为硬盘不能引导操作系统。有时由于锁死硬盘的存在,任何可引导设备(软盘、光盘、同机内的其它硬盘)都不能正常引导计算机。这种情况下无法使用其它工具软件来解除硬盘锁。2.分区信息丢失:硬盘不能引导计算机或虽能引导但某些逻辑驱动器找不到,造成硬盘内数据不能正常访问,此种现象多为分区信息丢失造成。此时若用分区工具重建分区将造成盘内数据无法挽回的后果。
江民炸弹的修复
KV300逻辑锁技术分析要不是亲自试一下,你一定不会相信。运行下面的程序,你的机器将不能从软盘启动,更不能从硬盘启动。而这个程序仅仅修改了你的硬盘的扩展DOS分区的首隐藏扇区。代码如下(汇编): code segmentassume cs:code,ds:codeorg 100hbegin:xor ax,axmov dl,80hint 13h ;复位硬盘mov ax,201hmov bx,200hmov cx,1mov dx,80hint 13h ;读主引导扇区到200Hmov cx,ds:[3d0h]mov [3ceh],0mov bx,210hmov ax,301hint 13h ;写扩展分区首隐藏扇区int 19h ;快启动code endsend begin程序很短,你可以在DEBUG中输入并运行。再编译成“.com”之后运行。运行之前请保存好硬盘的扩展DOS分区的首隐藏扇区的内容,以备将来恢复时用。笔者是在编制一个硬盘加锁程序时,因计算有误而偶然发现这一点的。仅仅因为修改硬盘一个隐藏扇区,造成机器从软硬盘都不能启动,从未见资料提及。作者当时很惊讶。为了解决问题,笔者按复位键,进入CMOS设置,将硬盘设置为未安装,则可以从软盘启动,但是,使用INT13h仍不能读写硬盘,因此无法将被破坏的扇区复原。笔者估计是引导过程中,读取硬盘分区表时形成循环的缘故。理由有两点:1、因为仅仅修改硬盘一个扇区,造成了如此现象,而该扇区仅记录了硬盘分区表的一些信息;2、启动过程中,不管从软盘启动还是从硬盘启动,最终的现象都是硬盘灯第亮。因此,换用不支持硬盘分区的低版本DOS系统盘也许能够启动,使用2.0版的系统盘,果然可以在CMOS设置为硬盘正常安装的情况下启动机器,启动后虽仍不能进入硬盘,但可以用INT13h读写硬盘。在DEBUG中用正常的内容覆盖硬盘的扩展DOS分区的首隐藏扇,重新启动机器,成功。为什么从软、硬盘启动都会造成读硬盘分区的死循环呢?笔者为此对硬盘分区表及DOS引导过程进行了分析,提出几点粗浅看法,供参考。大家知道,硬盘分区表位于主引导扇区的1BEh与1FDh处,占64个字节,共4个分区项每个表项对应一个逻辑分区,每个表项占16个字节,其含义见表。=====================================偏移量 含 义=====================================0 引导标志(80h表示活动分区,00h表示非活动分区,其他值非法)1 本分区的起始磁头号2-3 本分区的起始扇区号和起始柱号4 分区类型(1-DOS,12位FAT;2-XENIX;4-DOS,16位FAT,小于32M;5-扩展DOS;6-DOS,16位FAT,大于32M;0DBh-并发DOS.5 本分区的结束磁头号6-7 本分区的结束扇区号和结束柱号8-B 本分区的相对扇区号C-F 本分区的扇区数=====================================各逻辑分区首隐藏扇区与主引导扇区类似,在偏移1BEh到1DDh处,记录两个分区表项第一表项对应于本分区,第二表项则对应于下一分区,各字节含义同上。这样,各逻辑分区通过首隐藏扇区的分区信息表串起来形成了DOS硬盘分区的所谓链式结构,使得DOS能够管理多个逻辑分区。DOS引导时,不管是从软盘启动还是从硬盘启动,都将搜索这条链,以便为各逻辑盘建立磁盘基数表。值得注意的是分区类型(偏移04h)中的扩展DOS分区是相对来说的,D盘相对于C是扩展DOS分区,但相对本身来说不是扩展的,因此在主引导扇区对应于D盘的分区表项中该字节为5,在D盘首隐藏扇区此处应为1、4或6。相应地,某表项若04h字节为5,则01-03h三字节就记录所对应分区的首隐藏扇区的物理地址,若04h字节为1、4或6(此时该表项必为第一表项),则01-03h字节记录所对应分区的DOS引导扇区。DOS搜索链表建立磁盘基数表的过程是这样的:首先检查分区类型,若为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(或IBMBIO.COM)文件来完成的,明白了这一点,我们就可以在IO.SYS取得控制权之前,先行一步,即:对软盘的DOS引导扇区--0面0道1扇区直接编程,就可以排除《失误》文中所述的情况(不熟悉DOS引导过程的读者,可参考有关专著,这里不作叙述)。有一个最简单的解决办法就是把硬盘的主引导扇区改为无效。然后就可以用软盘启动了,也可以用一些磁盘维护工具(或者直接用INT13H),来对硬盘工作了。比如:恢复主引导扇区和被破坏了的“扩展分区首隐藏扇区”。具体操作如下。首先用另一台计算机,找一张格式化好的软盘,插入A驱或B驱。按如下输入:C〉DEBUG-a 100mov ax,0301mov bx,0200mov cx,0001mov dx,0000;如果您的软盘在B驱,这里应改为:mov dx,0001int 13int 3-a 200mov ax,0301mov bx,0200mov cx,0001mov dx,0080int 13int 3-g=100执行完后,将软盘从驱动器中取出,此时这张盘就成了开锁的钥匙,将其插入“病”计算机的A驱,打开电源,启动“病”计算机,显然这张盘并不是系统盘,不能真正启动“病”计算机,但待这张盘“启动”完后(硬盘灯亮了一下,显示器上无任何显示),再插入真正的系统盘,关机,再重新启动,就可以了。当然,明白了这一道理后,可能会有更好的方法,以上就算是抛砖引玉吧。注意:不要修改CMOS。软错误当然软解决,千万不能将COMS设置硬盘为未安装 。以上方法,已在多台机器上验证无误。.