欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

最全的加密,解密基础教程

程序员文章站 2022-06-15 21:50:40
基础教程     第一章 使用规则 1-1  前  言   要学会解密之前 ,您必须了解什么是加密 ,如何加密 ,以及跟踪程序,这样对于解密就再也不是梦想 ,使用的工具只有...

基础教程
 
 
第一章 使用规则
1-1  前  言
  要学会解密之前 ,您必须了解什么是加密 ,如何加密 ,以及跟踪程序,这样对于解密就再也不是梦想 ,使用的工具只有 DEBUG.COM ,不过现在的程序一般都会检测有无载入 DEBUG ,若有则死机!!
1-2 DEBUG 与文件
  学过 DEBUG 的人都知道以下的指令 :
    T      --- 单步执行 ,一次执行一个指令
    G <Address> --- 执行到 <Address> 就停下来
    G      --- 执行完载入的程序
或 "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 ,这样当读写
         这个磁道就会造成错误 ,但只能防标准的 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。
 
第三章 磁盘控制卡的认识
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