荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: samba (木星), 信区: Hacker
标 题: 拷贝心得(5)
发信站: BBS 荔园晨风站 (Thu Sep 9 07:46:34 1999), 转信
┌━━━━━━━━━━┐
┃ 拷贝心得第五集 ┃
└━━━━━━━━━━┘
弟以勇者斗恶龙之游戏为说明 ,以前第一代保护与解法 :
保护 : 解法 :
设定磁碟参数 N=6 设定磁碟参数 N=6
设定磁碟参数 N=6 设定磁碟参数 N=6
↓ ↓
读取坏磁轨资料 读取 DQ.DAT (坏轨资料档)
↓ ↓
比对资料 比对资料
由於两者都能读到坏轨资料 ,只不过第二者要事先将坏轨资料存为一个档案
(DQ.DAT) 较麻烦 ,不过以後可免 KEY DISK ,省事多了 !
弟以市面上的破解版举例说明 ,兹列出其 EGA 版程式一部份。
-D CS:385
4B70:0385 44 51 2E-44 41 54 00 88 44 03 B9 DQ.DAT..D.9
4B70:0361 1E PUSH DS
4B70:0362 0E PUSH CS
4B70:0363 1F POP DS
4B70:0364 90 NOP
4B70:0365 90 NOP
4B70:0366 90 NOP
4B70:0367 B8003D MOV AX,3D00 ┐
4B70:036A BA8503 MOV DX,0385 ┃ 开启 DQ.DAT
4B70:036D CD21 INT 21 ┘ (坏轨资料档)
4B70:036F 06 PUSH ES
4B70:0370 1F POP DS
4B70:0371 31D2 XOR DX,DX
4B70:0373 B90020 MOV CX,2000 ┐
4B70:0376 89C3 MOV BX,AX ┃ 读取档案
4B70:0378 B43F MOV AH,3F ┃
4B70:037A CD21 INT 21 ┘
4B70:037C 72F3 JB 0371
4B70:037E B43E MOV AH,3E ┐
4B70:0380 CD21 INT 21 ┘ 关档
4B70:0382 1F POP DS
4B70:0383 EB0A JMP 038F
4B70:0385 44 INC SP
以上程式取代了原来的 INT 7Fh(13h) 的读取保护轨资料过程。
弟再举例例说明 ,该游戏是勇者斗恶龙 ][ 的一部份程式 :
4B70:6E01 33C0 XOR AX,AX ┐
4B70:6E03 8ED8 MOV DS,AX ┃
4B70:6E05 A14C00 MOV AX,[004C] ┃ 将磁碟读取之 N 值
4B70:6E08 A3FC01 MOV [01FC],AX ┃ 改为 6 (正常为 2)
4B70:6E0B A14E00 MOV AX,[004E] ┃
4B70:6E0E A3FE01 MOV [01FE],AX ┃
4B70:6E11 C5367800 LDS SI,[0078] ┃
4B70:6E15 B006 MOV AL,06 ┃
4B70:6E17 884403 MOV [SI+03],AL ┘
4B70:6E1A B80000 MOV AX,0000 ┐ Reset Driver
4B70:6E1D CD7F INT 7F ┘
4B70:6E1F BF0800 MOV DI,0008
4B70:6E22 1E PUSH DS
4B70:6E23 50 PUSH AX
4B70:6E24 B83658 MOV AX,5836
4B70:6E27 8ED8 MOV DS,AX
4B70:6E29 C606E22800 MOV Byte Ptr [28E2],00
4B70:6E2E 90 NOP
4B70:6E2F 881E7E28 MOV [287E],BL
4B70:6E33 58 POP AX
4B70:6E34 1F POP DS
4B70:6E35 57 PUSH DI
4B70:6E36 B80001 MOV AX,0100 ┐
4B70:6E39 050101 ADD AX,0101 ┃ 读取第 27h 轨第 72h 号磁区
4B70:6E3C B97227 MOV CX,2772 ┃ 第零面 ,将资料放到 ES:BX
4B70:6E3F BB0000 MOV BX,0000 ┃ (9800:0000)
4B70:6E42 BA0000 MOV DX,0000 ┃
4B70:6E45 CD7F INT 7F ┘
4B70:6E47 5F POP DI
4B70:6E48 80FC10 CMP AH,10 ┐ 若是坏轨则跳越
4B70:6E4B 7403 JZ 6E50 ┘
4B70:6E4D 4F DEC DI
4B70:6E4E 75E5 JNZ 6E35
4B70:6E50 B002 MOV AL,02 ┐
4B70:6E52 884403 MOV [SI+03],AL ┃
4B70:6E55 B90001 MOV CX,0100 ┃ 比对资料
4B70:6E58 BB0017 MOV BX,1700 ┃
4B70:6E5B B04E MOV AL,4E ┃
4B70:6E5D 263A07 CMP AL,ES:[BX] ┃
4B70:6E60 7503 JNZ 6E65 ┃
4B70:6E62 43 INC BX ┃
4B70:6E63 E2F8 LOOP 6E5D ┘
4B70:6E65 268807 MOV ES:[BX],AL ┐ 结果放到此位址
4B70:6E68 26884701 MOV ES:[BX+01],AL ┘
4B70:6E6C B80098 MOV AX,9800 ┐
4B70:6E6F 8ED8 MOV DS,AX ┃
4B70:6E71 B80000 MOV AX,0000 ┃
4B70:6E74 B9001A MOV CX,1A00 ┃ 二次比对资料
4B70:6E77 33DB XOR BX,BX ┃
4B70:6E79 3307 XOR AX,[BX] ┃
4B70:6E7B 052301 ADD AX,0123 ┃
4B70:6E7E 43 INC BX ┃
4B70:6E7F E2F8 LOOP 6E79 ┘
4B70:6E81 1E PUSH DS
4B70:6E82 50 PUSH AX
4B70:6E83 B83658 MOV AX,5836
4B70:6E86 8ED8 MOV DS,AX
4B70:6E88 C606F32500 MOV Byte Ptr [25F3],00
4B70:6E8D 90 NOP
4B70:6E8E 58 POP AX
4B70:6E8F 1F POP DS
4B70:6E90 3D7C45 CMP AX,457C
4B70:6E93 7403 JZ 6E98
4B70:6E95 E95BFF JMP 6DF3
与第一代的保护法完全相同 ,怎么去解它呢?? 请参考前例
弟附上 CRCEDIT.EXE 二代给您用用,当您执行时请先将原版磁片 A 放入
A 磁碟机上 ,然後键入 CRCEDIT2.EXE 即可 ,接著它会读取坏轨并将之存
档。
┌━━━━━━━━━━━━━━━━━━━━┐
┃ IBM PC Bad Sector Save System. ┃
┃ Written by Dekuo Ko. ┃
┃ Setting Save ID = 27/00/72/06 ┃
┃Crcedit Now Saveing ...Complete OK ! ┃
└━━━━━━━━━━━━━━━━━━━━┘
代表坏轨资料读取成功 ,并写回 CRC.DAT !
┌━━━━━━━━━━━━━━━━━━━━┐
┃ IBM PC Bad Sector Save System. ┃
┃ Written by Dekuo Ko. ┃
┃ Setting Save ID = 27/00/72/06 ┃
┃ The DISK not found This ID ┃
└━━━━━━━━━━━━━━━━━━━━┘
代表读取磁片失败 ,再试一次看看。
请将 RET.EXE 与 CRC.DAT 放於同一档案区中 ,执行 RET.EXE
接著进入 PCTOOLS 取找寻备份的主档 (DQ.EXE or DF2.EXE) ,寻找
ASCII="CD7F" 共找到两个 ,第一个不改 ,第二个改 "CD99"
好啦 ,这个游戏您可以自硬碟启动也不会读取 KEY DISK 了 ,不过切
记 ,每次玩 Game 时都要先载入 RET.EXE 唷 ,否则会当机。
解说 :
RET.EXE 会制造 INT 99h ,当有人呼叫此中断便会将 CRC.DAT 读进
记忆体内 ,造成与读保护轨有同样之功效。
弟附上该软体 ,请勿贩卖 ,未来该类软体出新版亦可续用 ,唯 CRC.DAT
需重新存档。
--
※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 202.202.37.146]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店