精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>汇编语言>>各种教程>>解密教程>>解秘教程2

主题:解秘教程2
发信人: shangbings()
整理人: cobe(2001-08-06 13:03:58), 站内信件
第二章 磁盘格式与保护
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,即为该扇区的大小
         2的N次方乘以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。

[关闭][返回]