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的序號產生器就“寫”好了,也不用知道它的演算法!