|
|
楼主 |
发表于 2006-7-26 21:34:58
|
显示全部楼层
以MS-DOS 6.22的启动盘为例,只需用任何16进制编辑器(如PCTOOLS等)查找IO.SYS文件中的16进制字符串“07 72 03”,并将最后的“03”替换为“06”即可。其它版本的MS-DOS也可以使用类似的方法。这样一来,微软的MS-DOS启动盘也可以像其它各种DOS那样在硬盘被“逻辑锁”锁住的情况下正常启动了。
这是MS-DOS 6.22的IO.SYS中的相关代码:
156A:2A00 8A7701 MOV DH,[BX+01]
156A:2A03 8A165C17 MOV DL,[175C]
156A:2A07 BB0002 MOV BX,0200
156A:2A0A B80102 MOV AX,0201
156A:2A0D CD13 INT 13 --- 读取硬盘扇区
156A:2A0F 7210 JB 2A21
156A:2A11 BBC203 MOV BX,03C2
156A:2A14 06 PUSH ES
156A:2A15 E80A00 CALL 2A22
156A:2A18 07 POP ES
156A:2A19 7203 JB 2A1E --- 要修改的就是这里,改成“JB 2A21”就可以了。即一发现小于上一个值的话,就跳出循环,而不是被“逻辑锁”锁死在这儿
156A:2A1B E84100 CALL 2A5F
156A:2A1E E973FF JMP 2994
156A:2A21 C3 RET
156A:2A22 57 PUSH DI
156A:2A23 53 PUSH BX
156A:2A24 1E PUSH DS
156A:2A25 06 PUSH ES
156A:2A26 26 ES:
156A:2A27 803F01 CMP BYTE PTR [BX],01
156A:2A2A 741B JZ 2A47
156A:2A2C 26 ES:
156A:2A2D 803F04 CMP BYTE PTR [BX],04
156A:2A30 7415 JZ 2A47
|
|