⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 worm.txt

📁 关于黑客的论坛的下载资料
💻 TXT
📖 第 1 页 / 共 5 页
字号:
         0000:0523 02  表 DMA 传输资料
         0000:0524 25  马达起动时等待 25ms
         0000:0525 02  N值为2 (512Bytes)
         0000:0526 09  可容许最大磁区编
         0000:0527 2A  间细(Gap)长度
         0000:0528 FF  磁区资料长
         0000:0529 50  格式化时的间细长度
         0000:052A F6  填入空白磁区的位元值
         0000:052B 0F  移动每一轨後等待25ms再读写资料
         0000:052C 02  马达起动时间


               第四章  程式追踪的动作


    ┌——————————————┐
    │  4-1  DEBUG 的追踪程式功能 │
    └——————————————┘

    在组合指令中有数百个指令,程式中又有数以万计的指令,到底那里才是
  保护的所在地呢,这就要牵扯到 DEBUG 的 TRACE 的功能了。
    DEBUG 较常用的指令有 :
      "N"          = 定义程式名称
      "L"          = 根据定义的档名作 LOAD 档案
      "W"          = 根据定义的档名作 SAVE 档案
      "U"          = 列出程式 (相当於 LIST)
      "T"          = 执行一个指令码,遇到 CALL 则跳到内部继续执行
      "P"          = 执行到下一行,遇到 CALL 时则执行完那个 CALL
      "G"          = 执行程式,又可分成下列几种
                     "G=<Address>" 不管现在执行到那,直接跳到<Address>
                                   继续执行(不常用)
                     "G <Address>" 从现在的地方执行到<Address> 後停下来
                     "G"           从现在的地方执行到结束为止

    ┌——————————┐
    │  4-2  组合指令简介 │
    └——————————┘

    MOV AA,BB    将 BB 放到 AA 里
    CALL         呼叫副程式 (相当於 BASIC 的 GOSUB)
    RET 与 RETF  返回程式   (相当於 BASIC 的 RETURN)
    CMP XX,YY    比较 XX 与 YY
    JZ           若相等则跳跃
    JNZ          若不相等则跳跃
    JB           若小於则跳跃
    JG           若大於则跳跃
    JMP          无条件跳跃
    J???         (各种跳跃指令)
    LOOP         回路
    INT XX       类似 CALL 的中断涵数

    以後凡是遇到上述指令都停下来查看一下 ,即键入 G<该行号>
    兹举例如下(随压缩档内附档案) :
      CW.EXE (唯我读尊执行档)
    A>DEBUG
    -N CW.EXE    请您随时键入 "U" 键看看程式
    -L
    -G 37
    -G 60        ┐ 一个回圈,程式在此打转
    -T (JZ 6B)   │ 为了能继续执行,因此最後一定会跳出此回路
    -G 71        │ 前面三个条件跳跃不管是否成立都跳不出此回路
    -T (JZ 7C)   │ 因此肯定它一定是在 CS:9C 不成立下跳出
    -G 8A        │ 所以我们可以键入 G 9E(CS:9C的下一行)
    -T (JNZ 92)  │
    -G 98        │ 如果没有把握只能用试的,或您时间多慢慢追踪程式
    -G 9C        │ 个数圈以後也会跳出。
    -T (JZ 58)   ┘
    -G 9E (回路跳出後继续追踪)
    -G AD       ┐
    -T          │ 第二个回路,可能从 "CS:BB JZ CE" 或 "CS:C6 JZ DE" 跳出
    -G BB       │ 於是先假设是 CS:BB ,当您键入 "G CE" 时程式执行了,可见
    -T          │ 假设错误,应该是由 CS:C6 跳出,於是再重新 LOAD ,
    -G C6       │ 前面已 TRACE 过,故直接键入 G37、T、GFE、T
    -T          ┘ (因为 RETF 与 IRET、JMP FAR、CALL FAR 指令会改变 CS 段落,故.
                   在此停下後再按"T" ,如 "CS:37 的 RETF" ,"CS:FE 的 JMP FAR")

    -G DE (回路跳出後继续追踪)
    -G FE
    -T
    -G 483
    -T
    -G 495  \ 从 495 到 4A9 中间有个 "CALL" ,当您执行完此 CALL 竟
    -T      - "问你密码" ... 表示如杀掉此 CALL 则不会再问你密码了
    -G 4A9  / 但以下程式仍稍追一断试试。
    -T (JNZ 4AE) --> 如果你密码输入正确,则会跳跃,若错误就不跳,因此
                     你必须将它改为无条件跳跃 (JMP)
    -於是将此两位置 ASCII 码抄下後用 PCTOOLS(Find) 修改後执行看看
     结果执行无误 ,此档以後就不再须要输入密码了 !

     PS : 1. 在解的过程中一定要拿只笔来记下已追到那儿了 !!
          2. CW.EXE 必须再配合其它档才能执行此 Game ,因档案过大
             所以未全部压进此档。

                                请您稍待数日再看续集....



                     拷贝心得第三集
               ┌—┐  ┌—┐  ┌—┐  ┌—┐  ┌∞
           └—┘  └—┘  └—┘  └—┘  └—┘
        ┌————————————————————┐
        │ 软体蛀虫站资料填写 ,请勿修改其内容     │
        │  90 网之 2 ----> 597-1306   24Hr       │
        └————————————————————┘
               ====  第五章  保护法  ====

    ┌—————————┐
    │  5-1  无缝锁介绍 │
    └—————————┘

    方法 : 因为一个磁轨无法容纳 N=6 ,所以会格式化出坏轨(BAD CRC)
           同时利用磁碟机无法正确写入索引孔附近资料,因此拷贝卡等
           硬体拷被工具也无法拷贝,但如果仍要读该轨时,磁碟就会顺便
           将索引孔的资料读出,只要比对其资料即可知是否原版。
    流程 :           ┌————————┐
                     │  Reset Driver  │
                     └———┬————┘
                     ┌———┴————┐
                     │  Read a Track  │
                     └———┬————┘
                     ┌———┴————┐  不是  →
                     │  比对是否坏轨  ├——————┐
                     └———┬————┘            │
                             │  是                  │
                     ┌———┴————┐ 非预设资料 │
                     │   比对资料区   ├——————┤
                     └———┬————┘        →  ├———————┐
                     ┌———┴————┐            │   失败结束   │
                     │   成功的执行   │            └———————┘
                     └————————┘

    [[[  FORMAT A磁碟第29h轨,第零面,第1个磁区  ]]]
      *****  FORMAT UTILITY  *****

              MOV AX,0000  ; 重置磁碟
              INT 13       ;
              MOV AX,0501   ;
              MOV BX,200    ; FORMAT 参数
              MOV CX,2901   ; 请查 DOS 手册
              MOV DX,0000   ;
              INT 13
              JB  'FORMAT ERROR'
              JMP 'FORMAT COMPLETE'
       ES:200 29 01 01 06    (ID 栏值,请看第二集)

      *****  TRACK DATA  *****

              MOV AX,0000
              INT 13
              MOV BX,0000     ; ┐
              MOV DS,BX       ; │ 磁碟参数表,放在 0000:0525
              MOV BX,0525     ; ┘
              MOV AL,06       ; N=6
              MOV [BX],AL     ; 将 0000:0525 磁碟参数改为可读 N=6 的磁区
              MOV AX,0201      ; ┐
              MOV BX,300       ; │ 读取 29h 轨,第 0 面,第一号磁区
              MOV CX,2901      ; │ 读到的资料放到 ES:BX
              MOV DX,0000      ; │ 请查 DOS 手册
              INT 13           ; ┘
              CMP AL,10        ;    是否 BAD CRC
              JZ  'TEST OK'    ;    如果是则跳越到比对资料
              JMP 'ERROR'

          由於 N=6 已超过一个磁区所能容纳的范围,因此变成 BAD CRC
          AL 的返回代码请参考 DOS 技术手册。

      ┌——————————┐
      │  5-2  雷射保护     │
      └——————————┘
         方法 : 将磁片上某一轨用雷射将之破坏,使得该轨原磁片特性全毁
                雷射准确性高,可100%破坏特定轨,而一般使用者不会有雷
                射,也不会花钱买,而造成无法拷贝。
         流程 :
                        ┌———————————┐
                        │ 格式化该磁轨(Format) ├——┐ 格式化失败
                        └—————┬—————┘    │
                            ┌———┴————┐      │
                            │  写入该轨资料  ├———┤ 防写保护
                            └———┬————┘      │ 或写入失败
                            ┌———┴————┐      │
                            │  读取该轨资料  │      │
                            └———┬————┘      │
                        ┌—————┴———————┐│
                        │  比对是否与写入资料相同  ├┤ 完全相同
                        └—————┬———————┘│
                            ┌———┴———┐    ┌—┴—┐
                            │   Test OK    │    │ 失败 │
                            └———————┘    └———┘


            *****  TEST PROGRAM  *****

                    MOV AX,0000
                    INT 13
                    MOV AX,0509     ;
                    MOV BX,0200     ;
                    MOV CX,XXXX     ; Format a Track
                    MOV DX,XX00     ;
                    INT 13          ;
                    JB  'ERROR'
                    MOV AX,0201     ;
                    MOV BX,0200     ;
                    MOV CX,XXXX     ; Read a Track
                    MOV DX,XX00     ;
                    INT 13          ;
                    JNB 'ERROR'
                    JMP 'Compare DATA'

        ┌—————————┐
        │  5-3  Weak Bits  │
        └—————————┘

     方法 : 使用微弱的写入信号,造成磁片上有介於0与1之间的讯号
            磁碟机每次读取时会读到不同资料,一般磁碟机无法写入
            介於0与1的讯号,只能利用写入时突然 Reset 造成 Weak
            Bit ,旦准确度不高,只能靠外来硬体拷贝程式(拷贝卡)

     流程 :
               ┌——————————┐
               │  读取该轨放入"A"区 │
               └————┬—————┘
               ┌————┴—————┐
               │  再读一次放入"B"区 │
               └————┬—————┘
               ┌————┴—————┐
               │ 比对"A"与"B"的资料 ├—┐
               └————┬—————┘  │  资料完全相同
                         │              │┌———┐
                     ┌—┴——┐        └┤ 失败 │
                     │  成功  │          └———┘
                     └————┘

            *****  Weak Bit Test  *****

                MOV AX,0000
                INT 13
                MOV AX,0201       ┐
                MOV BX,0200       │
                MOV CX,0000       │ 读资料到 ES:200
                MOV DX,0000       │
                INT 13            ┘
                MOV AX,0000
                INT 13
                MOV AX,0201       ┐
                MOV BX,0400       │
                MOV CX,0000       │ 读资料到 ES:400
                MOV DX,0000       │
                INT 13            ┘
        LOOP:   MOV BX,200           ┐

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -