用WKTVBDE搞定P_code英語小精靈1.20 (2千字)

看雪資料發表於2015-11-15

文章名稱:用WKTVBDE搞定英語小精靈1.20
寫作原因:用smartcheck除錯時候顯示的機器號不同,那麼取得的註冊碼沒有用
作    者:staray[BCG]
下載地址:http://www.kytop.net/englishelf/EE120.exe
軟體大小:7366kb
使用工具:WKTVBDE
保護方式:機器碼+註冊碼
軟體簡介:英語小精靈融合了逆向學習法和瘋狂英語這兩種有效的英語學習方法的精髓,並加以創新,集英語的“聽、說、讀、寫”功能於一身,解決了困擾國人的“中國式英語”和“啞巴英語”的問題。
破解過程:用WKTVBDE裝入英語小精靈1.20,中斷在程式入口後點FormManager,
form選FrmRegister(知道為什麼吧),在command選擇cmdRegister,點bpx(即0041CCF8h處),F5繼續執行,出現未註冊提示,不管按確定透過,進入執行介面,點選右上角彈出選單,選擇軟體註冊,出現註冊介面,在註冊號那裡輸入staray[BCG],點選“註冊”,被攔截
0041CCF8: 04 FLdRfVar 0065F378h//////////攔截在這裡
0041CCFB: 21 FLdPrThis 00443664h
0041CCFC: 0F VCallAd frmRegister.txtSoftCode
0041CCFF: 19 FStAdFunc
0041CD02: 08 FLdPr
0041CD05: 0D VCallHresult get__ipropTEXTEDIT
0041CD0A: 3E FLdZeroAd
0041CD0D: FD Lead2/PopTmpLdAdStr
0041CD11: 0A ImpAdCallFPR4 ModPublic!0041DC54h
0041CD16: 2F FFree1Str
0041CD19: 1A FFree1Ad
0041CD1C: 0B ImpAdCallI2 ModPublic!0041D470h////////,F10執行到此處後F8進入,哈哈
0041CD21: 1C BranchF 0041CD76 ///////////關鍵跳轉?
0041CD24: 1B LitStr: '本軟體正確註冊,請訪問主頁以獲取本軟體的最新情況'
==============================================================
跟入後F10來到此處,請仔細看

0041D4C8: 3A LitVarStr ''
0041D4CD: 4E FStVarCopyObj 0065F2A4h
0041D4D0: 04 FLdRfVar 0065F2A4h
0041D4D3: 0B ImpAdCallI2 kGen!00426564h
0041D4D8: 31 FStStr
0041D4DB: 35 FFree1Var
0041D4DE: F4 LitI2_Byte: -> 3h 3
0041D4E0: 2B PopTmpLdAd2 0065F292 -> fffff2d4h -3372
0041D4E3: 04 FLdRfVar 0065F2D4h
0041D4E6: 3A LitVarStr ''
0041D4EB: 4E FStVarCopyObj 0065F2A4h
0041D4EE: 04 FLdRfVar 0065F2A4h
0041D4F1: 0B ImpAdCallI2 kGen!00426564h
0041D4F6: 31 FStStr
0041D4F9: 35 FFree1Var
0041D4FC: 6C ILdRf 0044502Ch//////這裡1,可以修改為一致的,但不要改錯
0041D4FF: 6C ILdRf 00444FE8h////////這裡2,改錯後出現正確視窗,但重啟還是未註冊,因為一個是真註冊碼計算出來的,一個是假註冊碼計算出來的
0041D502: 30 EqStr//////////進行比較
0041D504: 1C BranchF 0041D50F

==================================================
下面是message視窗的內容
tack dump is enabled and relative to ESP<-EBP.
Breakpoint reached.
FStStr -> '2351033393686136'//////////這是機器碼
Freeing Addrs: 0065F2A4h 0065F294h
FStStr -> 'staray[BCG]'//////這是輸入的假註冊碼
FStStr -> 'ICOZ59RNPUW6690E'//////這是真的註冊碼,注意零和O
FStStr -> 'E092-155F-8F11-CC15'////這兩個把真的和假的註冊碼進行計算
FStStr -> '1B7B-27A0-7837-5A7C'後的結果,也就是比較


退出後重新啟動,輸入註冊碼,成功!




此文只做討論,不得用於商業用途!

相關文章