電子小說閱讀器黃金版破解手記
作者: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
寫的不好,請多指教!