格子家园

 找回密码
 加入我们
查看: 1285|回复: 0

硬盘逻辑锁的小贴士

[复制链接]

4

主题

0

回帖

51

积分

论坛管理

Rank: 16Rank: 16Rank: 16Rank: 16

积分
51

论坛元老

发表于 2014-11-9 20:55:51 | 显示全部楼层 |阅读模式
    不知道你是否曾碰到过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、Linux或者非msdos系统法。
用制作的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,选择“搜索已丢失的分区(重建分区表)",就会自动找回丢失的分区,然后保存,退出软件,这样,硬盘已经修复完成,接下来就可以正常的安装操作系统了。
硬盘逻辑锁”主要对微软的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等,以彻底去掉硬盘上的“逻辑锁”,且硬盘上的数据不会受到任何损坏。

  2、外挂软件法

  这种方法原理都是绕过bios对硬盘的检测而直接用一些能够自己查找硬盘的软件来操纵硬盘。

  首先是DM,现在每一个硬盘厂商都有自己的DiskManager程序,而且都能放进一张软盘里,你可以下载一个使用,如果不清楚自己硬盘的牌子,也可以用IBM出的DM万用版,不过它对现在32G以上的大硬盘支持不好。我们先在bios里面将硬盘所在的IDE口设置为none,(要是你不知道哪个是,全部设为none也可以),然后用启动盘启动系统,启动完成后将软盘取出,放入装有DM软件的软盘,运行DM,它会检测到你的病硬盘的存在,然后将它重新分区就搞定了。DM具体用法比较简单,就不详细说了,不过对E文不太好的朋友可能有些困难,请教身边的高手吧。

  我们还可以使用低格软件,也是每一种硬盘都有自己的低格软件,但也有通用的Lformat程序(只有30多k),前面的做法相同,还是在bios里面屏蔽掉硬盘,用启动盘启动,然后换软盘运行低格程序对硬盘进行低级格式化,由于分区表只在硬盘最前列部分,所以估摸着格过前面的分区表部分就可以停止了,然后重新启动在bios里面将硬盘设出来,就可以像一块新的硬盘一样对它进行分区等。
  3、热插拔:
  这是最危险的一种方法,非常有可能将你的硬盘烧毁,所以请慎重。具体做法很简单,首先将硬盘的电源线拔掉,然后软盘启动系统,启动完成后再将硬盘的电源线插上,这时候系统就能够控制硬盘了,可以对它进行分区,恢复分区表等操作。我有一个菜鸟朋友就是在热插拔硬盘3次以后搞定的。不过此种方法存在危险,强烈不推荐使用,如因而损坏,本人概不负责。



您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

手机版|小黑屋|格子家园 ( 联系邮箱:121272135@qq.com )

GMT+8, 2024-5-18 18:48 , Processed in 0.053491 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表