瘋狂單詞v1.6破解 (5千字)

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

破解人 :tieji
破解時間:2001-11-1
破解工具:TRW2000 V1.23  W32dasm黃金版  Procdump  UltraEdit-32
作者主頁:http://wordslover.yeah.net
說    明:被公認為智慧化程度最高的單詞記憶軟體。依靠內建的詞彙量動態
        估測,自動難度進級,效果自適應複習,隨機試題生成等智慧塊,
        以及36000詞條的記法例句記憶庫,使用者可以輕鬆進入一種瘋狂狀態,
        將單詞記憶的效率發揮到及至。
先用Fi檢測,發現程式有殼,upx v0.62的,用Procdump輕鬆去殼......

啟動軟體,填入註冊資訊:
使用者名稱稱:caoxinyu
電子郵箱: caoxinyu@xxxxxxx.com
註冊號碼:54321123455432112345  <----填20個(為什麼?看下面說明)
開啟TRW2000,下斷點bpx hmemcpy,點確定,被攔下。
Bc* 清斷點,pmodule 回程式領空,然後按F12六次(七次就是出現註冊失敗框了),按F10來到:


:00405F43 8B44243C                mov eax, dword ptr [esp+3C]
:00405F47 8B40F8                  mov eax, dword ptr [eax-08]
:00405F4A 83F814                  cmp eax, 00000014            ;註冊碼是否為20位
:00405F4D 7413                    je 00405F62                  ;不是就完,是就跳
:00405F4F 6A00                    push 00000000
:00405F51 6A00                    push 00000000
:00405F53 68C8E74700              push 0047E7C8
:00405F58 E8B9B20400              call 00451216  ;出現"對不起,註冊號碼不正確,您不是合法的註冊使用者!"
:00405F5D E983000000              jmp 00405FE5
:00405F62 56                      push esi
:00405F63 57                      push edi
:00405F64 33F6                    xor esi, esi
:00405F66 8D7C2448                lea edi, dword ptr [esp+48]
:00405F6A 6A01                    push 00000001
:00405F6C 8D4C2410                lea ecx, dword ptr [esp+10]
:00405F70 56                      push esi
:00405F71 51                      push ecx
:00405F72 8D4C2450                lea ecx, dword ptr [esp+50]
:00405F76 E847CF0300              call 00442EC2
:00405F7B 8B00                    mov eax, dword ptr [eax]
:00405F7D 50                      push eax
:00405F7E E8A2030300              call 00436325
:00405F83 83C404                  add esp, 00000004
:00405F86 8D4C240C                lea ecx, dword ptr [esp+0C]
:00405F8A 8907                    mov dword ptr [edi], eax
:00405F8C E86CF50300              call 004454FD
:00405F91 46                      inc esi
:00405F92 83C704                  add edi, 00000004
:00405F95 83FE14                  cmp esi, 00000014
:00405F98 7CD0                    jl 00405F6A      ;20次迴圈
:00405F9A 8D4C2410                lea ecx, dword ptr [esp+10]
:00405F9E E8ED5B0000              call 0040BB90       ;關鍵call,跟進去(見下)
:00405FA3 5F                      pop edi
:00405FA4 5E                      pop esi
:00405FA5 84C0                    test al, al            ;當al不等於零時,下面就跳,即成功
:00405FA7 6A00                    push 00000000
:00405FA9 6A00                    push 00000000
:00405FAB 7507                    jne 00405FB              ;關鍵跳,跳過去就成功
:00405FAD 68C8E74700              push 0047E7C8            ;出現"對不起,註冊號碼不正確,您不是合法的註冊使用者!"
:00405FB2 EB1C                    jmp 00405FD0           ;到此處就完!
:00405FB4 68A8E74700              push 0047E7A8
:00405FB9 E858B20400              call 00451216         ;出現"恭喜,您已經是合法的註冊使用者!"
:00405FBE 8D4C2408                lea ecx, dword ptr [esp+08]
:00405FC2 E8495D0000              call 0040BD10
:00405FC7 6A00                    push 00000000
:00405FC9 6A00                    push 00000000
:00405FCB 687CE74700              push 0047E77C            ;出現"您需要退出後重新執行瘋狂單詞使註冊生效!"
:00405FD0 E841B20400              call 00451216            ;調出提示框
======================================================================================

上面的:00405F9E E8ED5B0000              call 0040BB90 到這裡:

:0040BB90 53                      push ebx
:0040BB91 56                      push esi
:0040BB92 8BF1                    mov esi, ecx
:0040BB94 8D4608                  lea eax, dword ptr [esi+08]
:0040BB97 8D4E34                  lea ecx, dword ptr [esi+34]
:0040BB9A 50                      push eax
:0040BB9B 51                      push ecx
:0040BB9C 8BCE                    mov ecx, esi
:0040BB9E E88DFDFFFF              call 0040B930        ;計算比較註冊碼,
:0040BBA3 8BCE                    mov ecx, esi
:0040BBA5 8AD8                    mov bl, al          ;將比較結果al放入bl
:0040BBA7 E864010000              call 0040BD10        ;此call好像是比較註冊資訊中有無opq98@263.net
                                                      ;http://iceworld.126.com/等資訊,防破解吧。
:0040BBAC 8AC3                    mov al, bl          ;將比較結果bl放回al
:0040BBAE 5E                      pop esi
:0040BBAF 5B                      pop ebx
:0040BBB0 C3                      ret
==============================================
當然只在註冊的地方改改跳轉是沒有用的,這軟體在有限制的地方都計算比較註冊碼,本人又
無力算出註冊碼,革命尚未成功,還得繼續努力......
比較了幾個有限制的地方,發現都有 test al, al  jne 語句 ,只要al不為零即可,
而且在test al, al前都有一個call,這些call的內容與上面的call 0040BB90差不多,看上面的
call:  只要最後的mov a1 ,bl 送入al的不為零即可,而從上面的計算bl肯定為零(除非瞎貓
碰到死耗子,註冊碼給蒙對了,我可沒這麼好的運氣),分析:將有限制處的mov a1 ,bl  語句nop掉。

調起UltraEdit-32,查8BCE8AD8有八處,分別如下:
8AD8E8640100008AC3改為----->8AD8E8640100009090
8AD8E8340100008AC3改為----->8AD8E8340100009090
8AD8E8040100008AC3改為----->8AD8E8040100009090
8AD8E8D40000008AC3改為----->8AD8E8D40000009090
8AD8E8A40000008AC3改為----->8AD8E8A40000009090
8AD8E8740000008AC3改為----->8AD8E8740000009090
8AD8E8440000008AC3改為----->8AD8E8440000009090
8AD8E8140000008AC3改為----->8AD8E8140000009090

執行,哈!限制全沒了。

爆破完成!

相關文章