暴力破解 程式獵人(Phunter) V1.30 (11千字)

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

暴力破解 程式獵人(Phunter) V1.30

程式獵人(Phunter) V1.30
軟體大小:  192 KB
軟體類別:  國產軟體 / 共享版 / 檔案管理
應用平臺:  Win95/98/NT/2000
原版軟體:  http://202.107.104.34/soft/down/phunter_130.zip (192k,天空軟體站)
軟體介紹:  方便好用的資源管理軟體,引入了軟體資料庫的概念,免去了你自己新增程式之苦,六大特色如下:1、自動搜尋功能:自動查詢你硬碟上的應用程式,幫你自動分類新增,方便管理。2、分類管理程式:引入了“程式組”與“程式項”的概念,使得各種程式的管理更加方便。3、快速啟動程式:可以方便的啟動任何一個應用程式。4、自動排序功能:根據程式使用頻率進行排序,使常用的程式總在最前面。5、多種資源管理:程式項不僅可以是應用程式,還可以是任何一個可以使用的檔案,比如MP3檔案。甚至可以是一個網址或E-mail地址,全面管理你的資源。6、絕對綠色程式:即拷即用,不會在您的硬碟留下任何垃圾。

未註冊版本限制:不能新增六個以上的程式組

破解工具:w32dasm 黃金版中文版、File Info 2.45、UltraEdit

破解人:炎之川 (skipli@sina.com)

在下初學破解,水平還很低,暫時還只會爆破,望各位大客多多指點^_^

破解過程:
1. 先用 FI 2.45 看看主程式,沒殼,這就方便了~
2. 用 w32dasm 黃金版中文版反彙編主程式,在“串式參考”中找到註冊碼無效時的提示“註冊碼校驗失敗!”,嘿嘿~就是這裡啦

* Reference To: MSVCRT.strcmp, Ord:02B8h
                                  |
:004038A3 E84E5B0000              Call 004093F6
:004038A8 59                      pop ecx
:004038A9 85C0                    test eax, eax
:004038AB 59                      pop ecx
:004038AC 7435                    je 004038E3  < ========= 不跳則註冊碼錯誤,改為 jne 004038E3
:004038AE 8B86A4000000            mov eax, dword ptr [esi+000000A4]
:004038B4 25FF0F0000              and eax, 00000FFF
:004038B9 3DB5040000              cmp eax, 000004B5
:004038BE 7423                    je 004038E3  < ========= 不跳則註冊碼錯誤,改為 jne 004038E3
:004038C0 53                      push ebx
:004038C1 53                      push ebx

* Possible StringData Ref from Data Obj ->"註冊碼校驗成功!
這個註冊碼有日期限制,請您注意"
                                        ->"及時更換."
                                  |
:004038C2 683C024100              push 0041023C

* Reference To: MFC42.Ordinal:04B0, Ord:04B0h
                                  |
:004038C7 E854550000              Call 00408E20
:004038CC C705BC07410082FFFFFF    mov dword ptr [004107BC], FFFFFF82
:004038D6 8B86A4000000            mov eax, dword ptr [esi+000000A4]
:004038DC A3C0074100              mov dword ptr [004107C0], eax
:004038E1 EB9E                    jmp 00403881

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:004038AC(C), :004038BE(C)  < ========= 是這兩處跳過來的
|
:004038E3 53                      push ebx
:004038E4 53                      push ebx

* Possible StringData Ref from Data Obj ->"註冊碼校驗失敗!"    < ========= 往上看
                                  |
:004038E5 682C024100              push 0041022C
:004038EA C705BC0741007D000000    mov dword ptr [004107BC], 0000007D


不過這樣改完,隨意輸入註冊碼註冊,會提示“註冊碼校驗成功!這個註冊碼有日期限制,請您注意及時更換.”,還有陷阱啊,繼續看~然後來到下面這裡:


* Reference To: USER32.SendMessageA, Ord:0214h
                                  |
:0040381F FF154CB74000            Call dword ptr [0040B74C]
:00403825 47                      inc edi
:00403826 81FF30750000            cmp edi, 00007530
:0040382C 7CDA                    jl 00403808
:0040382E 8B86A4000000            mov eax, dword ptr [esi+000000A4]
:00403834 BF80969800              mov edi, 00989680
:00403839 3BC7                    cmp eax, edi
:0040383B 765B                    jbe 00403898        < ========= 我猜這邊的一大段就是真正比較註冊碼的,只是
:0040383D 3DFFE0F505              cmp eax, 05F5E0FF              基本上看不懂,乾脆就直接把 765B 改 9090 吧
:00403842 7354                    jnb 00403898        < ========= 7354 改 9090
:00403844 55                      push ebp
:00403845 33D2                    xor edx, edx
:00403847 8BEF                    mov ebp, edi
:00403849 8B8EA0000000            mov ecx, dword ptr [esi+000000A0]
:0040384F F7F5                    div ebp
:00403851 50                      push eax
:00403852 51                      push ecx
:00403853 8BCE                    mov ecx, esi
:00403855 E8AA000000              call 00403904
:0040385A 8BC8                    mov ecx, eax
:0040385C 8B86A4000000            mov eax, dword ptr [esi+000000A4]
:00403862 33D2                    xor edx, edx
:00403864 5D                      pop ebp
:00403865 F7F7                    div edi
:00403867 3BCA                    cmp ecx, edx
:00403869 752D                    jne 00403898        < ========= 改je 00403898 也行,不過乾脆把 752D 改9090,
:0040386B 53                      push ebx                        省事一點(典型的菜鳥~不懂就直接蒙過去^_^)
:0040386C 53                      push ebx

* Possible StringData Ref from Data Obj ->"註冊碼校驗成功!    < ========= 註冊成功資訊
感謝您對我們工作的支援."
                                  |
:0040386D 68A8024100              push 004102A8

* Reference To: MFC42.Ordinal:04B0, Ord:04B0h
                                  |
:00403872 E8A9550000              Call 00408E20
:00403877 C705BC07410083FFFFFF    mov dword ptr [004107BC], FFFFFF83

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004038E1(U)
|

* Reference To: MFC42.Ordinal:0490, Ord:0490h
                                  |
:00403881 E828550000              Call 00408DAE
:00403886 8B4004                  mov eax, dword ptr [eax+04]

* Possible StringData Ref from Data Obj ->"程式獵人  版本 1.27- 兄弟製作組 "  < ========= 軟體作者有沒有搞錯啊,
                                        ->"榮譽出品"                                      明明是 1.30 版了!
                                  |
:00403889 687C024100              push 0041027C
:0040388E 8B4820                  mov ecx, dword ptr [eax+20]

* Reference To: MFC42.Ordinal:1837, Ord:1837h
                                  |
:00403891 E8D2550000              Call 00408E68
:00403896 EB61                    jmp 004038F9

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0040383B(C), :00403842(C), :00403869(C)        < ========= 從幾個地方跳過來的,往上看
|

* Possible StringData Ref from Data Obj ->"guest"
                                  |
:00403898 6874024100              push 00410274
:0040389D FFB6A0000000            push dword ptr [esi+000000A0]

* Reference To: MSVCRT.strcmp, Ord:02B8h
                                  |
:004038A3 E84E5B0000              Call 004093F6
:004038A8 59                      pop ecx
:004038A9 85C0                    test eax, eax
:004038AB 59                      pop ecx
:004038AC 7535                    jne 004038E3
:004038AE 8B86A4000000            mov eax, dword ptr [esi+000000A4]
:004038B4 25FF0F0000              and eax, 00000FFF
:004038B9 3DB5040000              cmp eax, 000004B5
:004038BE 7523                    jne 004038E3
:004038C0 53                      push ebx
:004038C1 53                      push ebx

* Possible StringData Ref from Data Obj ->"註冊碼校驗成功!    < ========= 在這裡出錯,慢慢往上看
這個註冊碼有日期限制,請您注意"
                                        ->"及時更換."
                                  |
:004038C2 683C024100              push 0041023C


此時改完,任意輸入註冊碼,顯示“註冊碼校驗成功!感謝您對我們工作的支援.”。且幫助選單下的“註冊”項變灰色,未註冊版本不能新增六個以上的程式組的限制也沒有了,不過為了以防萬一,乾脆把會出現“不能新增六個以上的程式組”的地方也砍掉吧~

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00401E48(U)
|
:00401E32 85F6                    test esi, esi      < ========= 對比
:00401E34 7414                    je 00401E4A        < ========= 跳則彈出提示,改為 jne 00401E4A 即可
:00401E36 8BC6                    mov eax, esi
:00401E38 8B36                    mov esi, dword ptr [esi]
:00401E3A 83C008                  add eax, 00000008
:00401E3D B9B8084100              mov ecx, 004108B8
:00401E42 50                      push eax
:00401E43 E86A020000              call 004020B2
:00401E48 EBE8                    jmp 00401E32

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00401E34(C)          < ========= 從這裡跳過來的,繼續往上找
|
:00401E4A B998084100              mov ecx, 00410898
:00401E4F E8A3020000              call 004020F7
:00401E54 8BCF                    mov ecx, edi
:00401E56 E852FCFFFF              call 00401AAD
:00401E5B 5F                      pop edi
:00401E5C 5E                      pop esi
:00401E5D C3                      ret


:00401E5E B8B4994000              mov eax, 004099B4

* Reference To: MSVCRT._EH_prolog, Ord:0042h
                                  |
:00401E63 E888750000              Call 004093F0
:00401E68 83EC28                  sub esp, 00000028
:00401E6B 53                      push ebx
:00401E6C 56                      push esi
:00401E6D 57                      push edi
:00401E6E 8BF9                    mov edi, ecx
:00401E70 6A01                    push 00000001

* Reference To: MFC42.Ordinal:18BE, Ord:18BEh
                                  |
:00401E72 E8076F0000              Call 00408D7E
:00401E77 8DB7E0000000            lea esi, dword ptr [edi+000000E0]
:00401E7D 68B8074100              push 004107B8
:00401E82 FF36                    push dword ptr [esi]

* Reference To: MSVCRT.strcmp, Ord:02B8h
                                  |
:00401E84 E86D750000              Call 004093F6
:00401E89 33DB                    xor ebx, ebx
:00401E8B 59                      pop ecx
:00401E8C 3BC3                    cmp eax, ebx
:00401E8E 59                      pop ecx
:00401E8F 0F84D5000000            je 00401F6A
:00401E95 A1BC074100              mov eax, dword ptr [004107BC]
:00401E9A 83F883                  cmp eax, FFFFFF83
:00401E9D 7428                    je 00401EC7
:00401E9F 83F882                  cmp eax, FFFFFF82
:00401EA2 7423                    je 00401EC7
:00401EA4 A1C4084100              mov eax, dword ptr [004108C4]
:00401EA9 8B0DA4084100            mov ecx, dword ptr [004108A4]
:00401EAF 03C8                    add ecx, eax
:00401EB1 83F906                  cmp ecx, 00000006
:00401EB4 7C11                    jl 00401EC7
:00401EB6 53                      push ebx
:00401EB7 53                      push ebx

* Possible StringData Ref from Data Obj ->"對不起,您正在使用的《程式獵人》屬於未註冊版。"  < ======= 是這裡了
                                        ->"                                                        往上找
您只有在註冊後,才能新增六個以上的程式組。
為"
                                        ->"支援國產軟體,請您合作。

要了解詳細情況,請參"
                                        ->"閱幫助。"
                                  |
:00401EB8 6890004100              push 00410090



OK~到此全部搞定,隨意輸入註冊碼即可註冊成功,完整的解除了未註冊版本的限制。整理一下,修改的相應的offset為:

          原版    破解
001E34:      74      75
00383B:      76      90
00383C:      5B      90
003842:      73      90
003843:      54      90
003869:      75      90
00386A:      2D      90
0038AC:      75      74
0038BE:      75      74



                                              炎之川 於 2001.10.25
                                              歡迎訪問漢化新世紀: http://www.hanzify.org

相關文章