新的引导程序清单 南京燕士海 1993-11-05 新的引导程序清单 1299:0100 FACL I 1299:0101 2BC0 SUB AX,AX 1299:0103 8ED 0 MOV SS,AX 1299:0105 8EC0 MOV ES, AX 1299:0107 8ED8 MOV DS, AX 1299:0109 B8007CMOV AX, 7C00 1299:010C8BE0 MOV SP, AX 1299:010E FBSTI 1299:010F 8BF0 MOV SI, AX;代码下移200H 1299:0111 BF007E MOV DI, 7E00 1299:0114 FCCLD 1299:0115 B90001 MOV CX, 0100 1299:0118 F3 REPZ 1299:0119 A5 MOVSW 1299:011A E90002 JMP 031D 1299:011DB80102 MOV AX, 0201;读取原主引导记录 1299:0120 B90300 MOV CX, 0003 1299:0123 BA8000 MOV DX, 0080 1299:0126 BB007CMOV BX, 7C00 1299:0129 CD13 INT 13 1299:012B90 NOP 1299:012C90 NOP 1299:012D90 NOP 1299:012E BF0200 MOV DI, 0002 ; 二次机会输入PASSWORD 1299:0131 BE0C7F MOV SI, 7F0C 1299:0134 B90C00 MOV CX, 000C 1299:0137 ACLODSB 1299:0138 BB0700 MOV BX, 0007 1299:013BB40E MOV AH, 0E 1299:013DCD10 INT 10 1299:013F E2F5 LOOP 0137 ; 显示PASSWORD 1299:0141 BE187F MOV SI, 7F18 1299:0144 BD0300 MOV BP, 0003 1299:0147 B400 MOV AH, 00 1299:0149 CD16 INT 16 1299:014B3804 CMP [SI] , AL ; 判断PASSWORD正确否 1299:014D7506 JNZ 0155 1299:014F 46 INCSI 1299:0150 4DDECBP 1299:0151 75F4 JNZ 0147 1299:0153 EB0E JMP 0163 1299:0155 BB0700 MOV BX, 0007 1299:0158 B40E MOV AH, 0E 1299:015ABO58 MOV AL, 58 1299:015CCD10 INT 10 1299:015E 4F DECDI 1299:015F 75D0 JNZ 0131 1299:0161 EBFE JMP 0161 ; PASSWORD错, 死机 1299:0163 BE4C00 MOV SI, 004C ; 填充INT 13跳转入口 1299:0166 BFC77E MOV DI, 7EC7 1299:0169 ADLODSW 1299:016AABSTOSW 1299:016BADLODSW 1299:016CABSTOSW 1299:016DBE2000 MOV SI, 0020 ; 填充INT8跳转入口 1299:0170 BFFD7E MOV DI, 7EFD 1299:0173 ADLODSW 1299:0174 ABSTOSW 1299:1075 ADLODSW 1299:0176 ABSTOSW 1299:0177 BF0000 MOV DI, 0000 ; INT13和INT8增添部分推向内存高端 1299:017ABEB17E MOV SI, 7EB1 1299:017DB95200 MOV CX, 0052 1299:0180 8A04 MOV AL, [SI] 1299:0182 1E PUSH DS 1299:0183 50 PUSH AX 1299:0184 B80090 MOV AX, 9000 1299:0187 8ED8 MOV DS, AX 1299:0189 58 POP AX 1299: 018A8805 MOV [DI] , AL 1299:018C1F POP DS 1299:018D47 INCDI 1299 018E 46 INCSI 1299:018F E2EF LOOP 0180 1299:0191 BB4C00 MOV BX, 004C ; 修改INT13向量 1299:0194 D80000 MOV AX, 0000 1299:0197 8907 MOV [BX] , AX 1299:0199 B80090 MOV AX, 9000 1299:019C894702 MOV [BX+ 02] , AX 1299:019F B81A000 MOV AX, 001A 1299:01A2 BB2000 MOV BX, 0020 ; 修改INT8向量 1299:01A5 8907 MOV [BX] , AX 1299:01A7 B80090 MOV AX, 9000 1299:01AA 894702 MOV [BX+ 02] , AX 1299:01ADEB52 JMP 0201 1299:01AF 90 NOP 1299:01B0 90 NOP 1299:01B1 9CPUSHF ; INT13补充内容 1299:01B2 81FA8000 CMP DX, 0080 1299:01B6 750DJNZ 01C5 1299:01B8 83F901 CMP CX, + 01 1299:01BB7508 JNZ 01C5 1299:01BD80FC02 CMP AH, 02 1299:01C0 7503 JNZ 01C5 1299:01C2 B90300 MOV CX, 0003 1299:01C5 9DPOPF ; 跳转到INT13入口 1299:01C6 EA00000000 JMP 0000:0000 ; 地址待填 1299:01CB9CPUSHF ; INT8补充内容 1299:01CC1E PUSH DS 1299:01CD56 PUSH SI 1299:01CE 57 PUSH DI 1299:01CF 50 PUSH AX 1299:01D0 31C0 XOR AX, AX 1299:01D2 8ED8 MOV DS, AX 1299:01D4 06 PUSH ES 1299:01D5 8EC0 MOV ES, AX 1299:01D7 BE8400 MOV SI, 0084 1299:01DAADLODSW 1299:01D8 3D6014 CMP AX.1460 ; 判断INT21偏移地址是否正确 1299:01DE 7506 JNZ 01E6 1299:01E0 ADLODSW 1299:01E1 3D7002 CMP AX, 0270 ; 判断INT21段地址 1299:01E4 7410 JZ 01F6 1299:01E6 B80703 MOV AX, 0E07 ; 报警 1299: 01E9 CD10 INT 10 1299:01EBBF8400 MOV DI, 0084 1299:01EE B86014 MOV AX, 1460 1299:01F1 ABSTOSW 1299:01F2 B87002 MOV AS, 0170 1299:01F5 ABSTOSW ; 重新填充INT21向量 1299:01F6 07 POP ES 1299:01F7 58 POP AX 1299:P1F8 5F POP DI 1299:01F9 5E POP SI 1299:01FA1F POP DS 1299:01FB9DPOPF ; 跳转到INT8入口 1299: 01FC EA00000000 JMP 0000:0000 ; 地址待填 1299: 0201 B80D0E MOV AX, 0E0D 1299: 0204 CD10 INT 10 1299: 0206 EA007C0000 JMP 0000: 7C00 ; 跳转到原主引导记录 该程序的安装过程为,首先执行程序1,MOVMBT.COM,将硬盘主引导程序搬至0头0柱3扇区,然后执行程序2,SETNMBT.COM,就可以将新主引导程序写入0头0柱1扇区。以后硬盘启动后便自动执行新主引导程序的各个功能。 在安装完新主引导程序后,如果软盘启动想进入硬盘,可以执行程序3,UNLOCKH.COM,程序4,LOCKH.COM可以重新锁住硬盘。程序1:MOVMBT.COM mov ax,0201h mov dx,0080h movbx,200h movcx,0001 int13h movax,0301h int13h int20h 程序2: SETNMBT.COM100 dbnmbt, bat, 0 mov dx, 100h mov ax, 3d00h mov int 21hh mov bx, ax mov dx, 200h mov cx, 200h mov ah, 3fh int 21h mov ah, 3eh int 21h mov ax, 0301h mov cx, 0001h mov dx, 0080h mov bx, 200h int 13h int 20h 程序3: UNLOCKH.COM mov ax, 0201h mov dx, 0080h mov cx, 0001h mov bx, 200h int 13h mov al, 04h mov [3c2] , al mov ax, 0301h int 13h int 20h 注: 该程序必须在软盘启动后执行。 程序4: LOCKH.COM mov ax, 0201h mov dx, 0080h mov cx, 0001h mov bx, 200h int 13h mov al, 0 mov [3c2] , al mov ax, 0301h int 13h int 20h 注: 该程序也必须在软盘启动后执行。 (南京燕士海)