硬盘保护卡破解--小哨兵篇
作者:Ym 2002.6.15 23:43:50 email:yaomingmail@sina.com
现在硬盘保护卡日益盛行,网吧,学校随处可见,本人就遇到几种类型和品牌的,小哨兵是其中技术比较完善的一种.早期在学校机房遇到的看门狗,就存在严重的技术缺陷,只要修改cmos中的硬盘参数即可破解,所以这里我想着重谈谈小哨兵的解法,当然对付看门狗的方法在这里是行不通的,为此我琢磨了很长时间,直到我前几天在网上看到一篇破解硬盘保护卡的文章,给我一个崭新的破解思路,但事实上按原文的方法还是不可破解小哨兵,但离成功仅一步之遥,这篇文章就算是一个补充说明,希望能对大家有点帮助.
首先本人通过阅读那篇文章后,得知保护卡是通过修改中断向量来达到保护硬盘不被真正写入的,其中int13是关键,同时还修改了时钟中断来达到反跟踪,恢复中断向量表的目的.小哨兵拦截了int13的处理程序,将自己的程序挂到上面,这也是无法写进数据的原因所在,知道了这个,你一定会说我们只要把bios的int13的程序地址,在dos下填入中断向量表不就大功告成了,其实不然,小哨兵早以想到了这一点,它会利用早以被它修改过的时钟中断定时检查中断向量表,它一旦发现0000:4c+3处为f0即会修改为别的值.原文章的建议是将时钟中断一一还原,本人觉得太过烦琐,而且出错的可能性大,不可取.经过尝试将原中断处理程序的第一条语句改为0255:0148(此不一定) jmp f000:xxxx即可.
这里还要谈谈xxxx的获取,这一步也是关键,我一开始用debug t跟踪了几次都出现了死机,通过观察每次死机地址都不同,怀疑小哨兵利用时钟中断反跟踪,但每次跟踪都给了一段时间后才死机,所以在进入int13后你要在这段时间内,以最快的速度,t到f000:xxxx
处,当屏幕上t出第一个f000为段的地方时,后面的偏移量即为我们要找的xxxx.记住它,相信这时你已经死机了,重新启动,f8进dos.
debug
-d 0:4c
0000:004c 48 01 55 02
-a 0255:0148
-0255:0148 jmp f000:xxxx
-q
c:\>cd windows
c:\windows>win
OK,现在改个桌面,拷个游戏进去,再重新启动试一下,还在吧,游戏可要藏好哟,祝你愉快!