荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: samba (木星), 信区: Hacker
标  题: 拷贝心得(1)
发信站: BBS 荔园晨风站 (Thu Sep  9 07:42:53 1999), 转信




    发展一套品质优良的套装软体是要花很多的时间与精力的 ,所以必须要
让软体的作者感到他的心血没有白费 ,而能获得广大人群的爱用。

    我们认为防拷措施只能对软体盗版者造成一些障碍 ,而正当的使用者却
会对此种防拷 ,在使用上造成一些困扰 ,且防拷又会与硬体(磁碟机)不相容
使得软体无法使用 ,也因此合法使用者无法备份其软体。

使得软体无法使用 ,也因此合法使用者无法备份其软体。

    在科学鼎盛的今日 ,拷贝机的诞生 ,廉价的拷贝卡的出版再版 ,使得软
体之盗版已不再有所困扰 ,但一般使用者会去买"拷贝工具"吗 ,所以软体保
护已不再是一般厂商所采用 ,而改用『密码锁』诈看之下似乎没啥不对 ,但
一但使用者密码表遗失 ,或脏掉是否意味著 "你的使用期过了" 呢 ?

    要学会解保护之前 ,您必须了解什么是保护 ,如何保护 ,以及追踪程式
这样对於解保护就再也不是梦想 ,使用的工具只有 DEBUG.COM ,不过现在的
程式一般都会侦测有无载入 DEBUG ,若有则当机 ,至於如何避免则看个人玩
的时间与经验了 ,好啦不多说了 !!

    ┌━━━━━━━━━━┐
    ┃  1-2  DEBUG 与档案 ┃
    └━━━━━━━━━━┘

    玩过 DEBUG 的人都知道以下的指令 :
       T            ---  单步执行 ,一次执行一个指令
       G <Address>  ---  执行到 <Address> 就停下来
       G            ---  执行完载入的程式
       N <Filesname>---  定义档名 (配合 "L" 或 "W" 用)
       L            ---  载入档案(LOAD)
       W            ---  写入档案(SAVE)

       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,即为该磁区的大小

                 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 ,这样当读写

    空白磁区   : 该轨不具磁区 ,也就是某一轨不做 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 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。


--
※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 202.202.37.146]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店