二、如何解除还原卡的保护
通过以上原理分析,我们发现保护程序是通过修改中断向量来达到保护硬盘不被真正写入的,其中int13是关键,它拦截了int13的处理程序,将自己的程序挂到上面,这也是无法写进数据的原因所在,有的卡同时还修改了时钟中断来达到反跟踪,利用早已被它修改过的时钟中断定时检查中断向量表,一旦发现修改为别的值。就会一一还原。从表面看还原卡把自己隐藏的很好,但是我们可以通过最底层的I/O端口读写0道,找到原始 INT13入口,一切问题便迎刃而解。由于Windows 98/Me和Windows 2000/XP的启动方式和工作原理不同,下面分别讲述破解方法:
对于Windows 98/Me系统,下面是找INT13入口的方法,我姑且称它们为“独孤七剑”:
剑式一: 手工运行Debug
开机按F8,进入纯DOS环境,出现提示符C:\>,键入debug,敲回车键,显示如下。
在命令提示符“-”下,键入如图所示内容:
- a 100 <Enter> //进入汇编模式
- 0B2A:100 xor ax,ax //输入一条汇编指令
- 0B2A:102 int 13 //调用int 13中断
- 0B2A:104 int 3 //调用int 3中断
- 0B2A:105 //此处直接回车
- t //此处直接回车
然后输入t回车,不断的重复,直到显示的地址形如 F000:xxxx,后面的指令一般为
mov dl,80,记下这一地址,按q 回车退出。这些操作步骤的作用是寻找原始的INT13入口(即
INT13中断程序开始的地方)。在(0:13H*4)=0:4cH 处填入这个地址。例如得到的地址是F000:9854,再次运行debug,输入:
-e 0:4c 54 98 00 F0 //将数据“54 98 00 F0”写入地址0:4c开始的4个字节中,破解完成
-q
在提示符C:\>下键入“win”
C:\>cd windows <Enter>
C:\windows>win <Enter>
注意:破解完成后,不要重新启动,而是直接进入Windows系统,这次在Windows系
统中的一切操作都会被还原卡存储起来。但下一次再进入系统时,还需要重写地址0:4c,才
可以让还原卡存储以上内容。并且填的时候要仔细,填错的话会死机。通过T命令得到的
地址在写入内存0:4c时,反写获得的地址(如地址是F000:9854,就应该反写成54 98 00 F0)。
剑式二:
在采用方法一的基础上,执行T命令时,如果在跟踪过程中发现如下代码 CMP DL,80,将其修改成CMP DL,FF 别的都不要修改,也可以破解硬盘还原卡的保护。另外,不能在Windows的虚拟DOS窗口中使用这种方法。如果在Windows的虚拟DOS窗口运行的话,请使用下一种方法。
剑式三:
- Debug
- S F000:0 FFFF 80 fa 80
你可能会发现有好几处。试验一下: 如果U F000:xxxx地址后发现代码类似
-u F000:xxxx <Enter>
PUSHF
CMP DL,80
JZ ....
的话,填入向量表,通常破解就完成了。
例如得到的地址是F000:9854,则
- e 0:4c 54 98 00 F0 <Enter>