菜鳥破解錄(九)之 CDSpace 1.95 (4千字)

看雪資料發表於2000-07-22

菜鳥破解錄(九)之 CDSpace 1.95


軟體名稱:CDSpace
版    本:1.95
簡    介:一個相當不錯的虛擬光碟機程式,操作簡單,最大可同時使用23個虛擬光碟機。

作    者:xiA Qin
等    級:很菜....很菜....
破解日期:2000年7月22日
破解工具:Trw2000 1.22
破解目的:學習註冊碼的破解(簡單)

說  明:

        本文是在我的軟體破解記錄上整理出來的。所以在文中沒有任何的註冊碼,只作技術交流。如若有紕漏,請各位大俠多指教!



執行程式,輸入註冊資訊。

name: xiA Qin          &任意輸入
code: 1234567890123456  必須是16位,為什麼?程式會檢查註冊碼位數。下面會講到


下指令bpx hmemcpy    //下中斷點 

按F5回到程式,按確定,這時會被Trw2000攔截到。

下指令bd *            //屏障中斷點

下指令pmodule        //直接跳到程式的領空

按F10來到下面的程式碼。
...................
015F:00409570  CALL      0040FB9E
015F:00409575  LEA      ECX,[ESP+10]
015F:00409579  CALL      0040FB1A
015F:0040957E  XOR      ESI,ESI
015F:00409580  LEA      ECX,[ESP+14]
015F:00409584  MOV      [ESP+2C],ESI
015F:00409588  CALL      0040FB1A
015F:0040958D  MOV      EAX,[EDI+60]
015F:00409590  LEA      EBP,[EDI+60]
015F:00409593  MOV      BYTE PTR [ESP+2C],01
015F:00409598  CMP      DWORD PTR [EAX-08],06
015F:0040959C  JGE      004095AA
015F:0040959E  PUSH      ESI
015F:0040959F  PUSH      ESI
015F:004095A0  PUSH      00418810
015F:004095A5  JMP      004096AC              把16進位制的10換算成10進位制=16,表示註冊碼
015F:004095AA  MOV      EDX,[EDI+64]        ┍────────────      是16位
015F:004095AD  LEA      EBX,[EDI+64]        ↓
015F:004095B0  CMP      DWORD PTR [EDX-08],10  //檢查註冊碼的位數是不是16位。
015F:004095B4  JZ        004095C2                //是16位就跳到004095C2繼續檢查註冊碼是否正確,
015F:004095B6  PUSH      ESI                      不然死給你看。當然我們可以把它改成無條件 
015F:004095B7  PUSH      ESI                      跳轉 JMP 。
015F:004095B8  PUSH      004187FC
015F:004095BD  JMP      004096AC                 
015F:004095C2  XOR      ECX,ECX
015F:004095C4  MOV      AL,[ECX+EDX]
015F:004095C7  CMP      AL,30
015F:004095C9  JL        004095CF
015F:004095CB  CMP      AL,39
015F:004095CD  JLE      004095DF
015F:004095CF  CMP      AL,41
015F:004095D1  JL        0040969E
015F:004095D7  CMP      AL,46
015F:004095D9  JG        0040969E
015F:004095DF  INC      ECX
015F:004095E0  CMP      ECX,08
015F:004095E3  JL        004095C4
015F:004095E5  LEA      ECX,[ESP+1C]
015F:004095E9  PUSH      ECX
015F:004095EA  PUSH      ECX
015F:004095EB  MOV      ECX,ESP
015F:004095ED  MOV      [ESP+20],ESP
015F:004095F1  PUSH      EBP
015F:004095F2  CALL      0040FC0A
015F:004095F7  MOV      ECX,EDI
015F:004095F9  CALL      004096F0
015F:004095FE  LEA      ECX,[ESP+10]
015F:00409602  CALL      0040FCE2
015F:00409607  XOR      EDX,EDX            <--|
015F:00409609  LEA      EAX,[ESP+14]          |
015F:0040960D  MOV      DL,[ESI+ESP+1C]        |計
015F:00409611  PUSH      EDX                    |算
015F:00409612  PUSH      004187F4              |正
015F:00409617  PUSH      EAX                    |確
015F:00409618  CALL      0040FB98              |的
015F:0040961D  ADD      ESP,0C                |注
015F:00409620  LEA      ECX,[ESP+14]          |冊
015F:00409624  PUSH      ECX                    |碼
015F:00409625  LEA      ECX,[ESP+14]          |.
015F:00409629  CALL      0040FBEC              |注意 EDX 的變化。
015F:0040962E  INC      ESI                    |
015F:0040962F  CMP      ESI,08                |
015F:00409632  JL        00409607            <--|
015F:00409634  LEA      ECX,[ESP+10]
015F:00409638  CALL      0040FBC8
015F:0040963D  MOV      ECX,EBX            //正確的註冊碼 D EAX.
015F:0040963F  CALL      0040FBC8
015F:00409644  MOV      EAX,[EBX]
015F:00409646  MOV      EDX,[ESP+10]
015F:0040964A  PUSH      EAX
015F:0040964B  PUSH      EDX
015F:0040964C  CALL      [0041268C]
015F:00409652  ADD      ESP,08
015F:00409655  TEST      EAX,EAX
015F:00409657  PUSH      00
015F:00409659  PUSH      00
015F:0040965B  JNZ      004096A7          //比較註冊碼是否相等。
015F:0040965D  PUSH      004187D4         
015F:00409662  CALL      0040FB92          //註冊成功對話方塊。
015F:00409667  CALL      0040FB68
015F:0040966C  MOV      ESI,[EAX+04]
015F:0040966F  MOV      EAX,[EBP+00]
015F:00409672  PUSH      EAX
015F:00409673  PUSH      004187CC
015F:00409678  MOV      ECX,ESI
015F:0040967A  CALL      0040BD70          //註冊失敗對話方塊。
015F:0040967F  MOV      EAX,[EBX]
015F:00409681  MOV      ECX,ESI
015F:00409683  PUSH      EAX
015F:00409684  PUSH      004187C0
015F:00409689  CALL      0040BD70
015F:0040968E  MOV      ECX,EDI
015F:00409690  MOV      BYTE PTR [ESI+000000C4],00
.........................

相關文章