111 lines
3.4 KiB
Plaintext
111 lines
3.4 KiB
Plaintext
How to unprotect DIAGRAM MASTER, version 5.01:
|
||
|
||
First, MAKE A COPY of the original DIAGRAM MASTER diskette. NEVER tamper with
|
||
your original disk!
|
||
|
||
Using the COPY, RENAME DM.EXE to DM.XEX
|
||
|
||
DEBUG DM.XEX
|
||
|
||
At locations 4332, 4392, and 43B7 is the code which checks drive A for the
|
||
presence of the signature sector. This code typically looks like:
|
||
|
||
MOV AL,01
|
||
MOV AH,04
|
||
INT 13
|
||
|
||
We will patch the program so that it thinks all is well and doesn't bother to
|
||
check the floppy:
|
||
|
||
-u 4320
|
||
xxxx:4320 16 PUSH SS
|
||
xxxx:4321 2A00 SUB AL,[BX+SI]
|
||
xxxx:4323 B600 MOV DH,00
|
||
xxxx:4325 B500 MOV CH,00
|
||
xxxx:4327 B101 MOV CL,01
|
||
xxxx:4329 B001 MOV AL,01
|
||
xxxx:432B B404 MOV AH,04
|
||
xxxx:432D 06 PUSH ES
|
||
xxxx:432E 33DB XOR BX,BX
|
||
xxxx:4330 8EC3 MOV ES,BX
|
||
xxxx:4332 CD13 INT 13 <---here's one!
|
||
xxxx:4334 07 POP ES
|
||
xxxx:4335 7338 JNB 436F
|
||
xxxx:4337 80FC06 CMP AH,06
|
||
xxxx:433A 74E3 JZ 431F
|
||
xxxx:433C 80FC80 CMP AH,80
|
||
xxxx:433F 7405 JZ 4346
|
||
|
||
-u 4380
|
||
xxxx:4380 2A00 SUB AL,[BX+SI]
|
||
xxxx:4382 8A362900 MOV DH,[0029]
|
||
xxxx:4386 8A2E2800 MOV CH,[0028]
|
||
xxxx:438A 8A0E2400 MOV CL,[0024]
|
||
xxxx:438E B001 MOV AL,01
|
||
xxxx:4390 B404 MOV AH,04
|
||
xxxx:4392 CD13 INT 13 <---here's one!
|
||
xxxx:4394 59 POP CX
|
||
xxxx:4395 7308 JNB 439F
|
||
xxxx:4397 E2E4 LOOP 437D
|
||
xxxx:4399 59 POP CX
|
||
xxxx:439A A33A00 MOV [003A],AX
|
||
xxxx:439D EB2E JMP 43CD
|
||
xxxx:439F B90200 MOV CX,0002
|
||
|
||
-u 43b3
|
||
xxxx:43B3 B001 MOV AL,01
|
||
xxxx:43B5 B404 MOV AH,04
|
||
xxxx:43B7 CD13 INT 13 <---here's one!
|
||
xxxx:43B9 59 POP CX
|
||
xxxx:43BA 80FC04 CMP AH,04
|
||
xxxx:43BD 740B JZ 43CA
|
||
xxxx:43BF E2E1 LOOP 43A2
|
||
xxxx:43C1 59 POP CX
|
||
xxxx:43C2 C7063A00FFFF MOV WORD PTR [003A],FFFF
|
||
xxxx:43C8 EB03 JMP 43CD
|
||
xxxx:43CA 59 POP CX
|
||
xxxx:43CB E2AC LOOP 4379
|
||
xxxx:43CD C3 RET
|
||
xxxx:43CE 55 PUSH BP
|
||
xxxx:43CF 8BEC MOV BP,SP
|
||
xxxx:43D1 1E PUSH DS
|
||
xxxx:43D2 B8E703 MOV AX,03E7
|
||
|
||
So here goes:
|
||
|
||
-a 4332
|
||
xxxx:4332 NOP ;get rid of disk interrupt
|
||
xxxx:4333 NOP
|
||
xxxx:4334 <cr> ;to break out of assembly
|
||
|
||
-a 4335 ;to "fix" the jump instruction
|
||
xxxx:4335 JMP 436F
|
||
xxxx:4337 <cr> ;break out
|
||
|
||
-a 4392
|
||
xxxx:4392 NOP ;get rid of disk interrupt
|
||
xxxx:4393 NOP
|
||
xxxx:4394 <cr> ;break out
|
||
|
||
-a 4395
|
||
xxxx:4395 JMP 439F ;fix the jump
|
||
xxxx:4397 <cr> ;break out
|
||
|
||
-a 43B7
|
||
xxxx:43B7 NOP ;get rid of disk interrupt
|
||
xxxx:43B8 NOP
|
||
xxxx:43B9 <cr> ;break out
|
||
|
||
-a 43BD
|
||
xxxx:43BD JMP 43CA ;fix last jump
|
||
xxxx:43BF <cr> ;break out
|
||
-w ;write it back out
|
||
Writing 61C7 bytes
|
||
-q ;end debug session
|
||
|
||
RENAME DM.XEX DM.EXE ;restore the name
|
||
|
||
Diagram Master, version 5.01, is now unprotected. Have fun!
|
||
|
||
LET THERE BE SOFTWARE!
|
||
|