《WinImage v5.00.5007 註冊碼破解》 (7千字)

看雪資料發表於2001-05-10

WinImage v5.00.5007 註冊碼破解(轉載請保持完整,謝謝!)
作者:BinC
破解工具:Trw2000 或者 W32DASM(特別感謝這兩款軟體的作者^_^)

軟體名稱:WinImage
整理日期: 2001.05.10
最新版本:5.00.5007
軟體授權:共享軟體
使用平臺:Win95/98/NT
軟體下載:http://download.21cn.com/file/utility/cipan/wibt5007.zip
軟體簡介:
    據說是最好的WIN下的映像檔案處理工具,但我沒試過,因為純粹是拿來練手^_^

前言:早上6:30分到21CN下載了它,試用一下後7:00開始破解,7:15破解成功,然後上學,中途逃課來寫這篇文章^_^
   
首先開啟WinImage觀察一下,發現註冊方法是用註冊碼方式的,而且此軟體有兩種模式:Standard(一般)和Professional(專業)(這些可看Options/WinImage mode selection選單),應該有兩種模式的註冊碼。開啟註冊視窗,隨便輸入註冊名和註冊碼。這裡註冊名用BinC,註冊碼用12345678

要注意的是,註冊名最好不要多於8個字元(其實多於8個字元也沒關係,下文會講到)。而且此軟體一個註冊名有多達6個註冊碼,其中兩個是專業模式的註冊碼,下文也會講到。

啟動TRW,然後設一斷點。這裡用的是攔載註冊碼文字框的WM_GETTEXT訊息(當然,你可以用Hmemcpy、GETDLGITEMTEXTA等常用的,這裡就不班門弄斧了)。回到註冊視窗,單擊OK,程式被攔。然後按F10來到以下程式碼(以下程式碼是從W32SASM 上COPY來的,在TRW中程式碼是一樣的):

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0043926E(C)
|
:00439273 FF750C                  push [ebp+0C]
:00439276 8D8500FFFFFF            lea eax, dword ptr [ebp+FFFFFF00]
:0043927C 50                      push eax
:0043927D E8E0FEFFFF              call 00439162  <-----注意此CALL
:00439282 FF7508                  push [ebp+08]
:00439285 E804FFFFFF              call 0043918E
:0043928A 8BF8                    mov edi, eax
:0043928C 83C40C                  add esp, 0000000C
:0043928F 81FF26DDDCB8            cmp edi, B8DCDD26
:00439295 0F84FE000000            je 00439399
:0043929B 8D8500FFFFFF            lea eax, dword ptr [ebp+FFFFFF00]
:004392A1 50                      push eax
:004392A2 8D8500FEFFFF            lea eax, dword ptr [ebp+FFFFFE00]
:004392A8 57                      push edi
:004392A9 50                      push eax
:004392AA E862FFFFFF              call 00439211
                                  ~~~~~~~~~~~~~~此CALL過後下 d eax 可看到一般模式的註冊碼
:004392AF 59                      pop ecx
:004392B0 59                      pop ecx
:004392B1 50                      push eax

* Reference To: CRTDLL.strcmp, Ord:01CFh
                                  |
:004392B2 E8AD3A0000              Call 0043CD64
:004392B7 59                      pop ecx
:004392B8 85C0                    test eax, eax
:004392BA 59                      pop ecx
:004392BB 0F84A0000000            je 00439361
:004392C1 8D8500FFFFFF            lea eax, dword ptr [ebp+FFFFFF00]
:004392C7 50                      push eax
:004392C8 8D8748190514            lea eax, dword ptr [edi+14051948]
:004392CE 50                      push eax
:004392CF 8D8500FEFFFF            lea eax, dword ptr [ebp+FFFFFE00]
:004392D5 50                      push eax
:004392D6 E836FFFFFF              call 00439211
                                  ~~~~~~~~~~~~~此CALL過後下 d eax 可看到一般模式的註冊碼
:004392DB 59                      pop ecx
:004392DC 59                      pop ecx
:004392DD 50                      push eax

* Reference To: CRTDLL.strcmp, Ord:01CFh
                                  |
:004392DE E8813A0000              Call 0043CD64
:004392E3 59                      pop ecx
:004392E4 85C0                    test eax, eax
:004392E6 59                      pop ecx
:004392E7 7478                    je 00439361
:004392E9 8D8500FFFFFF            lea eax, dword ptr [ebp+FFFFFF00]
:004392EF 50                      push eax
:004392F0 8D8754190617            lea eax, dword ptr [edi+17061954]
:004392F6 50                      push eax
:004392F7 8D8500FEFFFF            lea eax, dword ptr [ebp+FFFFFE00]
:004392FD 50                      push eax
:004392FE E80EFFFFFF              call 00439211
                                  ~~~~~~~~~~~~~此CALL過後下 d eax 可看到一般模式的註冊碼
:00439303 59                      pop ecx
:00439304 59                      pop ecx
:00439305 50                      push eax

* Reference To: CRTDLL.strcmp, Ord:01CFh
                                  |
:00439306 E8593A0000              Call 0043CD64
:0043930B 59                      pop ecx
:0043930C 85C0                    test eax, eax
:0043930E 59                      pop ecx
:0043930F 7450                    je 00439361
:00439311 8D8500FFFFFF            lea eax, dword ptr [ebp+FFFFFF00]
:00439317 50                      push eax
:00439318 8D8781190510            lea eax, dword ptr [edi+10051981]
:0043931E 50                      push eax
:0043931F 8D8500FEFFFF            lea eax, dword ptr [ebp+FFFFFE00]
:00439325 50                      push eax
:00439326 E8E6FEFFFF              call 00439211
                                  ~~~~~~~~~~~~~ 此CALL過後下 d eax 可看到專業模式的註冊碼
:0043932B 59                      pop ecx
:0043932C 59                      pop ecx
:0043932D 50                      push eax

* Reference To: CRTDLL.strcmp, Ord:01CFh
                                  |
:0043932E E8313A0000              Call 0043CD64
:00439333 59                      pop ecx
:00439334 85C0                    test eax, eax
:00439336 59                      pop ecx
:00439337 7455                    je 0043938E
:00439339 8D8500FFFFFF            lea eax, dword ptr [ebp+FFFFFF00]
:0043933F 50                      push eax
:00439340 8D8795190104            lea eax, dword ptr [edi+04011995]
:00439346 50                      push eax
:00439347 8D8500FEFFFF            lea eax, dword ptr [ebp+FFFFFE00]
:0043934D 50                      push eax
:0043934E E8BEFEFFFF              call 00439211
                                  ~~~~~~~~~~~~~此CALL過後下 d eax 可看到一般模式的註冊碼
:00439353 59                      pop ecx
:00439354 59                      pop ecx
:00439355 50                      push eax

* Reference To: CRTDLL.strcmp, Ord:01CFh
                                  |
:00439356 E8093A0000              Call 0043CD64
:0043935B 59                      pop ecx
:0043935C 85C0                    test eax, eax
:0043935E 59                      pop ecx
:0043935F 7505                    jne 00439366

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:004392BB(C), :004392E7(C), :0043930F(C)
|
:00439361 6A01                    push 00000001
:00439363 58                      pop eax
:00439364 EB35                    jmp 0043939B

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0043935F(C)
|
:00439366 8D8500FFFFFF            lea eax, dword ptr [ebp+FFFFFF00]
:0043936C 81C797190602            add edi, 02061997
:00439372 50                      push eax
:00439373 8D8500FEFFFF            lea eax, dword ptr [ebp+FFFFFE00]
:00439379 57                      push edi
:0043937A 50                      push eax
:0043937B E891FEFFFF              call 00439211
                                  ~~~~~~~~~~~~~此CALL過後下 d eax 可看到專業模式的註冊碼
:00439380 59                      pop ecx
:00439381 59                      pop ecx
:00439382 50                      push eax

* Reference To: CRTDLL.strcmp, Ord:01CFh
.........
......


在0043927D的那個CALL(你可以按F8進去看一下)就是判斷註冊碼個數是不是小於等於8,如果大於8就擷取前8位,然後進行大寫轉換,再下來可能就是註冊碼計算了(這……實在不是我等未學過彙編的菜鳥所能理解的^_^)。

至此,破解結束!:)

後記:小弟剛學破解,也是第一次寫破解文章,其中難免有錯誤之處,請各位高手斧正!還有一件事請各位幫幫忙:哪裡有彙編的入門教程可以下載(沒學過彙編,看那些註冊碼演算法時如霧裡看花)?謝謝!

                                                              BinC
                                                          10:18 10.05.2001

相關文章