A. 电脑硬盘被锁被锁,请问我该怎么办
解开硬盘逻辑死锁的一种有效方法
一·序言
不知道你是否曾碰到过从软盘和硬盘都启动不了计算机的情形?一般计算机的硬
盘分区表被病毒感染后,若不能启动机子,通常从软盘可以启动。但在严重的情形下 ,不但从硬
盘不能启动机子,就是从软盘也不能启动。有的恶毒的病毒就能使硬盘被死锁。笔者一次在自己
机子上玩弄硬盘锁时,就被锁住过一次。结果在硬盘下选择DOS或WIN95模 式启动机子都死机,在
软盘下用DOS启动也死机;在COMS中将硬盘类型选择None,虽然可以从软盘启动,但启动后没有硬
盘,使用软盘上的FDISK命令,想重新分区或格式化都没门。 弄得我一筹莫展。
本来,硬盘被锁住时,可以采用3.0以下的DOS版本启动机子,机子启动后虽然也
不认硬盘,但其不认的原因在于其管理不了现在的大硬盘,因此可以用Debug修改硬盘 分区表,
修改后可以启动。但在已进入WINDOWS的年代,3.0以下的DOS实难找到,即使找到,你的机子上恐
怕也因没有5寸软驱而不能使用。因此,最好的办法是编制一个程序来解决 这个问题。笔者通过
尝试和思考,找到一种比较实用的方法,可以轻松解开死锁的硬盘,当然也把自己的硬盘解开
了。下面,我将这种方法介绍出来。
二·硬盘锁住原理
硬盘锁住通常是对硬盘的分区表做手脚,因此首先应该了解硬盘的分区表。硬盘
分区表位于0柱面0磁头1区,这个扇区的前面200多个字节是主引导程序,后面从01BEH 开始的64
个字节是分区表。分区表共64字节,分为4栏,每栏16字节,用来描述一个分区。如果是用DOS的
FDISK程序分区后,最多只用两栏,第一栏描述基本的DOS分区,第二栏描述 扩展的DOS分区。
分区表一栏的结构与各字节的含义如下:
00H-标志活动字节,活动DOS分区为80H,其它为00H。
01H-本分区逻辑0扇区所在的磁头号。
02H-逻辑0扇区所在柱面中的扇区号。
03H-逻辑0扇区所在的柱面号。
04H-分区类型标志。
05H-本分区最后一个扇区的磁头号。
06H-最后一个扇区的扇区号。
07H-最后一个柱面的柱面号。
08H-硬盘上在本分区之前的扇区总数,用双字表示。
0CH-本分区的扇区总数,从逻辑0扇区计数,不含隐藏扇区,用双字表示。
在上面的介绍中给出的柱面号与扇区号虽然各占一个字节,但实际上扇区号用6位
表示,柱面号用10位表示,扇区号所在字节的最高两位实际上是柱面号的最高两位。
分区表的最后两个字节是分区表的有效标志,如果将其改变,将不能从硬盘启
动,这是一种简单的锁住硬盘的方法。解决的办法是从软盘启动,启动后硬盘仍然可以 使用。用
Debug或Noratn中的Diskedit软件将硬盘该分区表中的标志恢复,则从硬盘启动也没有问题了。锁
住硬盘的另一种方法是对分区参数做手脚,如果将分区参数全部变为0,则 启动时由于找不到分
区参数,从硬盘是没法启动,从软盘启动后也不认硬盘,如果你敲入盘符C并回车,将出现提示
Invalid
driver
specification。但所幸的是,毕竟可以启动机子,不认硬盘没关系,在A盘上用
DOS的Debug仍然可以读出硬盘0柱面0磁头1扇区的内容,修改后再写入0柱面0磁头1扇 区,重新启
动机子又没问题了。如果将分区表参数随意改为其它参数,则有可能不能用可以安装DOS的DOS系
统盘启动,按F3退出后将出现内存分配错误,不能装载DOS的命令解释 器COMMAND的提示,系统就
死机了,笔者就曾碰见过这种情形。但用一张格式化成系统盘的软盘则可以顺利启动,只要有
Debug,你仍然可以将分区表参数修改回去。可怕的事情是, 如果你不幸将分区表参数改成一个
循环链,即C盘的下一个分区指向D驱,D驱的下一个分区又指向C区,这样循环下去,DOS启动或
WIN95启动时由于无休止的读取逻辑驱动器,就只有 死机的份了。这是只要有硬盘存在,不管你
用软盘还是硬盘都没法启动机子了,由于不能启动是由于硬盘造成的,即使你将硬盘下到其它计
算机上,也没法使用,这样硬盘就彻底被 锁死了,笔者所遭遇就是此情形。不信,你只需将硬盘
0柱面0磁头1扇区的1D0H处改为1(如果你的D驱开始柱面号不够大,此处本来就为1),将1D1H处
改为0,表示D盘的开始柱面号 跟C盘一样,看看你的计算机还能不能启动,不过你在没有充分的
准备前绝不要试。
一个完整的硬盘锁程序,不过是重新改写0柱面0磁头1扇区的引导程序,并将分区
表破坏或故意制造一个循环分区表,而将真正的硬盘分区表参数和引导程序放在其它 隐藏扇区并
保护起来,如果启动时口令不对,则不能启动机子,口令对了则顺利启动。这种硬盘锁程序,情
形好的还可以用软盘启动;情形严重的就是连软盘也不能启动,硬盘真被 锁住。
三·解开硬盘锁的程序法
如果硬盘被锁死,是否真的就无法解开呢?当然不是。看看问题的症结所在,根
源在于DOS中的IO.SYS文件,它包含LOADER、IO1、IO2、IO3四个模块,其中IO1中包含 有一个很
关键的程序SysInt_I,它在启动中很固执,非要去读分区表,而且不把分区表读完誓不罢休。如
果碰上分区表是循环的,它就只有死机了。这是DOS的脆弱性和不完备性。其 实这也不能怪DOS,
因为DOS为了获得硬盘使用权,就必需读分区表参数,而且DOS还约定驱动器号不能超过26,只不
过没有考虑到此等循环分区表情形。一句话,机子不能启动不过是 DOS操作系统造成的,如果另
写一个操作系统,或许就能启动机子。当然这只是说个笑话。
明白了病因在于DOS,问题就好办了。DOS启动中不是要读硬盘分区表吗?我不让
你读分区表甚至连硬盘都不让你读,不就可以顺利启动了。的确是这样的,开硬盘锁 的程序实现
方法就是基于这个思想形成的。当然,这只有从软盘启动着手了。
看看计算机的启动过程,上电首先进行的多项硬件自测跟我们没有关系,我们关
心的只是它最开始和磁盘打交道时是干什么。如果选择从硬盘启动,则计算机和磁盘 最开始打交
道是将硬盘0柱面0磁头1扇区的内容读入内存0000:7C00处并跳到0000:7C00处执行;如果选择从
软盘启动,则计算机和磁盘最开始打交道是将A盘0磁道0磁头1扇区的内容 读入内存0000:7C00处
并跳到0000:7C00处执行,在执行过程中,计算机并不检查该扇区的内容是什么,只机械地执行
读命令,这使得许多系统型病毒得以生存。但利用这一点,恰 恰使我们的程序解锁法有了用武之
地。如果我们用DOS格式化一张可以启动机子的系统软盘,将该软盘的0磁道0磁头1扇区的内容移
到后面的空白扇区中,而重新写一段程序到该软盘 的0磁道0磁头1扇区,这样用软盘启动时首先
执行的是我们所写的程序了。在这段程序中,具备这样一些功能:在DOS启动前抢先拦截INT
13H,驻留高端内存并监视INT
13H,判断是否读硬盘,如果是读硬盘就直接返回,这样就禁止了读硬盘,也就避
免了DOS读硬盘循环分区表造成的死机;同时拦截对软盘的读取,如果读软盘的0磁道 0磁头1扇
区,就改成读真正有引导程序和磁盘参数表的扇区,免得DOS在启动中找不到软盘的磁盘参数表而
死机。完成这些任务的同时,还要读取软盘真正的引导程序并把控制权交给 它。
该方法可以称为万能的,因为它在用软盘启动中,始终不与硬盘打交道,这样不
管你硬盘用什么方法加锁了,对DOS的启动都没有影响。当然,这样启动的机子是不认 硬盘的,
但这没有关系。你可在机子启动后,用Debug调出驻留高端内存的新INT
13H程序,将其改为只有一条直接执行旧INT 13H的语句,这样在Debug下可以用
INT
13H读取硬盘0柱面0磁头1扇区的内容,如果你有备份,将分区表参数恢复后再写
入0柱面0磁头1扇区,重新启动计算机就可以了。如果实在没有备份,去掉分区表中的 循环链,
用正常DOS启动盘重启机子后至少也可以重新对硬盘分区,不至于硬盘被锁住打不开了。
B. 怎样解除硬盘锁
解除硬盘锁方法如下:
1、有被加密的硬盘上会有一个锁的图标,如图所示:
C. 如何把电脑锁住硬盘锁住
许多电脑用户都见过或听说过,当硬盘中了所谓的“逻辑锁”后,无论是用软盘、硬盘,还是光盘都不能启动一些电脑。那么,“逻辑锁”到底是什么呢? 所谓“硬盘逻辑锁”是使用了某些DOS的一个错误制成的。它采用了“循环分区表”的技术,使某些有这个错误的DOS无法用任何设备启动,包括软盘等移动设 备。当DOS启动时,系统会自动搜索硬盘中的各个分区的信息,如类型、大小等,以使系统能够识别硬盘,分别分配为C、D、E、F等驱动器,并使用户能对其 进行各种操作。而“逻辑锁”正是利用了这一点,通过修改硬盘的分区表使分区表发生循环,即把扩展分区的第一个逻辑盘指向自身,使某些DOS系统启动时查找 分区时发生死循环而无法启动。 可见,这其实是DOS启动时的一个错误造成的。据说早在1992年,就有一个叫Mike的反病毒专家发现了此问题,并报告给了有此问题的DOS的生产厂 家,如生产PC-DOS的IBM公司、生产DR-DOS/NovellDOS的Novell公司、生产MS-DOS的微软公司等等。不久后,IBM、 Novell等公司纷纷宣布其DOS的新版本已彻底解决了此问题,唯有拥有MS-DOS的微软公司没有理会,导致MS-DOS的新版本,如6.x、7.x 等仍继续存在此问题。 然而,由于微软的MS-DOS使用得最为广泛,所以其影响和危害也最大。一旦用户的硬盘被“逻辑锁”锁住,各种微软的操作系统,如MS-DOS 5.x/6.x/7.x/8.0等的启动盘均无法启动,造成了硬件故障的假像,而且连许多高手对此都束手无策。由于这种现像非常可怕,将导致电脑无法使 用,所以许多人纷纷去寻找预防及解决的办法。其实,其解决起来并不困难,下面就介绍几种解决办法。 * 使用非MS-DOS的操作系统启动 由上文可知,“硬盘逻辑锁”主要对微软的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等,以彻底去掉硬盘上的“逻辑锁”,且硬盘上的数据不会受到任何损坏。 * 使用修复的MS-DOS启动盘启动 虽然MS-DOS启动盘在正常状态下不能在硬盘被锁住的情况下启动电脑,但是由于这仅仅是MS-DOS的启动文件IO.SYS中的一个BUG,所以只要修 复此BUG,MS-DOS启动盘就不会受到“逻辑锁”的影响而能正常启动了。不过,即使是修复BUG,也应该使用正确的方法。有人提到过通过修改 IO.SYS中的硬盘分区标记“55AA”的方法来解决问题,其实此法非常不好。因为,这种方法其实是让IO.SYS彻底忽略硬盘的存在,即通过跳过硬盘 的方法来启动软盘,这样一来,无论硬盘是否被锁住,用此启动软盘启动后硬盘都不能被识别,因此此启动盘就不能作为正常的MS-DOS启动盘了。相反,如果 采用正确的方法修复IO.SYS中的BUG的话,用此软盘启动后,若硬盘是好的,则能够正常识别,而即使是硬盘被“逻辑锁”锁住了,也可以像上面的方法 (即“使用非MS-DOS的操作系统启动”)中提到的用PC-DOS、DR-DOS、ROM-DOS、FreeDOS、PTS-DOS Pro等启动软盘启动后进行进一步的修复等操作。还有人提到过MS-DOS的某些低版本,如3.2版的启动盘以启动电脑。但这显然有很多缺点,一是旧版本 的DOS很难找到,二是由于其版本太低,功能很少,兼容性也很差;三是这些低版本的DOS自身不支持大硬盘(连32M都不支持)、逻辑分区等,甚至会对硬 盘造成真正的破坏,而且,MS-DOS 3.2等版本甚至连1.44M软盘都不认识。可见,用低版本的MS-DOS启动的方法并不是很可行。因此,使用好的方法修正高版本的MS-DOS的 IO.SYS中的BUG是很重要的。以MS-DOS 6.x的启动盘为例,只需用任何16进制编辑器(如PCTOOLS等)查找IO.SYS文件中的16进制字符串“07 72 03”,并将最后的“03”替换为“06”即可。其它一些版本的MS-DOS也可以使用类似的方法,比如MS-DOS 7.10的IO.SYS的具体修改方法请见 “中国DOS联盟联合论坛” 。这样一来,微软的MS-DOS启动盘也可以像其它各种DOS那样在硬盘被“逻辑锁”锁住的情况下正常启动了。 以上提到的方法都是解决“硬盘逻辑锁”的最直接的方法(即“使用不受‘逻辑锁'影响的DOS启动盘来启动电脑”),也是最好的办法。因此,只要制作一张上 面提到的任何一种启动盘(如PC-DOS 7.10启动盘、ROM-DOS 7.10启动盘、FreeDOS启动盘,或修复的MS-DOS启动盘等)就可以了。既可平时将此启动盘当作正常启动盘使用,而且当硬盘被锁住时则可用此启 动盘启动并解决问题。 有人还提到了其它的“方法”,如硬盘热插拔、DM低格等等,不仅麻烦、危险,而且会可能对硬盘中的所有数据造成破坏。比如硬盘热插拔后(需拆机箱且拿下硬 盘,并在启动后再重新装上硬盘,非常麻烦且危险),即使是用软盘启动成功了,此时硬盘将彻底不能被识别,包括各种硬盘工具也不能识别。如果用DM跳过 BIOS对硬盘进行低格,这样一来,硬盘上的所有数据将全部丢失,不可恢复,损失非常大。由此可见,硬盘热插拔等“方法”都是不实用也不可行的。 因此,只要找到了好的解决办法,并进行相应的操作,所谓的“硬盘逻辑锁”是可以轻易解决的,大家不妨一试。 0回答者: 小小媒婆 - 经理 四级
D. 硬盘被锁是什么意思
硬盘如果真的被锁住了,那是很麻烦的事情,不是很理解,应该是什么逻辑硬盘锁,你自己是弄不了的,
还是叫你哥哥吧。低格应该可以解决。
逻辑锁的原理是利用电脑启动机制进而达到锁住硬盘的效果,系统启动时(比如从软盘启动),先读取引导区,然后检查其后的各个分区表,全部检查完闭,才会启动,而中了逻辑锁的硬盘,会在硬盘引导区写入信息,强迫系统跳回,使其造成死循环。
了解了这点就知道怎么破解了
方法1
有很多启动盘在启动时不会对硬盘分区表进行检查,只要利用这种启动盘启动,再利用可以分区的软件对其重新分区就可以了(FDISK恐怕不行,但如果熟悉DEBUG一样可以删除分区),但这种情况我已经好多年没有遇到了(最早好像是KV300防盗版的发明,好早了)当时好像是用的迈拓分区工具进行破除的,版本更新不知多少次了。现在没有好的提供,你只能自己找了。
还有一个办法,是存在我的构想当中的,因为目前的环境原因我不能尝试,但可以提供给你:
方法2
找一个可以关闭识别硬盘的主板(大多数都可以,将硬盘所接的IDE设为禁用即可),然后就分区工具启动(如希捷的DM,网上有下载)在这个启动过程中,因为硬盘是检测不到的,所以可以顺利启动,而希捷的工具启动盘,在没有主板识别的情况下一样可以识别硬盘。只要删除分区,再重建分区即可了(DM的使用方法可以到网上找,难度不高)
真没想到现在还有被锁的硬盘(好怀念的说。。开玩笑)
希望你的硬盘真的只是中了锁,没有白花钱
又看了一下题目,原来是锁密码啊,只要用其它启动盘启云动再删除分区就可以了,另外可以提供给你一个DEBUG删除分区的方法《注意》只插你要处理的硬盘,不要插别的,用DOS盘启动
键入debug
-a
-mov
ax,0340
-mov
bx,0200
-mov
cs,0001
-mov
dx,0080
-int
13
-int
3
-回车
(不能省略哦)
-t
-g
-q
重启,分区表被清空,变为一块无分区的硬盘,随便你怎么处理了
E. 电脑硬盘锁住了怎么解锁
此问题无解,换硬盘吧。
硬盘密码锁常见于笔记本电脑,是直接对整个硬盘加密访问,如果不知道正确的密码,就无法对硬盘进行访问。
即使是去本本售后,他们也没办法帮你解开密码,所以实在想不起密码,唯一的办法就是换硬盘。
F. 如何解开笔记本硬盘锁
找专业解锁人员或是数据恢复人员用工具解锁吧,有工具很简单的。一般软件很难解锁,因为密码已经已经锁到硬盘或磁道中了。。。在专业就回答不上来了
G. 电脑如何锁硬盘
江民硬盘锁 呵呵 你出于什么目的锁硬盘 如果只是为了保护某些文件 可以用360的密盘之类的软件 如果不想叫人进系统直接到BIOS设个密码 系统也上密码
H. 电脑硬盘被锁了,怎么解决。!
解开硬盘逻辑死锁的一种有效方法
一·序言
不知道你是否曾碰到过从软盘和硬盘都启动不了计算机的情形?一般计算机的硬
盘分区表被病毒感染后,若不能启动机子,通常从软盘可以启动。但在严重的情形下 ,不但从硬
盘不能启动机子,就是从软盘也不能启动。有的恶毒的病毒就能使硬盘被死锁。笔者一次在自己
机子上玩弄硬盘锁时,就被锁住过一次。结果在硬盘下选择DOS或WIN95模 式启动机子都死机,在
软盘下用DOS启动也死机;在COMS中将硬盘类型选择None,虽然可以从软盘启动,但启动后没有硬
盘,使用软盘上的FDISK命令,想重新分区或格式化都没门。 弄得我一筹莫展。
本来,硬盘被锁住时,可以采用3.0以下的DOS版本启动机子,机子启动后虽然也
不认硬盘,但其不认的原因在于其管理不了现在的大硬盘,因此可以用Debug修改硬盘 分区表,
修改后可以启动。但在已进入WINDOWS的年代,3.0以下的DOS实难找到,即使找到,你的机子上恐
怕也因没有5寸软驱而不能使用。因此,最好的办法是编制一个程序来解决 这个问题。笔者通过
尝试和思考,找到一种比较实用的方法,可以轻松解开死锁的硬盘,当然也把自己的硬盘解开
了。下面,我将这种方法介绍出来。
二·硬盘锁住原理
硬盘锁住通常是对硬盘的分区表做手脚,因此首先应该了解硬盘的分区表。硬盘
分区表位于0柱面0磁头1区,这个扇区的前面200多个字节是主引导程序,后面从01BEH 开始的64
个字节是分区表。分区表共64字节,分为4栏,每栏16字节,用来描述一个分区。如果是用DOS的
FDISK程序分区后,最多只用两栏,第一栏描述基本的DOS分区,第二栏描述 扩展的DOS分区。
分区表一栏的结构与各字节的含义如下:
00H-标志活动字节,活动DOS分区为80H,其它为00H。
01H-本分区逻辑0扇区所在的磁头号。
02H-逻辑0扇区所在柱面中的扇区号。
03H-逻辑0扇区所在的柱面号。
04H-分区类型标志。
05H-本分区最后一个扇区的磁头号。
06H-最后一个扇区的扇区号。
07H-最后一个柱面的柱面号。
08H-硬盘上在本分区之前的扇区总数,用双字表示。
0CH-本分区的扇区总数,从逻辑0扇区计数,不含隐藏扇区,用双字表示。
在上面的介绍中给出的柱面号与扇区号虽然各占一个字节,但实际上扇区号用6位
表示,柱面号用10位表示,扇区号所在字节的最高两位实际上是柱面号的最高两位。
分区表的最后两个字节是分区表的有效标志,如果将其改变,将不能从硬盘启
动,这是一种简单的锁住硬盘的方法。解决的办法是从软盘启动,启动后硬盘仍然可以 使用。用
Debug或Noratn中的Diskedit软件将硬盘该分区表中的标志恢复,则从硬盘启动也没有问题了。锁
住硬盘的另一种方法是对分区参数做手脚,如果将分区参数全部变为0,则 启动时由于找不到分
区参数,从硬盘是没法启动,从软盘启动后也不认硬盘,如果你敲入盘符C并回车,将出现提示
Invalid
driver
specification。但所幸的是,毕竟可以启动机子,不认硬盘没关系,在A盘上用
DOS的Debug仍然可以读出硬盘0柱面0磁头1扇区的内容,修改后再写入0柱面0磁头1扇 区,重新启
动机子又没问题了。如果将分区表参数随意改为其它参数,则有可能不能用可以安装DOS的DOS系
统盘启动,按F3退出后将出现内存分配错误,不能装载DOS的命令解释 器COMMAND的提示,系统就
死机了,笔者就曾碰见过这种情形。但用一张格式化成系统盘的软盘则可以顺利启动,只要有
Debug,你仍然可以将分区表参数修改回去。可怕的事情是, 如果你不幸将分区表参数改成一个
循环链,即C盘的下一个分区指向D驱,D驱的下一个分区又指向C区,这样循环下去,DOS启动或
WIN95启动时由于无休止的读取逻辑驱动器,就只有 死机的份了。这是只要有硬盘存在,不管你
用软盘还是硬盘都没法启动机子了,由于不能启动是由于硬盘造成的,即使你将硬盘下到其它计
算机上,也没法使用,这样硬盘就彻底被 锁死了,笔者所遭遇就是此情形。不信,你只需将硬盘
0柱面0磁头1扇区的1D0H处改为1(如果你的D驱开始柱面号不够大,此处本来就为1),将1D1H处
改为0,表示D盘的开始柱面号 跟C盘一样,看看你的计算机还能不能启动,不过你在没有充分的
准备前绝不要试。
一个完整的硬盘锁程序,不过是重新改写0柱面0磁头1扇区的引导程序,并将分区
表破坏或故意制造一个循环分区表,而将真正的硬盘分区表参数和引导程序放在其它 隐藏扇区并
保护起来,如果启动时口令不对,则不能启动机子,口令对了则顺利启动。这种硬盘锁程序,情
形好的还可以用软盘启动;情形严重的就是连软盘也不能启动,硬盘真被 锁住。
三·解开硬盘锁的程序法
如果硬盘被锁死,是否真的就无法解开呢?当然不是。看看问题的症结所在,根
源在于DOS中的IO.SYS文件,它包含LOADER、IO1、IO2、IO3四个模块,其中IO1中包含 有一个很
关键的程序SysInt_I,它在启动中很固执,非要去读分区表,而且不把分区表读完誓不罢休。如
果碰上分区表是循环的,它就只有死机了。这是DOS的脆弱性和不完备性。其 实这也不能怪DOS,
因为DOS为了获得硬盘使用权,就必需读分区表参数,而且DOS还约定驱动器号不能超过26,只不
过没有考虑到此等循环分区表情形。一句话,机子不能启动不过是 DOS操作系统造成的,如果另
写一个操作系统,或许就能启动机子。当然这只是说个笑话。
明白了病因在于DOS,问题就好办了。DOS启动中不是要读硬盘分区表吗?我不让
你读分区表甚至连硬盘都不让你读,不就可以顺利启动了。的确是这样的,开硬盘锁 的程序实现
方法就是基于这个思想形成的。当然,这只有从软盘启动着手了。
看看计算机的启动过程,上电首先进行的多项硬件自测跟我们没有关系,我们关
心的只是它最开始和磁盘打交道时是干什么。如果选择从硬盘启动,则计算机和磁盘 最开始打交
道是将硬盘0柱面0磁头1扇区的内容读入内存0000:7C00处并跳到0000:7C00处执行;如果选择从
软盘启动,则计算机和磁盘最开始打交道是将A盘0磁道0磁头1扇区的内容 读入内存0000:7C00处
并跳到0000:7C00处执行,在执行过程中,计算机并不检查该扇区的内容是什么,只机械地执行
读命令,这使得许多系统型病毒得以生存。但利用这一点,恰 恰使我们的程序解锁法有了用武之
地。如果我们用DOS格式化一张可以启动机子的系统软盘,将该软盘的0磁道0磁头1扇区的内容移
到后面的空白扇区中,而重新写一段程序到该软盘 的0磁道0磁头1扇区,这样用软盘启动时首先
执行的是我们所写的程序了。在这段程序中,具备这样一些功能:在DOS启动前抢先拦截INT
13H,驻留高端内存并监视INT
13H,判断是否读硬盘,如果是读硬盘就直接返回,这样就禁止了读硬盘,也就避
免了DOS读硬盘循环分区表造成的死机;同时拦截对软盘的读取,如果读软盘的0磁道 0磁头1扇
区,就改成读真正有引导程序和磁盘参数表的扇区,免得DOS在启动中找不到软盘的磁盘参数表而
死机。完成这些任务的同时,还要读取软盘真正的引导程序并把控制权交给 它。
该方法可以称为万能的,因为它在用软盘启动中,始终不与硬盘打交道,这样不
管你硬盘用什么方法加锁了,对DOS的启动都没有影响。当然,这样启动的机子是不认 硬盘的,
但这没有关系。你可在机子启动后,用Debug调出驻留高端内存的新INT
13H程序,将其改为只有一条直接执行旧INT 13H的语句,这样在Debug下可以用
INT
13H读取硬盘0柱面0磁头1扇区的内容,如果你有备份,将分区表参数恢复后再写
入0柱面0磁头1扇区,重新启动计算机就可以了。如果实在没有备份,去掉分区表中的 循环链,
用正常DOS启动盘重启机子后至少也可以重新对硬盘分区,不至于硬盘被锁住打不开了。
四·程序及说明
1·下面是写入软盘0磁道0头1扇区的源程序key.com,程序用debug输入。
C>debug
-a100
100 CLI
101 XOR AX,AX
103 MOV DS,AX
105 MOV ES,AX
107 MOV SS,AX
109 MOV AX,7C00
10C MOV SP,AX
10E STI
10F MOV SI,AX
111 MOV DI,7E00
114 CLD
115 MOV CX,0200
118 REPNZ
119 MOVSB
11A JMP 0000:7E1F
11F MOV CX,0003
122 PUSH CX
123 MOV AX,0201;读启动软盘的引导扇区
126 MOV BX,7C00
129 MOV CX,4F01
12C MOV DX,0100
12F INT 13
131 POP CX
132 DEC CX
133 JNZ 0122
135 MOV AX,[004C];抢先获取INT 13H的位置
138 MOV [7E88],AX
13B MOV AX,[004E]
13E MOV [7E8A],AX
141 MOV AX,[0413]
144 DEC AX
145 MOV [0413],AX
148 MOV CL,06
14A SHL AX,CL
14C MOV ES,AX
14E XOR AX,AX
150 MOV DS,AX
152 MOV SI,7E6D;复制改写的INT 13H程序到高端内存
155 MOV DI,0000
158 MOV CX,0030
15B REPNZ
015C MOVSB
015D MOV AX,0000;将新INT 13H位置写入中断向量表
0160 MOV [004C],AX
0163 MOV AX,ES
0165 MOV [004E],AX
0168 JMP 0000:7C00
016D PUSHF;新INT 13H程序
016E CMP DX,0080;是否是硬盘
0172 JNZ 0176;不是硬盘则继续
0174 POPF
0175 IRET;是硬盘则直接返回
0176 CMP DX,+00;是否读软盘BOOT区?
0179 JNZ 0186
017B CMP CX,+01
017E JNZ 0186
0180 MOV CX,4F01;是则读79磁道1磁头1扇区
0183 MOV DX,0100
0186 POPF
0187 JMP 0000:0000;此处跳转去执行旧INT 13,
;旧INT 13H的位置由前面程序获得后写入。
N key.com
RCX
200
W
Q
2·程序的装载
在进行下面工作前,先用DOS格式化一张启动的系统盘,并保证没有坏扇区,最好
进行启动测试,确保其可以启动机子。由于现在机子上大多只有3寸软驱,因此选 择1.44M的3.5
寸软盘。然后用debug
key.com将程序key.com调入内存偏移地址为100H,同时在400H处写入一段装载程
序。即:
C>debug key.com
-a400
400 MOV CX,0003
403 PUSH CX
404 MOV AX,0201;将A盘引导程序读入内存1000H处
407 MOV BX,1000;为确保成功,首次采用重复读3次
40A MOV CX,0001
40D MOV DX,0000
410 INT 13
412 POP CX
413 DEC CX
414 JNZ 0403
416 MOV AX,0301;将已读入内存的软盘引导程序写入软盘
419 MOV BX,1000;最后一个磁道的首扇区
41C MOV CX,4F01
41F MOV DX,0100
422 INT 13
424 MOV AX,0301;将key.com程序写入软盘0磁道0磁头1扇区
427 MOV BX,0100
42A MOV CX,0001
42D MOV DX,0000
430 INT 13
432 INT 3
为保证万无一失,最好将软盘这两个扇区的内容重新读出来看一看,以保证写成
功了。做好这一切,保险的还是进行一次测试,即用该软盘启动一次机子,看能否成 功,若成功
启动,你就可以用循环分区表法锁住硬盘,看从正常DOS下能否启动,然后再用此软盘启动机子试
试,看看功效如何?
从该软盘启动后,不认硬盘,并且在高端内存驻留了新INT
13H程序,该段程序实际上是key.com中从16D到187部分。由于有此段程序存在,
在debug下也无法读硬盘,也就没法恢复硬盘分区表,因此机子启动后首先应修改这段 程序。现
在的机子基本内存通常都为640K,这样这段程序就位于内存中9FC0:0000处,在debug下,用
U9FC0:0显示这段程序,可以看到位于9FC0:001A处是一条跳转指令,该跳转指 令即转去执行最
原始的INT
13H。由于BIOS版本不一样,跳转指令指向的位置可能不一样,如笔者机子上是一
条JMP
F000:A5D4语句。这时在在debug下编写这样一语句:a9FC0:0 JMP
F000:A5D4。这样,对硬盘的禁写与禁读都不再起作用了,在debug下用INT
13H的2号子功能可以读出硬盘分区表,修改恢复后再用3号子功能将数据写回分区
表。退出debug,重新用正常DOS启动计算机,就可以了。
附带提一下,在正常DOS下,该软盘由于没有BOOT区,也就没有磁盘参数表,从而
不能使用,用DIR A:命令会出现General
failure reading drive A提示。不要理睬它,这并不影响它作特殊启动盘。
五·建议
为更好的保护你的硬盘,笔者建议你最好将你的硬盘分区表信息备份起来。备份
有两种方式,一种是以文件形式将硬盘每个逻辑盘的分区信息存储起来;另一种是将 分区信息备
份在硬盘隐藏扇区里。比如可以将0柱面0磁头1扇区备份在0柱面0磁头3扇区,将D盘开始柱面号0
磁头1扇区备份在该柱面0磁头3扇区,其它逻辑盘也如此。这种方法简单、 方便,也很可靠。用
NORTAN中的DISKEDI很容易操作和实现。有了备份分区表信息,就不怕破坏分区表的病毒了;再加
上我给你的程序,即使有人真锁住了你的硬盘,你也可以轻而易 举解开了。
I. 硬盘被锁了,要怎么解锁
可以使用U盘来进入系统解决,步骤如下:
第一步、插入USB接口后,在开机的时候按对应按键进入BIOS。
J. 什么是硬盘锁如何解开
解除硬盘逻辑锁的方法!
“硬盘逻辑锁”是一种很常见的恶作剧手段。中了逻辑锁之后,无论使用什么设 备都不能正常引导系统,甚至是软盘、光驱、挂双硬盘都一样没有任何作用。 “逻辑 锁”的上锁原理:计算机在引导DOS系统时将会搜索所有逻辑盘的顺序, 当DOS被引导时,首先要去找主引导扇区的分区表信息,然后查找各扩展分区的逻辑盘。 “逻辑锁修改了正常的主引导分区记录,将扩展分区的第一个逻辑盘指向自己,使得DOS在启动时查找到第一个逻辑盘后,查找下个逻辑盘总是找到自己, 这样一来就形成了死循环。给“逻辑锁”解锁比较容易的方法是“热拔插”硬盘电源。 就是在当系统启动时,先不给被锁的硬盘加电,启动完成后再给硬盘“热插”上电源线, 这样系统就可以正常控制硬盘了。为了降低危险程度,碰到“逻辑锁”后, 大家最好依照下面两种比较简单和安全的方法处理。
★UltraEdit★ 首先准备一张启动盘, 然后在其他正常的机器上使用二进制编辑工具(推荐UltraEdit)修改软盘上的IO.SYS文件(修改前记住先将该文件的属性改为正常),具体是在这个文件里面搜索第一个“55AA”字符串, 找到以后修改为任何其他数值即可。用这张修改过的系统软盘你就可以顺利地带着被锁的硬盘启动了。 不过这时由于该硬盘正常的分区表已经被破坏,你无法用“Fdisk”来删除和修改分区。
★DM★ 因为DM是不依赖于主板BIOS来识别硬盘的硬盘工具,就算在主板BIOS中将硬盘设为“NONE”,DM也可识别硬盘并进行分区和格式化等操作, 所以我们也可以利用DM软件为硬盘解锁。首先将DM拷到一张系统盘上,接上被锁硬盘后开机,按“Del”键进入BIOS设置,将所有IDE接口设为“NONE”并保存后退出,然后用软盘启动系统,系统即可“带锁”启动,因为此时系统根本就等于没有硬盘。启动后运行DM, 你会发现DM
可以识别出硬盘,选中该硬盘进行分区格式化就可以了。