📄 worm.txt
字号:
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
需重新存档。
拷贝心得第六集
┌—┐ ┌—┐ ┌—┐ ┌—┐ ┌∞
└—┘ └—┘ └—┘ └—┘ └—┘
┌————————————————————┐
│ 软体蛀虫站资料填写 ,请勿修改其内容 │
│ 90 网之 2 ----> 597-1306 24Hr │
└————————————————————┘
Microsoft (R) Symbolic Debug Utility Version 4.00
Copyright (C) Microsoft Corp 1984, 1985. All rights reserved.
Processor is [80286] ,Files Name : S.EXE (RS2的游戏保护)
-r
AX=0000 BX=0000 CX=9765 DX=0000 SP=0080 BP=0000 SI=0000 DI=0000
DS=1B5D ES=1B5D SS=333D CS=24AF IP=0012 NV UP EI PL NZ NA PO NC
24AF:0012 06 PUSH ES
-u 12 70
24AF:0012 06 PUSH ES ——— 未来跳跃用,暂不用到
24AF:0013 0E PUSH CS ┐ 断落对齐
24AF:0014 1F POP DS ┘
24AF:0015 8B0E0C00 MOV CX,[000C] ┐
24AF:0019 8BF1 MOV SI,CX │
24AF:001B 4E DEC SI │一些没营养的资料 ,待会
24AF:001C 89F7 MOV DI,SI │比对资料时的
24AF:001E 8CDB MOV BX,DS │长度、位置 资料放入暂存器
24AF:0020 031E0A00 ADD BX,[000A] │
24AF:0024 8EC3 MOV ES,BX │请注意 BX=DS=CS
24AF:0026 B400 MOV AH,00 │
24AF:0028 31ED XOR BP,BP │
24AF:002A FD STD ┘
24AF:002B AC LODSB ┐ AX=DS:SI=0-525
24AF:002C 01C5 ADD BP,AX │ 将CS:0到CS:525的指令码加起来
24AF:002E AA STOSB │ 放到 BP ,若有人单步执行则 BP
24AF:002F E2FA LOOP 002B ┘ 值就有误 ,因但部执行会产生CC码
24AF:0031 8B160E00 MOV DX,[000E] — 正常主程式码相加後所得 1/2
24AF:0035 8AC2 MOV AL,DL ┐
24AF:0037 29C5 SUB BP,AX │ 等於 SUB BP,DX
24AF:0039 8AC6 MOV AL,DH │
24AF:003B 29C5 SUB BP,AX ┘
24AF:003D 39D5 CMP BP,DX ┐ 比对是否曾单步执行
24AF:003F 740C JZ 004D ┘ 未单步执行则跳越
24AF:0041 BA9101 MOV DX,0191 ┐
24AF:0044 B409 MOV AH,09 │ 印出 Crc Err 字样
24AF:0046 CD21 INT 21 ┘
24AF:0048 B8FF4C MOV AX,4CFF ┐ End files
24AF:004B CD21 INT 21 ┘
24AF:004D 53 PUSH BX ┐
24AF:004E B85300 MOV AX,0053 │ 跳到 CS:53 去执行程式
24AF:0051 50 PUSH AX │
24AF:0052 CB RETF ┘
24AF:0053 2E8B2E0800 MOV BP,CS:[0008] ┐
24AF:0058 8CDA MOV DX,DS │
24AF:005A 89E8 MOV AX,BP │
24AF:005C 3D0010 CMP AX,1000 │
24AF:005F 7603 JBE 0064 │ 主程式
24AF:0061 B80010 MOV AX,1000 │
24AF:0064 29C5 SUB BP,AX │
24AF:0066 29C2 SUB DX,AX │
24AF:0068 29C3 SUB BX,AX ↓
这个 Game 的保护有点类似 SoftGard ,都利用了计算程式码的长度 ,这
种保护可以 100%侦测出对方是否有过单步执行。
"G 100" 这个指令看起来很单纯 ,只是要求程式执行到 CS:100 时停下来
让使用者能够Debug 自己的程式 ,事实上它真的就是这样 ,不过在 Debug
上是如何执行工作 ,首先它会将 CS:100 的指令码暂时存起来 ,改放个 "CC"
(INT 3) 码来取代 CS:100 的指令码 ,一但执行到此就会触动 INT 3 的中断
而将程式复原 ,并暂时终止程式继续执行 ,等使用者下命令。
程式解说 :
CS:0012 为主程式
↓
设定 SI=523,CX=525
↓←————————┐
取得 CS:SI 的指令码 │
↓ │还
将此码加入 BP 内 │未
↓ │加
将 SI 减 1 ,与 CX-1 │完
↓ │程
CX 是否为零 │式
(是否将程式码由头加到尾 │码
即CS:0-CS:523) │
├—————————┘
↓
比对是否正确
├———————┐程
↓ │式
印出 Crc Err │码
结束程式 │正
┌———————┘确
↓
执行程式
後记 : 时代一直在变 ,观念也在变 ,尊重版权 ,才能发展出更好用的软体
病毒才能因此灭迹。
希望"防拷"在国内能够早日灭迹 ,这就有赖各位大哥们不要任意将
软体复制给他人使用 (PD例外)。
其实任何保护都是在磁片上制造某种错误 ,然後根据这个错误来判
定是否原版。
拷贝是利用程式来复制这个错误 ,让软体能正确无误的执行。
破解是保护的最大杀手 ,不但将这个错误砍掉 ,更使得软体复制更
为简单容易 ,一道 DISKCOPY 即可搞定。
--- 拷贝心得就此暂告休息 ---
□┐ ┌—┐ ┌—∞ 拷贝心得第七集
└—┘ └—┘
Soft Bugger (90 Genesis Net 之 2)
(02)597-1306 24Hours
┌——————————————┐
│ 智慧财产权的遵重 │
└——————————————┘
由於弟所撰写之软体失败 ,造成第七集延误交件 ,让各位看官停看一段
内容是弟对於软体保护与智慧财产权之保障 ,以及弟心里一些话。
相信各位都知道一个好的软体的诞生 ,需要许多时间和努力 ,因此对於
发展软体的供应者而言 ,所推出的软体在市面上能够有不错的销路是十分重
要的 ,有适当的回收才能刺激原设计者发展更精良的产品。
一套软体才上市不久即被海盗版攻占 ,这样的软体商绝不能够生存 ,因
为软体发展所需之费用没有合里的来源 ,那样所有的软体设计师大概都饿死
了 ;台湾有个很不好听的名称 ,叫做『海盗王国』 ,可是做一个海盗必需要
有极大的勇气(触法)与智慧(盗版法)才能够做一个标准的"人奸盗" ,与其这
样 ,不如让我们携手来洗刷这个恶名。
弟曾和大宇公司某人谈过 ,以下是其谈话主要内容....
国内的 Game 虽然很多 ,但是真正有版权的少之又少 ,大宇的软体写出来
後 ,国内喜欢的人也许多 ,但是一个游戏只是叫好不叫座 ,那样写软体的
人也没精神再去发展更好的软体 ,一个游戏的推出必需经过相当的时间与
人力才能达成 ,但是推出後一般只有半年的寿命 ,可是国内就是有一票人
老是喜欢解人家的软体自娱 ,於是软体不叫坐 ,国人也就没有好的软体可
以使用 ,国内电脑玩家通通都是被这种人害死 ,造成国人开始发展国外专
用的软体 ,於是没人愿意为国内写软体 ,国内软体也就无法进步。
事实上国人的脑袋并不会比外国人差 ,可是大家都花心思去想办法拷贝
,不愿意花钱去买 ,电脑病毒随之猖狂 ...
再者 ,国内大多数发行电脑游戏的软体公司大多是花钱到国外买套软体 ,
然後到台湾大量拷贝出售 ,这种软体不必负担任何的开发费 ,价格在150
左右 ,与他们所开发的软体需负担开发费而言 ,价格也要定在200左右,又
要考虑买的人大多是学生 ,不得不压低价格。
他们也说 ,如果买的人又拷给别人 ,那样还不如一开始就将价格抬高 ,
然後只卖几套就可回收成本 ,可是他们不愿意这麽做 ,所以希望国内对於
智慧财产权能够加以保障。
PS : 这也就是为什麽弟绝不解大宇的 Game 保护。
国内一些公司不但自己有在写 Game ,但也 "兼" 卖国外拷贝版软体 ,
对於这种 "叫人守法 自己违法" 的做法 ,弟实感不平,因此对於该类公司
出版之软体 ,弟不能谅解其做法 ,本来弟对於国内软体都一直保持 "绝不
任意破解流出" ,但是对於这种 "耍特权 耍老大" 的公司则不在此限。
因为弟看不惯这种公司 ,绝不会购买此软体或流出该软体 ,对於其软体
保护只会引导使用者备份其磁片 ,至於使用者备份做什麽事 ,就凭使用者
自己的良心 ,而一些绝对守法的公司 ,弟绝不会告知其保护解法 ,也希望
国内玩家共同遵守此一原则 .. 不解合法公司之软体保护。
一个荒谬的事实 : 国内使用 Tracer 这套由 陈宏然先生 所发展之扫
毒剂已万馀人 ,虽然这是 PD 公益软体 ,但是该作
者所收到的赞助费只千元不到 ,也难怪作者写到後
来有无力感。
(该套软体发行已半年馀 ,该作者铁饿死)
如果您和我一样都已会赚钱 ,那麽也请您赶快洗掉拷贝版 ,改用原版磁
片 ,不但有售後服务 ,也能促进软体发展 ,使更多人投入软体开发的行列
,灭绝病毒传染途迳。
===== 您的支持 是软体进步的原动力 =====
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -