硬盘逻辑锁
不知道你是否曾碰到过bios里面能够检测到硬盘,但是你从软盘和硬盘都启动不了计算机的情形?也许这时候你就会认为是硬盘坏掉了,可实际上,很有可能是你的硬盘中了逻辑锁。
硬盘逻辑锁总共有三种,本质都是对硬盘的分区表作了修改,以前只是一些黑客程序使用它,开始大范围对计算机造成危害是在臭名昭著的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次以后搞定的。不过此种方法存在危险,强烈不推荐使用,如因此损坏,本人概不负责。
其实最好的情况是你有分区表备份,那恢复起来就比较容易了,而且数据也不会丢失。所以说呢,亡羊补牢固然不错,但是如果能事先就做好了保险工作,那就不用愁了。

作者:goalfly “逻辑锁”的上锁原理:计算机在引导DOS系统时将会搜索所有逻辑盘的顺序,当DOS被引导时,首先要去找主引导扇区的分区表信息,然后查找各扩展分区的逻辑盘。“逻辑锁”修改了正常的主引导分区记录,将扩展分区的第一个逻辑盘指向自己,使得DOS在启动时查找到第一个逻辑盘后,查找下个逻辑盘总是找到自己,这样一来就形成了死循环。

  给“逻辑锁”解锁比较容易的方法是“热拔插”硬盘电源。就是在当系统启动时,先不给被锁的硬盘加电,启动完成后再给硬盘“热插”上电源线,这样系统就可以正常控制硬盘了。这是一种非常危险的方法,为了降低危险程度,碰到“逻辑锁”后,大家最好依照下面两种比较简单和安全的方法处理。
★UltraEdit★

  首先准备一张启动盘,然后在其他正常的机器上使用二进制编辑工具(推荐UltraEdit)修改软盘上的IO.SYS文件(修改前记住先将该文件的属性改为正常),具体是在这个文件里面搜索第一个“55AA”字符串,找到以后修改为任何其他数值即可。用这张修改过的系统软盘你就可以顺利地带着被锁的硬盘启动了。不过这时由于该硬盘正常的分区表已经被破坏,你无法用“Fdisk”来删除和修改分区,但是此时可以用前面介绍的关于分区表恢复的方法来处理。
★DM★

  因为DM是不依赖于主板BIOS来识别硬盘的硬盘工具,就算在主板BIOS中将硬盘设为“NONE”,DM也可识别硬盘并进行分区和格式化等操作,所以我们也可以利用DM软件为硬盘解锁。

  首先将DM拷到一张系统盘上,接上被锁硬盘后开机,按“Del”键进入BIOS设置,将所有IDE接口设为“NONE”并保存后退出,然后用软盘启动系统,系统即可“带锁”启动,因为此时系统根本就等于没有硬盘。启动后运行DM,你会发现DM可以识别出硬盘,选中该硬盘进行分区格式化就可以了。这种方法简单方便,但是有一个致命的缺点,就是硬盘上的数据保不住了^_^。

Windows_MAC | 评论(0) | 引用(0) | 阅读(701)
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]