电子文章 | 电子资料下载 | 家电维修 | 维修资料下载 | 加入收藏 | 全站地图
您现在所在位置:电子爱好者维修技术电脑技术硬件维修硬盘维修硬盘解锁

硬盘解锁

09-07 21:34:13 | http://www.5idzw.com | 硬盘维修 | 人气:730
标签:移动硬盘维修,http://www.5idzw.com 硬盘解锁,http://www.5idzw.com

四·程序及说明 

    1·下面是写入软盘0磁道0头1扇区的源程序key.com,程序用debug输入。 

C>debug 

-a100 

100  CLI 

101  XOR    AX,AX 

103  MOV    DS,AX 

105  MOV    ES,AX 

107  MOV    SS,AX 

109  MOV    AX,7C00 

10C  MOV    SP,AX 

10E  STI 

10F  MOV    SI,AX 

111  MOV    DI,7E00 

114  CLD 

115  MOV    CX,0200 

118  REPNZ 

119  MOVSB 

11A  JMP    0000:7E1F 

11F  MOV    CX,0003 

122  PUSH    CX 

123  MOV    AX,0201;读启动软盘的引导扇区 

126  MOV    BX,7C00 

129  MOV    CX,4F01 

12C  MOV    DX,0100 

12F  INT    13 

131  POP    CX 

132  DEC    CX 

133  JNZ    0122 

135  MOV    AX,[004C];抢先获取INT 13H的位置 

138  MOV    [7E88],AX 

13B  MOV    AX,[004E] 

13E  MOV    [7E8A],AX 

141  MOV    AX,[0413] 

144  DEC    AX 

145  MOV    [0413],AX 

148  MOV    CL,06 

14A  SHL    AX,CL 

14C  MOV    ES,AX 

14E  XOR    AX,AX 

150  MOV    DS,AX 

152  MOV    SI,7E6D;复制改写的INT 13H程序到高端内存 

155  MOV    DI,0000 

158  MOV    CX,0030 

15B  REPNZ 

015C  MOVSB 

015D  MOV    AX,0000;将新INT 13H位置写入中断向量表 

0160  MOV    [004C],AX 

0163  MOV    AX,ES 

0165  MOV    [004E],AX 

0168  JMP    0000:7C00 

016D  PUSHF;新INT 13H程序 

016E  CMP    DX,0080;是否是硬盘 

0172  JNZ    0176;不是硬盘则继续 

0174  POPF 

0175  IRET;是硬盘则直接返回 

0176  CMP    DX,+00;是否读软盘BOOT区? 

0179  JNZ    0186 

017B  CMP    CX,+01 

017E  JNZ    0186 

0180  MOV    CX,4F01;是则读79磁道1磁头1扇区 

0183  MOV    DX,0100 

0186  POPF 

0187  JMP    0000:0000;此处跳转去执行旧INT 13, 

                        ;旧INT 13H的位置由前面程序获得后写入。 

N  key.com 

RCX 

200 





2·程序的装载 

    在进行下面工作前,先用DOS格式化一张启动的系统盘,并保证没有坏扇区,最好进行启动测试,确保其可以启动机子。由于现在机子上大多只有3寸软驱,因此选择1.44M的3.5寸软盘。然后用debug 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启动计算机,就可以了。 

上一页  [1] [2] [3]  下一页

,硬盘解锁
关于《硬盘解锁》的更多文章