巧解硬盘“逻辑锁”
发布时间:2007/8/23 0:00:00 访问次数:430
在《电子报》去年第45期上看到《硬盘被炸纪实》一文,觉得用作者的方法虽然可以恢复被“炸”的硬盘,但是“江民炸弹”软件并不是到处都有的,下面笔者将给出三种比较简单有效的方法,在这之前先分析一下被“炸”的原理。
计算机在引导DOS系统时将会搜索所有逻辑盘的顺序,当DOS被引导时,首先要去找主引导扇区的分区表信息,即位于硬盘的零头零柱面的第一个扇区的OBEH地址开始的地方,当分区信息开始的地方为80H时表示是主引导分区,其他的为扩展分区,主引导分区被定义为逻辑盘C盘,然后查找扩展分区的逻辑盘,被定义为D盘,以此类推找到E、F、G等,“逻辑锁”就是在此下手,修改了正常的主引导分区记录将扩展分区的第一个逻辑盘指向自己,DOS在启动时查找到第一个逻辑盘后,查找下个逻辑盘总是找到自己,这样一来就形成了死循环,这就是使用软驱、光驱、双硬盘都不能正常启动的原因。实际上这“逻辑锁”只是利用了DOS在启动时的一个小小缺陷,便令不少高手都束手无策。如果能找到DOS3.1启动盘那简直是你的福气,因为“逻辑锁”对DOS3.1以下的系统不起作用,可是它早被我们丢到垃圾箱里去了。既然知道了“逻辑锁”的“上锁”原理,要解锁也就比较容易,我们再来谈谈如何解锁:
方法一:可以采用“热拔插”硬盘电源的方法来处理
就是在当系统启动时,先不给被锁的硬盘插上电源线,等待启动完成后再给硬盘“热插”上电源线,这时如果硬盘没有烧坏的话,系统就可以控制硬盘了。当然这是一种非常危险的方法,大家不要轻易尝试,而且在有的主板中这种做法是行不通的。
方法二:修改DOS启动文件
首先准备一张DOS6.22的系统盘,拷上debug、fdisk、format等程序。然后在一台正常的机器上,用debug、pctools5.0或者windows下的ultraedit来修改软盘上的IO.SYS文件(修改前要去掉它的只读、隐藏属性),在这个文件里面搜索第一个“55aa”字符串,找到以后修改为任何别的数值即可。用这张修改过的系统软盘你就可以顺利地带着被锁的硬盘启动了。不过这时由于该硬盘正常的分区表已经被黑客程序给恶意修改了,你无法用fdisk来删除和修改分区,而且仍无法用正常的启动盘启动系统,这时你可以用debug来手工恢复。使用debug手工修复硬盘步骤如下:
a:\>debug
-a
-xxxx:100 mov ax,0201
(读一个扇区的内容)
-xxxx:103 mov bx,500
(设置一个缓存地址 )
-xxxx:106 mov cx,0001
(设置第一个硬盘的硬盘指针)
-xxxx:109 mov dx,0080
(读零磁头)
-xxxx:10c int 13
(硬盘中断)
-xxxx:10e int 20
-xxxx:0110
(退出程序返回到指示符)
-g (运行)
-d500 (查看运行后500地址的内容)
这时候会发现地址6BE开始的内容是硬盘分区的信息,发现此硬盘的扩展分区指向自己,这就使DOS或WINDOWS启动查找硬盘逻辑盘时进入死循环,在debug指示符下用E命令修改内存数据,具体如下:
E6BE .......................
Xx.0 xx.0 xx.0...........
...................................
.......................55 AA
55 AA表示硬盘有效的标记,不要修改,xx.0表示把以前的数据“xx”改成0,再用硬盘中断13把修改好的数据写入硬盘就可以了,具体如下:
a:\>debug
a:100 表示修改100地址的汇编指令
-xxxx100 mov ax,0301 (写硬盘一个扇区)
-xxxx (这里直接按回车)
-g (运行)
-q (退出)
然后运行 fdisk/mbr(重置硬盘引导扇区的引导程序),再重新启动电脑就行了。怎么样?用这种方法处理够简单的吧?而且这种方法还有一个好处就是可以保住盘上的数据!如果你不需要保住数据的话,下面还有更加简单的处理方法。
方法三:巧设BIOS,用DM解锁
大家知道DM软件是不依赖于主板BIOS的硬盘识别安装软件(所以在不能识别大硬盘的老主
在《电子报》去年第45期上看到《硬盘被炸纪实》一文,觉得用作者的方法虽然可以恢复被“炸”的硬盘,但是“江民炸弹”软件并不是到处都有的,下面笔者将给出三种比较简单有效的方法,在这之前先分析一下被“炸”的原理。
计算机在引导DOS系统时将会搜索所有逻辑盘的顺序,当DOS被引导时,首先要去找主引导扇区的分区表信息,即位于硬盘的零头零柱面的第一个扇区的OBEH地址开始的地方,当分区信息开始的地方为80H时表示是主引导分区,其他的为扩展分区,主引导分区被定义为逻辑盘C盘,然后查找扩展分区的逻辑盘,被定义为D盘,以此类推找到E、F、G等,“逻辑锁”就是在此下手,修改了正常的主引导分区记录将扩展分区的第一个逻辑盘指向自己,DOS在启动时查找到第一个逻辑盘后,查找下个逻辑盘总是找到自己,这样一来就形成了死循环,这就是使用软驱、光驱、双硬盘都不能正常启动的原因。实际上这“逻辑锁”只是利用了DOS在启动时的一个小小缺陷,便令不少高手都束手无策。如果能找到DOS3.1启动盘那简直是你的福气,因为“逻辑锁”对DOS3.1以下的系统不起作用,可是它早被我们丢到垃圾箱里去了。既然知道了“逻辑锁”的“上锁”原理,要解锁也就比较容易,我们再来谈谈如何解锁:
方法一:可以采用“热拔插”硬盘电源的方法来处理
就是在当系统启动时,先不给被锁的硬盘插上电源线,等待启动完成后再给硬盘“热插”上电源线,这时如果硬盘没有烧坏的话,系统就可以控制硬盘了。当然这是一种非常危险的方法,大家不要轻易尝试,而且在有的主板中这种做法是行不通的。
方法二:修改DOS启动文件
首先准备一张DOS6.22的系统盘,拷上debug、fdisk、format等程序。然后在一台正常的机器上,用debug、pctools5.0或者windows下的ultraedit来修改软盘上的IO.SYS文件(修改前要去掉它的只读、隐藏属性),在这个文件里面搜索第一个“55aa”字符串,找到以后修改为任何别的数值即可。用这张修改过的系统软盘你就可以顺利地带着被锁的硬盘启动了。不过这时由于该硬盘正常的分区表已经被黑客程序给恶意修改了,你无法用fdisk来删除和修改分区,而且仍无法用正常的启动盘启动系统,这时你可以用debug来手工恢复。使用debug手工修复硬盘步骤如下:
a:\>debug
-a
-xxxx:100 mov ax,0201
(读一个扇区的内容)
-xxxx:103 mov bx,500
(设置一个缓存地址 )
-xxxx:106 mov cx,0001
(设置第一个硬盘的硬盘指针)
-xxxx:109 mov dx,0080
(读零磁头)
-xxxx:10c int 13
(硬盘中断)
-xxxx:10e int 20
-xxxx:0110
(退出程序返回到指示符)
-g (运行)
-d500 (查看运行后500地址的内容)
这时候会发现地址6BE开始的内容是硬盘分区的信息,发现此硬盘的扩展分区指向自己,这就使DOS或WINDOWS启动查找硬盘逻辑盘时进入死循环,在debug指示符下用E命令修改内存数据,具体如下:
E6BE .......................
Xx.0 xx.0 xx.0...........
...................................
.......................55 AA
55 AA表示硬盘有效的标记,不要修改,xx.0表示把以前的数据“xx”改成0,再用硬盘中断13把修改好的数据写入硬盘就可以了,具体如下:
a:\>debug
a:100 表示修改100地址的汇编指令
-xxxx100 mov ax,0301 (写硬盘一个扇区)
-xxxx (这里直接按回车)
-g (运行)
-q (退出)
然后运行 fdisk/mbr(重置硬盘引导扇区的引导程序),再重新启动电脑就行了。怎么样?用这种方法处理够简单的吧?而且这种方法还有一个好处就是可以保住盘上的数据!如果你不需要保住数据的话,下面还有更加简单的处理方法。
方法三:巧设BIOS,用DM解锁
大家知道DM软件是不依赖于主板BIOS的硬盘识别安装软件(所以在不能识别大硬盘的老主