電子小說閱讀器黃金版破解手記 (5千字)

看雪資料發表於2001-11-14

電子小說閱讀器黃金版破解手記

作者:crackYY[CNCG]
工具:FileInfo v2.45 trw2000 v1.22 W32Dasm8.93黃金版 
 
這是一個很別制的文字閱讀器,我很喜歡它,不過不註冊只能使用30次(真小氣)。
  首先用FI檢測它是否加殼,又是沒殼(難到現在流行不加殼??)。好,請出TRW大俠,開工!執行電子小說閱讀器,馬上會出現一個註冊視窗,隨便添上一個使用者名稱和一個註冊碼。我添的使用者名稱是:crackYY 註冊碼:78787878 ,然後Ctrl+N撥出TRW,下斷點:bpx hmemcpy ,按F5把控制權交給電子小說閱讀器。點選確定按鈕,TRW彈出,下命令:bc * 去除斷點,現下命令:pmodule 直接來到程式領空,看到如下程式碼:

0167:00438A1A  CALL    `USER32!CallWindowProcA`
0167:00438A1F  MOV      [EBX+0C],EAX
0167:00438A22  MOV      EAX,[EBX]
0167:00438A24  CMP      EAX,BYTE +0C
0167:00438A27  JNZ      00438A44
0167:00438A29  MOV      EDX,[EBX+08]
0167:00438A2C  PUSH    EDX
0167:00438A2D  MOV      ECX,[EBX+04]
0167:00438A30  MOV      EDX,EAX
0167:00438A32  MOV      EAX,ESI
0167:00438A34  CALL    00434870
0167:00438A39  JMP      SHORT 00438A44
0167:00438A3B  MOV      EDX,EBX
0167:00438A3D  MOV      EAX,ESI
0167:00438A3F  CALL    00435E00

  然後按了幾十次F12也沒出錯,氣死我啦!那好,我今天就換個方法來破解這個小東東(等死吧!)。拿出我的"屠龍寶刀"――W32Dasm,然後反彙編電子小說閱讀器,用串式參考找到:"註冊失敗,請重新註冊冊!"。再向上找je jz等跳轉指令,嗯,發現一個:

          * Possible StringData Ref from Code Obj ->"350512"
                                            |
          :004B605E BA18624B00              mov edx, 004B6218                                 
          :004B6063 E84CDFF4FF              call 00403FB4 ―――在這裡下斷點:bpx 004b6063
          :004B6068 752E                    jne 004B6098  ――――就是這個啦!
          :004B606A 6A40                    push 00000040
          * Possible StringData Ref from Code Obj ->"提示"
                                            |
          :004B606C B9E0614B00              mov ecx, 004B61E0
          * Possible StringData Ref from Code Obj ->"註冊失敗,請重新註冊!"

  既然已經找到到啦,那還等什麼?退出W32Dasm,然後執行電子小說閱讀器,Ctrl+N撥出TRW,下斷點:bpx 004b6063 ,使用者名稱:crackYY 註冊碼:78787878,點選確定按鈕。這裡TRW會彈出,攔到以下程式碼:

0167:004B605E  MOV      EDX,004B6218
0167:004B6063  CALL    00403FB4――――游標停在這一行,按F8進入。
0167:004B6068  JNZ      004B6098
0167:004B606A  PUSH    BYTE +40
0167:004B606C  MOV      ECX,004B61E0
0167:004B6071  MOV      EDX,004B6330
0167:004B6076  MOV      EAX,[004E8C6C]
0167:004B607B  MOV      EAX,[EAX]
0167:004B607D  CALL    00453078―――――――――走到這裡出錯。
0167:004B6082  MOV      EAX,[004E8A20]
0167:004B6087  MOV      EAX,[EAX]
0167:004B6089  MOV      EAX,[EAX+0460]
0167:004B608F  MOV      DL,01
0167:004B6091  CALL    0044541C
0167:004B6096  JMP      SHORT 004B6114

  按F8跟進後,會看到以下程式碼:

0167:00403FB1  LEA      EAX,[EAX+00]
0167:00403FB4  PUSH    EBX――――――下命令:d edx 會看到一組數字:350512
0167:00403FB5  PUSH    ESI
0167:00403FB6  PUSH    EDI
0167:00403FB7  MOV      ESI,EAX
0167:00403FB9  MOV      EDI,EDX
0167:00403FBB  CMP      EAX,EDX
0167:00403FBD  JZ      NEAR 00404052
0167:00403FC3  TEST    ESI,ESI
0167:00403FC5  JZ      0040402F
0167:00403FC7  TEST    EDI,EDI
0167:00403FC9  JZ      00404036
0167:00403FCB  MOV      EAX,[ESI-04]
0167:00403FCE  MOV      EDX,[EDI-04]
0167:00403FD1  SUB      EAX,EDX

  下命令:bc * 清除斷點 按F5反回程式,輸入使用者名稱:crackYY 註冊號:350512 ,點選確定。怎麼回事兒?還是註冊不成功?難到這個不是註冊碼?呵呵,這點小計量就想擊退我?嗯…想一想,還有哪兒可疑。哦,對了,可以到出錯的call裡看看。說幹就幹,Ctrl+N撥出TRW,下斷點:bpx 004b607d ,接F5反回,點確定按鈕,TRW彈出,游標停在004B607D處。接看按F8跟進,看到如下程式碼:

0167:00453076  MOV      EAX,EAX
0167:00453078  PUSH    EBP―――――――――在這裡下命令:d ecx會看到剛才的那組數字和一組字母:liyy
0167:00453079  MOV      EBP,ESP
0167:0045307B  ADD      ESP,BYTE -50
0167:0045307E  PUSH    EBX
0167:0045307F  PUSH    ESI
0167:00453080  PUSH    EDI
0167:00453081  MOV      EDI,ECX
0167:00453083  MOV      ESI,EDX
0167:00453085  MOV      [EBP-04],EAX
0167:00453088  MOV      EBX,[EBP+08]
0167:0045308B  CALL    `USER32!GetActiveWindow`
0167:00453090  MOV      [EBP-0C],EAX
0167:00453093  PUSH    BYTE +02
0167:00453095  MOV      EAX,[EBP-0C]

  這回看到的還是剛才的那組數字,不過多了一組英文字母(liyy),這個會不會是使用者名稱呢?不管那麼多啦,記下字母,按F5返回電子小說閱讀器,使用者名稱添上:liyy 註冊碼:350512 ,點選確定。"恭喜您,註冊成功!您以成為本程式的正式使用者…………"。哈哈,我爽!
 
                      好啦,結束戰鬥!啊,2點多啦,好睏呀。



                                                                                                crackYY[CNCG]
                                                                                                E-mail:crackYY@hotmail.com
                                                                           
                                                                                                    寫的不好,請多指教!

相關文章