您现在的位置: 天下网吧 >> 网吧焦点 >> 个人电脑 >> 电脑维修 >> 存储设备 >> 正文

硬盘解锁

[作者:电脑店 来源:电脑店 时间:2012-11-24我来说两句
g key.com将程序key.com调入内存偏移地址为100H,同时在400H处写入一段装载程序。即: 

C>debug  key.com 

-a400 

400    MOV    CX,0003 

403    PUSH    CX 

404    MOV    AX,0201;将A盘引导程序读入内存1000H处 

407    MOV    BX,1000;为确保成功,首次采用重复读3次 

40A    MOV    CX,0001 

40D    MOV    DX,0000 

410    INT    13 

412    POP    CX 

413    DEC    CX 

414    JNZ    0403 

416    MOV    AX,0301;将已读入内存的软盘引导程序写入软盘 

419    MOV    BX,1000;最后一个磁道的首扇区 

41C    MOV    CX,4F01 

41F    MOV    DX,0100 

422    INT    13 

424    MOV    AX,0301;将key.com程序写入软盘0磁道0磁头1扇区 

427    MOV    BX,0100 

42A    MOV    CX,0001 

42D    MOV    DX,0000 

430    INT    13 

432    INT    3 

    为保证万无一失,最好将软盘这两个扇区的内容重新读出来看一看,以保证写成功了。做好这一切,保险的还是进行一次测试,即用该软盘启动一次机子,看能否成功,若成功启动,你就可以用循环分区表法锁住硬盘,看从正常DOS下能否启动,然后再用此软盘启动机子试试,看看功效如何? 

    从该软盘启动后,不认硬盘,并且在高端内存驻留了新INT 13H程序,该段程序实际上是key.com中从16D到187部分。由于有此段程序存在,在debug下也无法读硬盘,也就没法恢复硬盘分区表,因此机子启动后首先应修改这段程序。现在的机子基本内存通常都为640K,这样这段程序就位于内存中9FC0:0000处,在debug下,用U9FC0:0显示这段程序,可以看到位于9FC0:001A处是一条跳转指令,该跳转指令即转去执行最原始的INT 13H。由于BIOS版本不一样,跳转指令指向的位置可能不一样,如笔者机子上是一条JMP F000:A5D4语句。这时在在debug下编写这样一语句:a9FC0:0  JMP F000:A5D4。这样,对硬盘的禁写与禁读都不再起作用了,在debug下用INT 13H的2号子功能可以读出硬盘分区表,修改恢复后再用3号子功能将数据写回分区表。退出debug,重新用正常DOS启动计算机,就可以了。 

    附带提一下,在正常DOS下,该软盘由于没有BOOT区,也就没有磁盘参数表,从而不能使用,用DIR  A:命令会出现General failure reading drive A提示。不要理睬它,这并不影响它作特殊启动盘。 

五·建议 

    为更好的保护你的硬盘,笔者建议你最好将你的硬盘分区表信息备份起来。备份有两种方式,一种是以文件形式将硬盘每个逻辑盘的分区信息存储起来;另另一种是将分区信息备份在硬盘隐藏扇区里。比如可以将0柱面0磁头1扇区备份在0柱面0磁头3扇区,将D盘开始柱面号0磁头1扇区备份在该柱面0磁头3扇区,其它逻辑盘也如此。这种方法简单、方便,也很可靠。用NORTAN中的DISKEDI很容易操作和实现。有了备份分区表信息,就不怕破坏分区表的

本文来源:电脑店 作者:电脑店
相关文章
没有相关文章
我来说两句(请遵守法律法规)
声明
本文来源地址:
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系邮箱:support@txwb.com.
天下网吧·网吧天下