暴力破解 程式猎人(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
- 标 题:暴力破解 程式猎人(Phunter) V1.30 (11千字)
- 作 者:炎之川
- 时 间:2001-10-25 23:05:13
- 链 接:http://bbs.pediy.com