破解<<破解堅盾磁碟加密系統 V4.0>>的全過程 (10千字)

看雪資料發表於2001-10-23

破解<<破解金盾磁碟加密系統 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

相關文章