• 标 题:破解<<破解坚盾磁盘加密系统 V4.0>>的全过程 (10千字)
  • 作 者:asmboy[BCG]
  • 时 间:2001-10-23 9:06:35
  • 链 接:http://bbs.pediy.com

破解<<破解金盾磁盘加密系统 V4.0>>的全过程
--------------------------------------------------------------------------------

    前两天从朋友那里得到一个磁盘加密软件,听朋友说是很好用哦,还说可以加密WINDOWS98下的
程序的,不知道怎么样,反正没有事做,拿来练练手吧。该软件是通过软盘安装的,每次安装要检查
软盘上的钥匙,唉,可惜朋友也没有钥匙盘,只有T了哦。开始写教程了哦。。。

破解:AsmBoy[BCG]
Mail:asmboy@263.net
QQ:384772
该软件下载地址http://www.safesrx.com/crack/disk/shield.zip

难度级别:中级:)

类别:软磁盘类的加解密

所需工具:

TR 2.52
BWT 2.5
汇编知识 (至少是基础)
大脑一个 (你有一个吧 , 我是有的! :p )

软件历史(以下是这软件的README文件,看这说明感觉不错哦,不知是真是假
听说有中科院的技术哦,只有大家试了才知道,不要打我,开始转入正题)

      软件加密是一个非常专业的领域,不仅需要掌握丰富的计算机硬件知识,
  而且需要对各种操作系统进行深入的剖析和钻研。从八年前研制出 DOS下的
  第一块加密卡起,每一次操作系统的升级,对我们既是挑战又是机遇,眼见
  不少加密领域的同行跟不上Windows 的升级步伐而被淘汰,而我们由于背靠
  中科院的强大技术实力,从DOS 到 Windows3.1 到 Windows98,不断开发出
  相应的产品,使我们的用户成倍壮大。考虑到一些用户怕我们成为解密者的
  众矢之的少许顾虑,我们很少在公共媒体上作广告,而我们所以赢得众多用
  户的信赖(许多已合作四,五年),靠的就是我们的技术实力和完善的服务。


  ----------------------------------------------------------------

          本磁盘加密系统的使用步骤:
  步骤 1:
      将系统盘插入 A:驱(打开写保护),运行 SETUP (回车) ,在 C:盘中
      将生成一个子目录 SHIELD 和若干文件。

  步骤 2:
      运行 SHIELD.EXE (回车),第一次运行该文件将完成判断密钥盘的工
      作。如果出现提示“Shield.exe Install to HD...OK!”说明密钥盘
      判断正确,此时务必将加密系统盘取出收起保存,以免下面的操作将
      系统盘密钥破坏;如果未出现上面提示,仔细检查软盘是否插好,然
      后重试步骤 2 。

  步骤 3:
      将格式化过的软盘(打开写保护)插入软驱,运行 SHIELD.EXE(回车),
      按提示设置相应参数,(建议装机台数设为2或3;装机次数和运行
      次数设为零,即不限装机次数和运行次数),将按相应参数生成一个
      密钥盘。然后输入需加密的可执行文件名,例如 EXAMP.EXE,准备好
      后回车。在当前目录的加密子目录中将生成加密过的文件 EXAMP.EXE
      和 EXAMP.INS 。

  步骤 4:
      到此加密工作完成,您可将当前的密钥盘和相应的加密文件EXAMP.EXE
      和 EXAMP.INS 以及原有的其它文件一起提供给您的用户。您的用户在
      使用您的软件前,必须先插上密钥盘,第一次运行 EXAMP.EXE,完成
      判读密钥盘并将密钥安装到机器的过程。此后密钥盘可收起,只要是
      在该台机器,再运行 EXAMP.EXE 时效果就和加密前完全一样。

          另外,您的用户第一次运行 EXAMP.EXE完成判读密钥盘的过程,
      也可直接由您做在您的 SETUP 中。为了避免在 SETUP 中造成停顿,
      运行 EXAMP.EXE 时可带上参数:
            EXAMP.EXE -H (回车)  或  EXAMP.EXE -h (回车) 可隐去任
      何提示,避免停顿。


------------------------------------------------

            下面是一些注意事项:

      注意1. 密钥盘由于我们采用了先进的磁盘指纹技术,因此是唯一的
              不可复制的。

      注意2. 在步骤3中我们只对 EXAMP.EXE 进行了加密,而事实上在一
              个密钥盘上可对无数个可执行文件加密,只要保证和密钥盘
              对应就行。

      注意3. 在步骤4中如果您的软件是以光盘形式提供给用户的,那么
              可将 EXAMP.INS 做在光盘里,因为该文件是通用的,而
              EXAMP.EXE 是不通用的,每次随密钥盘的生成而不同,必须
              放在密钥盘上。在第一次运行 EXAMP.EXE 判读密钥时须保
              证 EXAMP.EXE 和 EXAMP.INS 在同一子目录中。

      注意4. 在步骤3中如果要生成大量的密钥盘,可用批处理方式:
              先运行:
                        SHIELD.EXE  -E (回车)
              设置好加密参数和需加密的可执行文件名,按 F2 键存盘,
              以后每次只需运行:

                        SHIELD.EXE  -A (回车)
                便能快速生成一个密钥盘和生成加密文件。

破解步骤:
该软件是加壳了的哦,无法用TR载入,只有先用D.Boy兄BWT把壳了才能T的哦
先脱壳吧,用BWT脱壳吧(不要告诉我,你不会哦,晕)
以下是用BWT脱壳后的程序,用TR 载入

下断点bpint 13,用G执行程序,被断下

MOV      AH,08                ;2E99:0274  B408           
MOV      DL,00                ;2E99:0276  B200           
INT      13                    ;2E99:0278  CD13           
CMP      BL,[CS:06B8]          ;2E99:027A  2E3A1EB806    判断是否有无1.44M软盘驱动器
JNE      028B                  ;2E99:027F  750A           
MOV      [BYTE CS:06BA],00    ;2E99:0281  2EC606BA0600   
NOP                            ;2E99:0287  90             
JMP      0292                  ;2E99:0288  EB08           
NOP                            ;2E99:028A  90             
MOV      [BYTE CS:06BA],01    ;2E99:028B  2EC606BA0601   
NOP                            ;2E99:0291  90             
PUSH      CS                    ;2E99:0292  0E             
POP      DS                    ;2E99:0293  1F             
PUSH      CS                    ;2E99:0294  0E             
POP      ES                    ;2E99:0295  07             

MOV      [WORD CS:033C],0000  ;2E99:0296  2EC7063C030000 
MOV      AX,0000              ;2E99:029D  B80000         
INT      13                    ;2E99:02A0  CD13          磁头复位
MOV      AX,0201              ;2E99:02A2  B80102        读磁盘功能
MOV      CH,[CS:06BB]          ;2E99:02A5  2E8A2EBB06    读80磁道
MOV      CL,[CS:033B]          ;2E99:02AA  2E8A0E3B03    读2FH扇区,即47扇区
MOV      DH,01                ;2E99:02AF  B601          读第2面
MOV      DL,[CS:06BA]          ;2E99:02B1  2E8A16BA06    驱动器A
LEA      BX,[06C3]            ;2E99:02B6  8D1EC306      读到cs:06c3
INT      13                    ;2E99:02BA  CD13          开始读加密区
INC      [BYTE CS:033B]        ;2E99:02BC  2EFE063B03    将扇区数加1
ADD      [WORD CS:033C],02    ;2E99:02C1  2E83063C0302   

MOV      AX,0000              ;2E99:02C7  B80000         
INT      13                    ;2E99:02CA  CD13          再次磁头复位 
MOV      AX,0201              ;2E99:02CC  B80102        读磁盘功能 
MOV      CH,[CS:06BB]          ;2E99:02CF  2E8A2EBB06    读80磁道 
MOV      CL,[CS:033B]          ;2E99:02D4  2E8A0E3B03    读30H扇区,即48扇区 
MOV      DH,01                ;2E99:02D9  B601          读第2面 
MOV      DL,[CS:06BA]          ;2E99:02DB  2E8A16BA06    驱动器A 
LEA      BX,[06C3]            ;2E99:02E0  8D1EC306      读到cs:06c3 
INT      13                    ;2E99:02E4  CD13          开始读加密区 
JAE      032D                  ;2E99:02E6  7345          读成功了则跳到032d 
INC      [BYTE CS:033B]        ;2E99:02E8  2EFE063B03    未成功,将扇区数加1 
ADD      [WORD CS:033C],02    ;2E99:02ED  2E83063C0302   

MOV      CX,[CS:033C]          ;2E99:02F3  2E8B0E3C03     
PUSH      CX                    ;2E99:02F8  51            将CX进站 
MOV      AX,0000              ;2E99:02F9  B80000         
INT      13                    ;2E99:02FC  CD13          再次磁头复位 
MOV      AX,0201              ;2E99:02FE  B80102        读磁盘功能 
MOV      CH,[CS:06BB]          ;2E99:0301  2E8A2EBB06    读80磁道 
MOV      CL,[CS:033B]          ;2E99:0306  2E8A0E3B03    读31H扇区,即49扇区 
MOV      DH,01                ;2E99:030B  B601          读第2面 
MOV      DL,[CS:06BA]          ;2E99:030D  2E8A16BA06    驱动器A 
LEA      BX,[06C3]            ;2E99:0312  8D1EC306      读到cs:06c3 
INT      13                    ;2E99:0316  CD13          开始读加密区 
POP      CX                    ;2E99:0318  59            返回CX值 
JAE      032D                  ;2E99:0319  7312          读成功了则跳到032d 
LOOP      02F8                  ;2E99:031B  E2DB          不成功,刚返回02F8再读,循环3次 
INC      [BYTE CS:033B]        ;2E99:031D  2EFE063B03    3次如果都没有成功,将扇区数加1 
CMP      [BYTE CS:033B],32    ;2E99:0322  2E803E3B0332  比罗扇区数是否为50 
JNE      02F3                  ;2E99:0328  75C9          不是,则从新再读过 
JMP      0356                  ;2E99:032A  EB2A          注意:如果是,就退出程序 
NOP                            ;2E99:032C  90             

以下开始比较加密数据:

PUSH      CS                    ;2E99:032D  0E             
POP      DS                    ;2E99:032E  1F             
LEA      SI,[06C3]            ;2E99:032F  8D36C306       
CMP      [WORD SI],3539        ;2E99:0333  813C3935      比较读出来的数据的前两个字节
JE        033E                  ;2E99:0337  7405          是否为95,如果是开始进一步比较数据 
JMP      031D                  ;2E99:0339  EBE2          不是,刚退出程序 
DAS                            ;2E99:033B  2F             
ADD      [BX+SI],AL            ;2E99:033C  0000           

PUSH      CS                    ;2E99:033E  0E            以下为开始进一步比较数据 
POP      DS                    ;2E99:033F  1F             
LEA      SI,[06C3]            ;2E99:0340  8D36C306       
LODSW                          ;2E99:0344  AD             
CALL      2528                  ;2E99:0345  E8E021        将读出来的数据进行算法处理 
MOV      AX,[CS:06C1]          ;2E99:0348  2EA1C106       
CMP      AX,[CS:06CA]          ;2E99:034C  2E3B06CA06  比较算法处理后[cs:06ca]的数据是否为0E1H
JNE      0356                  ;2E99:0351  7503        不是刚退出程序 
JMP      0360                  ;2E99:0353  EB0B        正确,进一步比较数据 
NOP                            ;2E99:0355  90             
CALL      258B                  ;2E99:0356  E83222         
LEA      DX,[0B09]            ;2E99:0359  8D16090B       
JMP      05C4                  ;2E99:035D  E96402         
PUSH      CS                    ;2E99:0360  0E             
POP      DS                    ;2E99:0361  1F             
CMP      [WORD CS:06CC],00    ;2E99:0362  2E833ECC0600 再次比较[cs:06cc]是否为0 
JNE      0388                  ;2E99:0368  751E        不是,刚退出程序 
CMP      [WORD CS:06D0],00    ;2E99:036A  2E833ED00600 是,进一步比较数据 
JNE      0375                  ;2E99:0370  7503        比较[cs:06d0]是否为0,不是,就死定了
JMP      0444                  ;2E99:0372  E9CF00      正确,全部通过,开始安装 
       
 
哇,总算写完了啊,为时1小时2分,现在都快零晨2点了后,应该写得比较详细吧,如果有什么不懂可以问我
帮助别人是我最大的快乐,所谓助人为快乐之本!:)哦,有点睡意了,明天见吧.错了,今天见,呵。。。
我明天会写出制作KEY的程序来的,要的话,现在感快报名哦。

                                        Crack by AsmBoy[BCG]  Mail:asmboy@263.net QQ:384772