|
|
发表于 2004-5-25 23:14:03
|
显示全部楼层
[求助]如何破解小哨兵硬盘还原卡?
还原卡是小哨兵。
>
请问可以在Windows的MS-DOS窗口中使用Debug吗?我看Gavin写的文章中好像可以。
> 我在Windows的MS-DOS窗口中输入
> C:WINDOWS>debug
> -s f000:0 ffff 80 fa 80
> F000:3BD6
> F000:8930
> F000:8A59
> F000:95C1
> -q
> C:WINDOWS>debug
> -u f000:95c1
> F000:95C1 80FA80 CMP DL,80
> F000:95C4 7507 JNZ 95CD
> F000:95C6 B80001 MOV AX,0100
> F000:95C9 F9 STC
> F000:95CA CA0200 RETF 0002
> F000:95CD E82A0F CALL A4FA
> F000:95D0 52 PUSH DX
> F000:95D1 51 PUSH CX
> F000:95D2 56 PUSH SI
> F000:95D3 1E PUSH DS
> F000:95D4 06 PUSH ES
> F000:95D5 57 PUSH DI
> F000:95D6 FC CLD
> F000:95D7 52 PUSH DX
> F000:95D8 51 PUSH CX
> F000:95D9 53 PUSH BX
> F000:95DA 50 PUSH AX
> F000:95DB 55 PUSH BP
> F000:95DC 8BEC MOV BP,SP
> F000:95DE 814E1A0002 OR WORD PTR [BP+1A],0200
> -q
> C:WINDOWS>debug
> -e 0:4c c1 95 00 f0
> -q
> 但还原卡还是没有破解,到底是怎么回事???
>
> 1。手工运行Debug,最好在纯DOS下:
> Debug
> - a100
> - xor ax,ax 注意:
前面要加上功能号以选择Int13H内部的流程,避免进入其他不经过原始入口的流程
> - int 13
> - int3
> 然后输入t回车,不断的重复,直到显示的地址形如
F000:xxxx。记下这一地址,按q 回车退出。
这里假设了第一个F000:xxxx就是要找的入口,实际上可以在第2,3,4,。。。。出现,要自己判断一下,通常认为就是第一个。
> 在(0:13H*4)=0:4cH 处填入这个地址。
>
> 例如得到的地址是F000:1234
>
> 运行debug
> -e 0:4c 34 12 00 F0 =======>把得到的原始入口填入Int13H的中断向量表
> -q
>
> 注意:
>
>
填的时候要仔细,填错的话会死机。有些经过针对性处理的机器,要进一步鉴别。如在Int13内部调 用Int1ch. 如果在trace过程中发现如下代码 CMP
DL,80[意思是判断是否针对硬盘操作]
,可以尝试修改成不存在的硬盘号,比如改成CMP DL,FF。其他的都不要修改.试试
硬盘可写吗?如果可以的话就万事大吉了。另外,不能在Windows的虚拟DOS窗口中使用这种方法。如果在Windows的虚拟DOS窗口运行的话,请使用下一种方法。
>
>
> 2。Debug
> - s F000:0 ffff 80 fa 80
强行搜索BIOS区,通过比较入口代码找到原始入口点
>
>
你可能会发现有好几处。根据我的多次破解经验,通常这个地址在F000:8000以后。试验一下: 如果U F000:xxxx地址后发现代码类似
> -u F000:xxxx
> PUSHF
> CMP DL,80
> JZ ....
> .
> .
> .
> [有些不是这样,要注意鉴别。]
>
> 的话,填入向量表试试。通常破解就完成了。
>
>
>
我曾经发现经过以上中断还原后,仍不能写盘,或者死机的情况。经跟踪发现Int8H,Int 1CH,Int15H等向量对
> Int13H进行了向量保护。解决办法:把Int8H,Int1cH,Int15H
也改会原始中断点(也是BIOS中断)。尝试写盘成功
>
>
>
>
!!最好在纯DOS下,WINDOWS下不保险,另外这些方法对一下比较新的还原卡好象无效!!
>
>
> C:WINDOWS>debug
> -a100
> 1560:0100
> -xor ax,ax
> ^ Error
> -
>
> 你先在DOS下输入DEBUG,输入 a 100回车再输入xor ax,ax回车再int
13回车,再int3
> 然后输入e 0:4c c1 95 00 f0回车,最后输入q退出就可以了.
>
|
|