📄 worm.txt
字号:
拷贝心得第一集
┌—┐ ┌—┐ ┌—┐ ┌—┐ ┌∞
└—┘ └—┘ └—┘ └—┘ └—┘
┌————————————————————┐
│ 软体蛀虫站资料填写 ,请勿修改其内容 │
│ 90 网之 2 ----> 597-1306 24Hr │
└————————————————————┘
==== 第一章 使用规则 ====
┌————————┐
│ 1-1 前 言 │
└————————┘
发展一套品质优良的套装软体是要花很多的时间与精力的 ,所以必须要
让软体的作者感到他的心血没有白费 ,而能获得广大人群的爱用。
我们认为防拷措施只能对软体盗版者造成一些障碍 ,而正当的使用者却
会对此种防拷 ,在使用上造成一些困扰 ,且防拷又会与硬体(磁碟机)不相容
使得软体无法使用 ,也因此合法使用者无法备份其软体。
在科学鼎盛的今日 ,拷贝机的诞生 ,廉价的拷贝卡的出版再版 ,使得软
体之盗版已不再有所困扰 ,但一般使用者会去买"拷贝工具"吗 ,所以软体保
护已不再是一般厂商所采用 ,而改用『密码锁』诈看之下似乎没啥不对 ,但
一但使用者密码表遗失 ,或脏掉是否意味著 "你的使用期过了" 呢 ?
要学会解保护之前 ,您必须了解什麽是保护 ,如何保护 ,以及追踪程式
这样对於解保护就再也不是梦想 ,使用的工具只有 DEBUG.COM ,不过现在的
程式一般都会侦测有无载入 DEBUG ,若有则当机 ,至於如何避免则看个人玩
的时间与经验了 ,好啦不多说了 !!
┌——————————┐
│ 1-2 DEBUG 与档案 │
└——————————┘
玩过 DEBUG 的人都知道以下的指令 :
T --- 单步执行 ,一次执行一个指令
G <Address> --- 执行到 <Address> 就停下来
G --- 执行完载入的程式
N <Filesname>--- 定义档名 (配合 "L" 或 "W" 用)
L --- 载入档案(LOAD)
W --- 写入档案(SAVE)
大部份破解过程只用到上列指令.....
==================================================
档案分为.COM 与.EXE ,因为.COM 最大只能有 64K 所以
演生出.EXE 档。但是.EXE又有个档头 ,记录档案放在那儿
所以 DEBUG 无法写回此种档案 ,而产生错误讯息。
※因此EXE档必须用 PCTOOLS 将指令码找出来改....
==== 第二章 磁片格式与保护 ====
┌——————————┐
│ 2-1 磁片格式 │
└——————————┘
大多数人认为磁片只有分几轨、两面而已 ,其实又细分了更多的东西
2D 的磁片有 39 轨 ,2HD 的磁片有 80 轨 ,每一轨又分为9个磁区 ,每个
磁区又再分 512 个位元组 ,因此要做保护只要和正常轨不同即可。
(PS: DOS2.0每轨8个磁区 ,DOS3.1以上版本才是9个磁区)
磁轨(TRACK) : 磁片上分成数个同心圆环 ,便称磁轨
面(Head) : 软碟分为 0/1 面 ,但硬碟可能超过此数字
磁区(SECTOR) : 磁轨上储存资料区域之一
N 值 : 磁区大小 ,正常为2 (N=1 256Bytes ,N=2 512Bytes)
2的N次方乘以256,即为该磁区的大小
------------------------------
注: [jye.bbs@bbs.cis (Jye)]
小弟不才, 2的1次方乘以256.......
------------------------------
因此正常的磁轨 ID 栏应该为 :
T H S N
1 02 00 01 02 10.4% 这是第二轨第零面的状况
2 02 00 02 02 10.4% "%" 代表这磁区占该轨的
3 02 00 03 02 10.4% 百分比 ,每次皆会有少许
4 02 00 04 02 10.4% 差异。
5 02 00 05 02 10.4%
6 02 00 06 02 10.4%
7 02 00 07 02 10.4%
8 02 00 08 02 10.4%
9 02 00 09 02 13.7%
----------------------------
若 N=3 则必需有 17.8% 以上的空间才能制造出正常磁轨 ,不然都会
造出坏轨(CRC ERROR) ,所以该轨只能有 5 个磁区 ,否则就变成坏轨。
这是因磁碟控制卡之故 ,无法要求小又好(NO ERROR)的磁区。
┌—————————————┐
│ 2-2 保护的种类与介绍 │
└—————————————┘
空白磁区 : 该轨不具磁区 ,也就是某一轨不做 FORMAT ,这样当读写
这个磁轨就会造成错误 ,但只能防标准的 DISKCOPY 的
拷贝程式 ,是早期的保护方式 『如 疯狂大家乐』
非标准磁区 : 就是乱改 T H S N 值 ,变成与正常轨不同 ,早期的保护
也是利用此法 『如 卡诺夫将 S 值乱改』
异常大小的磁区 : 占该磁轨大小百分比异常 『如 快打砖块』
隐藏磁区 : 用 ID 栏错误法 ,使得该磁区必须要用 READ ID 法才能
找到该磁区 ,所以可骗过早期的 COPYWRIT or COPYIIPC
『如 名车大赛』
增加额外磁区 : 让某一轨磁区超过正常数目 『如 名车二代』
磁碟控制卡若能制造出 20h 个磁区就算不错了,但有些却
制造甚多个使之无法用软体拷贝 『如 图腾抓图软体』
虚拟磁区 : 又名 WEAK BIT ,就是将资料写入时以介於 0 与 1 的磁性
写入 ,於是读出来的资料每次都不一样 ,正常磁碟机无法
做出(碰运气可作出,但百分比越大越难做出) ,只能靠外来
硬体做拷贝 『如 冲破火网』
长轨 : 利用转速慢的磁碟机写入 ,这样写入的资料比较多 ,除非
拷贝的磁碟机转速相同 ,不然拷不下(拷贝卡也无法)
无缝锁 : 利用 N 值为 6 的磁区 ,因为超过该轨所能容纳的空间 ,
所以当您读取该磁区时就会顺便将头尾的资料读出 ,任何
磁碟机都无法处理该区 ,造成不能被拷贝 ,因此市面使用
此保护者 ,每片都不一样保护轨资料 ,不可能拷贝 ,同时
该法会挑磁碟机 ,故少人用之 『如 风云麻将』
额外磁轨 : 正常磁片假如有 39 轨 ,但可读写的还有 40 41 轨 ,因
此有人就在该轨做手脚 ,然後以正常方式读写该轨
『例如 冲风飞车』
┌———————————————┐
│ 2-3 非正常磁区的保护范例 │
└———————————————┘
FORMAT 磁轨的程式 验证该轨
CS:100 MOV AX,0000 \ 重置磁碟 CS:100 MOV AX,0000 \ 重置磁碟
INT 13 / 读写前的准备 INT 13 / 读写前的准备
MOV AX,0501 - FORMAT 1个磁区 MOV AX,0201 - 读一个磁区
MOV BX,0200 - ID 资料放在 ES:BX MOV BX,0200 - 将资料放在 ES:BX
MOV CX,2901 - 29h轨 MOV CX,29FF - 第29h轨,FFh磁区
MOV DX,0001 - 零面,B磁碟机 MOV DX,0001 - 零面,B磁碟机
INT 13 - 起动磁碟 I/O INT 13 - 磁碟 I/O 起动
JB 0100 - 失败再重作 JB TEST ERROR 无特殊轨
INT 20 - 结束程式 JMP TEST OK 有特殊轨
ES:200 DB 29 00 FF 02 (ID栏资料)
上例利用到额外磁区 ,DOS 只用到 27h轨,而该程式用到 29h轨,於是不怕
有人 FORMAT 该磁片 ,因为 FORMAT 不会洗到该轨资料 。
在 29h 轨制造一个编号为 FFh 的磁区 ,所以就算能拷到该轨 ,也可防一般
拷贝软体 ,能防 COPYIIPC(因只拷到28h轨) ,但仍不能防 COPYWRIT。
请您多多使用零壹中文系统,这样中文会更好
请您稍待数日再看续集....
拷贝心得第二集
┌—┐ ┌—┐ ┌—┐ ┌—┐ ┌∞
└—┘ └—┘ └—┘ └—┘ └—┘
┌————————————————————┐
│ 软体蛀虫站资料填写 ,请勿修改其内容 │
│ 90 网之 2 ----> 597-1306 24Hr │
└————————————————————┘
==== 第三章 磁碟控制卡的认识 ====
┌————————————┐
│ 3-1 磁碟控制卡的介绍 │
└————————————┘
磁碟控制卡上的 uPD765A 是整个磁碟作业的核心 ,而 uPD765A 靠著3个
I/O 埠的暂存器与 CPU 沟通 ,这三个暂存器如下 :
&h3F2 : 数位输出暂存器
&h3F4 : 主状态暂存器
&h3F5 : 资料/状态 暂存器
资料传输到磁片时 ,又可分为 DMA 与 非DMA 模式 ,由於与主题无关略过。
uPD765A 磁碟控制卡可下达以下指令 :
┌——————————————————————————┐
│ Read Data (读取资料) │
│ Write Data (写入资料) │
│ Read ID (读取 ID) │
│ Format A Track (将磁轨格式化) │
│ Read Deleted Dtat (读取已删除的资料) │
│ Write Delete Data (写入已删除的资料) │
│ Read A Track (读取磁轨) │
│ Seek (找寻磁轨) │
│ Scan EQUAL (扫瞄比对相等) │
│ Scan high or equal (扫瞄大於或等於) │
│ Scan low or equal (扫瞄小於或等於) │
│ Recalibrate (校准磁头 ,磁头回到第零轨) │
│ Sense Interrupt status (感测中断状态) │
│ Sense Driver Status (感测磁碟机状态) │
│ Specify (指定) │
└——————————————————————————┘
┌—————————┐
│ 3-2 工作方式 │
└—————————┘
┌—————┐
│ CPU │
└—————┘
↑
↓
□□□□□□□□□□系统汇流排 (SYSTEM BUS) □□□□□□□□□□□□
↑ ↑
↓ ↓ 资料窗 ┌———┐
┌—————┐ DRQ ┌—————┐←—————┤ RLL ├┬— ┬——┐
│ │←— │ │ RD DATA └———┘│ │ 磁 │
│ │ │ │←——————————┘ │ 碟 │
│ 8237 │DACK │ uPD765A │————————————→ │ 机 │
│ │—→ │ │ WR DATA │ 介 │
│DMA 控制器│ │ FDC │ 输入控制 │ 面 │
│ │ │ │□□□□□□□□□□□□→ │ ⊙ │
│ │—→ │ │□□□□□□□□□□□□→ ┴——┘
└—————┘ TC └—————┘ 输出控制
终结计数
┌——————————┐
│ 3-3 中断简介 │
└——————————┘
由於组合高手甚多 ,因此各中断向量便不再介绍 ,只介绍几个与磁碟有
关的功能 ,其它中断请自行查书。
□□□□□□□□
□ INT 13h □
□□□□□□□□
(AH)=0 : 重置磁碟机 ,将磁头拉到 TRACK 0
(AH)=1 : 读入磁碟状态
(AH)=2 : 将指定磁区读入记忆体
(AH)=3 : 将记忆体资料写入磁区
(AH)=4 : 查验磁区
(AH)=5 : 格式化指定磁区
返回代码 (AH or AL 值,以二进位来看)
00000001 传给磁碟机 I/O 指令不正确
00000010 找不到位址标记
00000011 磁片贴有防写
00000100 找不到指定磁区
00001000 DMA 越界
00001001 超过DMA边界(有64K)处存取资料
00010000 CRC 错误
00100000 磁碟机控制卡损坏
01000000 Seek 动作错误
10000000 时间超过而磁碟机仍未动作
□□□□□□□□
□ INT 1Eh □
□□□□□□□□
INT 1E 指向的位址就是磁碟参数表 ,一般指向 0000:522-52C
0000:0522 DF 步进速率
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -