由ADM加锁的硬盘不用密码解开

Author: 成运 Date: 1997-01-01

  我所用的微机用ADM把硬盘分成了两个区(C盘与D盘),其中C盘为只读盘,D盘设为可读写盘。
  通常,要解除ADM对硬盘的加锁(由只读改变为可读写),须知道加锁时设置的密码或用软盘启动机器。一次我在上机时,发现机器的主引导区感染了病毒,必须及时清除。可当时我手头既无启动盘也不知道开锁密码,只好用对付病毒的方法分析了机器里面的一些系统信息,终于找到了一种简单的开锁方法,顺利清除了主引导区内的病毒,而且又给C盘加了锁,现将操作步骤介绍如下:
  一、编开锁小程序并运行
  启动机器进入debug命令,执行如下操作:
  -a?
  xxxx:0100 xor ax,ax?
  xxxx:0102 mov ds,ax?
  xxxx:0104 mov ax,[07b4]?
  xxxx:0107 mov [0d4c],ax?
  xxxx:010a mov ax,[07b6]?
  xxxx:010a mov [004e],ax?
  xxxx:0110 int 20濯?
  xxxx:0112?
  -g?
  -q?
  若内存里有引导型病毒,上述程序的运行可使内存里的病毒程序失去活力。
  二、清除主引导区病毒
  用FDISK/MBR命令即可。
  三、重新对C盘加锁
  热启动一次机器即可。
  该方法所依据的原理是:ADM是通过截获INT 13H来实现对硬盘写保护的,而INT 13H中断向量最初是由BIOS设置的,机器引导DOS时,DOS接管INT 13H中断,为其增加了DMA超界错、ECC纠正数据错的两项错误妥善处理功能,以及对高密度软盘换盘的检测功能。DOS接管INT 13H中断时把原由BIOS设置的中断向量固定存放于0000:07b4开始的四个字节中(DOS 3.3、DOS 5.0、DOS 6.x等均如此),因此,我们可以简单地用原BIOS设置的INT 13H中断向量去覆盖由ADM设置的INT 13H中断向量,从而解除了ADM对硬盘的加锁。