winzip的通用序號產生器 (2千字)

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

WinZip(R) Version 8.0 (3105)的破解

    在Winzip中,可以很容易解出註冊碼,這裡有一個偷懶的方法來“寫”序號產生器,其實是利用Winzip
程式本身,讓它自己把正確的註冊碼顯示出來,我把程式改後,出現了一些小問題,但並不影響它計算和
顯示註冊碼,因此就可以把它做為序號產生器來用也可以。
    在修忙改程式之前,做一個備份,修改後的程式只用來做為序號產生器,平時用還是用沒有修改過的原
程式為好。

:00407AA3 8D85C0FEFFFF            lea eax, dword ptr [ebp+FFFFFEC0]  <------放註冊碼的地方
                    此時EAX=0078F2E8,註冊碼在0078F2E8處

:00407AA9 56                      push esi
:00407AAA 50                      push eax
:00407AAB E820180600              call 004692D0  <-----比較註冊碼的地方
:00407AB0 83C410                  add esp, 00000010
:00407AB3 F7D8                    neg eax
   
   
    改後,執行,但它顯示空白,再透過跟蹤發現在
:00467C4F 7406                    je 00467C57
:00467C51 F3                      repz  <------
:00467C52 AB                      stosd  <------ 處,把0078F2E8這裡清空了
:00467C53 85D2                    test edx, edx
:00467C55 7406                    je 00467C5D

    故想到不讓它清空,把repz stosd改為 nop nop即可把註冊碼保留在0078F2E8處。

:004300AB 6837010000              push 00000137
:004300B0 E838F50000              call 0043F5ED
:004300B5 59                      pop ecx
:004300B6 50                      push eax
:004300B7 8D857CFCFFFF            lea eax, dword ptr [ebp+FFFFFC7C]  <-----要顯示的內容在此處
:004300BD 50                      push eax
:004300BE FF750C                  push [ebp+0C]
:004300C1 FF7508                  push [ebp+08]
:004300C4 E805000000              call 004300CE <--------顯示錯誤訊息框,

      所以把:
:004300B7 8D857CFCFFFF            lea eax, dword ptr [ebp+FFFFFC7C]
    改為:mov eax,0078F2E8
          nop
        即可顯示註冊碼了。

執行程式,出來的nag窗會有破圖的現象,不要管它,按輸入註冊碼的按鈕,進行註冊,輸入一個使用者名稱,
註冊碼隨便一個,按確定,就會出來正確的註冊碼了。

      到此為至,一個Winzip的序號產生器就“寫”好了,也不用知道它的演算法!

相關文章