📄 worm.txt
字号:
┌——————————┐ Soft Bugger (90/2)
│ 拷贝心得 第八集 │ 597-1306 24Hours
└——————————┘ 欢迎光临 90 网路
由於上次弟的软体失败後 ,急忙推出下集 ,所以显得比较简陋 ,请多包涵。
原因是弟本来想写无缝锁程式 ,无耐该种软体只有360K DRIVER 能做出来,
於是弟又将作品抽回来 ,因此弟在此简介如何制作无缝锁吧 !
————————————————————————————————
FORMAT 的部份 :
先将磁片 ID 设定好 ,然後 FORMAT 即可....
有关於磁碟 ID 的部份 ,请参考前几集。
FORMAT 就使用 INT 13h 即可 ....
————————————————————————————————
读取资料部份 :
0000:0522 这个位址一般都是 02 ,代表磁区 N 值等於 2(512Bytes)
但是如果您将它改为 6 ,就能够读出该种磁区内的资料 (请参考第五集)
————————————————————————————————
※ 弟附上一个软体 ,是一个软体保护的实例 ,让各位练习使用。
FORMAT.EXE 这是一个用来格式化您的磁碟片 ,在您执行这个软体前 ,请在
磁碟机A放入一片您不要的磁片 ,然後再执行这个软体 ,於是它会在第27h
(39轨)的地方做一个额外磁区FFh的磁区 ,一般的拷贝程式无法拷贝该种特
别的磁区(COPYWRIT、COPYIIPC 等强拷软体除外) ,於是可达到您的磁片保
护的目地 ,因此本程式只能当做一种在磁片上做标记的程式。
CHECK .EXE 这是用来简查磁片有没有标记 ,然後判别出结果并显示之。
换句话说 ,这是一套上保护的软体 ,但是防拷能力并不强 ,只要稍具拷贝能
力的软体皆能拷下来 ,至於若希望软体不能被拷贝 ,似乎只能借助於外部硬
体才能办得到 ,因此弟只写了简单的程式。
┌┐┌┐┌┐∞
┘└┘└┘└┘
软体保护落伍了 ,尊重智慧财产权要得
================================================================
┌──────────┐ Soft Bugger (90/2)
│ 拷贝心得 第九集 │ 597-1306 24Hours
└──────────┘ 欢迎光临 90 网路
经过数天来苦心研究後 ,终於发现所写的无缝锁何以不能执行之 ,现在就
展现在您的眼前 (我花了数天才研读出来..您只要看一遍就懂了)
在此为您解说一下磁碟参数吧 ,这个参数对於想玩磁碟保护的人绝对要学
起来 ,因为懂了它就可以玩出一堆花样来....
0000:0525h 02h ..... 磁片的N值 ,用以设定目前读取的ID之N值
0000:0526h 12h ..... 每一轨18个磁区 ,弟将它改为9,才能正确格式画磁片
请您放一片磁片(已格式划过的2HD磁片)到A磁碟机 ,然後执行 FORN6.EXE
它就会帮你制造坏磁轨(4Fh轨第0面)
接著执行 SAVEN6.EXE ,它会把坏轨存成档案 (DEMO.DAT)
您可以试著看看每次格式划後的坏轨资料都不一样 ,拷贝後亦不一样
您可以用"TYPE DEMO.DAT"看到坏轨资料 ,这种保护是无法被覆制的
解说 (FORMAT-N6) :
┌ 将磁碟参数每轨有18(12h)个磁区(0000:0526h) ,改为每轨有9个磁区
├ 然後格式划磁片
├ 将磁碟参数改回正常
└ 结束程式
解说 (SAVE-N6) :
┌ 将磁碟参数N值由2改为6
├ 读取最後一个磁区 ,放到 Buffers
├ 将 Buffers 的资料存档 (DEMO.DAT)
└ 结束程式
解说磁片格式 :
前几集我们曾经讨论过磁片格式 ,但由於太精简 ,有些人可能一知半解
所以重新再说明一次
2D : 每片有39个磁轨 ,每个磁轨又分为8个磁区(DOS2.0版本)
9个磁区(DOS3.0以上版本)
但是一般360K磁碟机可以控制到41轨 ,於是也有人多用此磁轨 ,变成
额外的磁轨保护
2HD : 每片有79个磁轨 ,每个磁轨又分为18个磁区(DOS3.1以上版本)
但是一般1.2MB磁碟机可以控制到81轨 ,於是也有人多用此磁轨 ,变成
额外的磁轨保护
磁区 : 每个磁区又有分为 T.H.R.N ,就相当於是该磁区的目录一样 ,记录了
T = 磁轨 ,H = 面 , R = 第几号磁区 , N = 2 磁区有 200h Bytes
(N=3 400hBytes N=4 800hBytes N=5 1000hBytes N=6 2000hBytes)
这个目录总称 ID
正常的一片 2D 磁片 27h 轨第0面的 ID 应该是 :
T. H. R. N.
27,00,01,02 ┐
27,00,02,02 │ 这个目录(ID)就是这条
27,00,03,02 │ 磁轨的所有东西
27,00,04,02 │
27,00,05,02 │ 每个磁区可放 512Bytes
27,00,06,02 │ (200h)Bytes
27,00,07,02 │
27,00,08,02 │
27,00,09,02 ┘
或许你已发现了 ,这条磁轨总容量是 1800h Bytes ,而如果 N=6 就有 2000h
Bytes ,於是当您读取这个磁轨 ,就会读取超过该磁轨的容量 ,将其磁轨接缝
处顺便读出来 ,而一般磁碟机无法处里此接缝 ,因此也就无法拷贝
接缝 : 磁片上有一个索引孔 ,当磁碟机读到这个孔就会开始做读写工作 ,直
到该工作做完为止 ,但是不可能整圈磁轨全用完 ,於是造成将这未读
写完的部份磁区(俗称接缝)
磁碟机的磁头在写入时 ,磁头都会加以磁化 ,但磁性物体不可能通电
後马上有磁性 ,断电後马上没有磁性 ,由於这个剩磁 ,将接缝的资料
变动到 (因为写完资料後磁头仍会在该轨停留到遇到下一次索引孔为
止),这个磁性绝对无法用软体加以控制 ,所以市面上也就没有东西可
以拷贝它
┌—┐ ┌—┐ ∞ 软体保护落伍了 ... 保护智慧财产权要得。
┘ └—┘ └—┘ 请您和我们合作,软体破解只是让您更方便使
Soft Bugger (90/2) 用,而不是方便您散播。
据说 KeyPro 保护是用某种专上此种保护的软体上的,所以应该大同小异。
某种以 KeyPro 保护的雷射印表软体 ,兹以原版与破解版说明之 :
A>DEBUG JM.EXE
-u CS:C560 (原版)
15C3:C560 9A0C003C23 CALL 233C:000C —使用INT17h将KeyPro资料读出
15C3:C565 2E CS: ┐
15C3:C566 01066901 ADD [0169],AX │
15C3:C56A D0E0 SHL AL,1 │
15C3:C56C D0E0 SHL AL,1 │
15C3:C56E D0E0 SHL AL,1 │运算和资料比对
15C3:C570 D0E0 SHL AL,1 │
15C3:C572 2E CS: │
15C3:C573 01066901 ADD [0169],AX │
15C3:C577 50 PUSH AX │
15C3:C578 59 POP CX │
15C3:C579 2E CS: │
15C3:C57A 2906038D SUB [8D03],AX │
15C3:C57E 3C00 CMP AL,00 │
15C3:C580 751E JNZ C5A0 ┘
15C3:C582 B402 MOV AH,02
15C3:C584 9A0C003C23 CALL 233C:000C
15C3:C589 8AE6 MOV AH,DH
15C3:C58B E89805 CALL CB26
15C3:C58E A3F2CD MOV [CDF2],AX
-u CS:C560 (破解版)
15C3:C560 9A0C003C23 CALL 233C:000C — 读资料(读不到)
15C3:C565 90 NOP ┐
15C3:C566 31C0 XOR AX,AX │已知资料运算的 AX=0
15C3:C568 2E CS: │所以帮它运算。
15C3:C569 01066901 ADD [0169],AX ┘
15C3:C56D 90 NOP
15C3:C56E 90 NOP
15C3:C56F 90 NOP
15C3:C570 90 NOP
15C3:C571 90 NOP
15C3:C572 2E CS:
15C3:C573 01066901 ADD [0169],AX ┐
15C3:C577 50 PUSH AX │
15C3:C578 59 POP CX │ 以下运算式因只用到 AX
15C3:C579 2E CS: │ 故不修改其内容
15C3:C57A 2906038D SUB [8D03],AX │
15C3:C57E 3C00 CMP AL,00 │
15C3:C580 751E JNZ C5A0 ↓
15C3:C582 B402 MOV AH,02
15C3:C584 9A0C003C23 CALL 233C:000C
15C3:C589 8AE6 MOV AH,DH
15C3:C58B E89805 CALL CB26
15C3:C58E A3F2CD MOV [CDF2],AX
现在的软体保护,实在越来越厉害,实在可以这样说 :
解读不易,破解更难,所有保护,专攻DEBUG,防止破X
拷贝心得到此算是暂时告一段落了 ,原因是题裁取得不易 ,软体防破能力太强
,因此对於开站的我已无多的时间慢慢 Debug ,只好告诉各位未来续出的时间可
能会每1-2个月出一次 ,也希望各位大爷忍耐一些 ,所以先告诉各位一些主意 ,
就是对於防拷不必花时间去解 ,只要您写个小程式即可解所有 Int13 的保护 ,
1. 拦截 INT13h ,对於来自非DOS呼叫的时後 ,即将所读到的资料存档 ,以备下
次拷贝版使用。
(判别是否DOS呼叫 ,只要判别触动INT13时的CS是否小於自己程式的CS可得知)
2. 同上 ,但这次是将存的档案读出来。
这个程式已有人写出来 ,由於该软体并非弟所写 ,故无 Source. 可给您 ,几乎
所有的软体都可解。
SAVE.EXE 是负责 SAVE 坏轨的东西 ,键入後再输入档名 ,如 C:\A.LOK ,然後执
行原版磁片 ,这时原版磁片一边执行 ,一边将坏轨资料存档 ,最後程式执行了 ,
您的硬碟也有保护轨资料了。
重新开机 ,清掉 SAVE.EXE。
LOAD.EXE 是负责将坏轨资料放回去的 ,键入後再输入档名 ,如 C:\A.LOK ,然後
就可以执行拷贝版了。
由於关系重大 ,只有赞助本站 User 可拿到软体 ,赞助者亦不可传至它站 ,否则
後果自行负责。
※ 以上软体若有闪失 ,概不负责。
***** 请勿上传该软体至他站 ,谢谢合作。 *****
┌—┐ ┌—┐ ∞
—┘ └—┘ └—┘
┌————————————┐ 软体保护落伍了
│ 拷 贝 心 得 第 十一 集 │ 智慧财产权要大家来保护
└————————————┘ 明天才有更好的软体可用
Soft Bugger (90/2) 597-1306 24Hours
=============================================================
这一集的内容由於是拼凑出来的 ,所以内容不是很好 ,但是勉强能看
=============================================================
INT_13h 所有功能涵数之解说如下:
1. AH=00 (重置磁碟系统) ┐
2. AH=01 (取得磁碟状态) │
3. AH=02 (读取磁区资料) │由於一般 DOS 书籍已有介
4. AH=03 (写入磁区资料) │绍 ,故不再多谈。
5. AH=04 (验证磁区好坏) │
6. AH=05 ( 格式化磁轨 ) ┘
7. AH=06 格式化损坏的磁区 (PC/XT HD Only)
AL=磁区数
CH=磁柱号码
DH=磁头
DL=磁碟机 (80h-FFh)
返回代码 :
成功进位旗标为零 ,AH=00
失败进位旗标为壹 ,AH=状态 (参考AH=01)
8. AH=07 格式化磁碟机 (PC/XT HD Only)
同 AH=06 ,但会从指定之磁柱起开始格式化
9. AH=08 取得磁碟参数 (PC/AT PS/2)
DL=磁碟机 (软碟 00-7F ,硬碟 80-FF)
返回代码 :
成功则进位码被清除
BL=磁碟机种类
01 360 KB ,40轨 , 5.25□
02 1.2 MB ,80轨
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -