《网页下载专家》破解
这是我从老光盘上找到的,现在早不知还有没有这个软件了。我在这里班门弄斧,望高手们看了以后不要笑的太大声。
点出注册窗口,先得到一个注册码(我的为7FN20LN;)。然后就用此码注册.
按CTRL-D进入SOFT-ICE(都说TRW好,可我试了八九个版本都死机,只好不用,其实两者基本上是一样的)。用万能断点bpx hmemcpy,返回程序后点“注册”,被SOFT-ICE拦住,一直按
F12 十二次(十三次就会跳出失败窗口)。这时汇编代码如下:
:00467FB4 8D55F8
lea edx, dword ptr [ebp-08]
:00467FB7 E860FEF9FF call 00407E1C
:00467FBC 8B45F8
mov eax, dword ptr [ebp-08]
:00467FBF 8D55FC
lea edx, dword ptr [ebp-04]
:00467FC2 E861FFFFFF call 00467F28
:00467FC7 8B45FC
mov eax, dword ptr [ebp-04]
:00467FCA 50
push eax
:00467FCB 8D45F8
lea eax, dword ptr [ebp-08]
:00467FCE E855EFFFFF call 00466F28
:00467FD3 8B55F8
mov edx, dword ptr [ebp-08]
:00467FD6 58
pop eax
:00467FD7 E858BDF9FF call 00403D34
:关键CALL
:00467FDC 7570
jne 0046804E
:修改后便出现“注册成功”
:00467FDE BA03000080 mov edx,
80000003
:00467FE3 8BC3
mov eax, ebx
:00467FE5 E82263FEFF call 0044E30C
:00467FEA B101
mov cl, 01
:00467FEC BACC804600 mov edx,
004680CC
:00467FF1 8BC3
mov eax, ebx
:00467FF3 E87064FEFF call 0044E468
:00467FF8 8D55F4
lea edx, dword ptr [ebp-0C]
:00467FFB 8B86C8020000 mov eax, dword
ptr [esi+000002C8]
:00468001 E8B663FCFF call 0042E3BC
:00468006 8B45F4
mov eax, dword ptr [ebp-0C]
:00468009 8D55FC
lea edx, dword ptr [ebp-04]
:0046800C E817FFFFFF call 00467F28
:00468011 8B45FC
mov eax, dword ptr [ebp-04]
:00468014 50
push eax
* Possible StringData Ref from Code Obj ->"StringTest"
|
:00468015 B918814600 mov ecx,
00468118
* Possible StringData Ref from Code Obj ->"CompletedModifications"
|
:0046801A BA2C814600 mov edx,
0046812C
:0046801F 8BC3
mov eax, ebx
:00468021 E8BE68FEFF call 0044E8E4
:00468026 8BC3
mov eax, ebx
:00468028 E8AF62FEFF call 0044E2DC
:0046802D 8BC3
mov eax, ebx
:0046802F E89CADF9FF call 00402DD0
:00468034 6A30
push 00000030
* Possible StringData Ref from Code Obj ->"注册成功"
|
:00468036 B944814600 mov ecx,
00468144
* Possible StringData Ref from Code Obj ->"注册成功"
|
:0046803B BA44814600 mov edx,
00468144
:00468040 A1A4DC4600 mov eax,
dword ptr [0046DCA4]
:00468045 8B00
mov eax, dword ptr [eax]
:00468047 E8F421FEFF call 0044A240
:0046804C EB46
jmp 00468094
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00467FDC(C)
|
:0046804E 6A30
push 00000030
:00468050 8D55F4
lea edx, dword ptr [ebp-0C]
:00468053 8B86C8020000 mov eax, dword
ptr [esi+000002C8]
:00468059 E85E63FCFF call 0042E3BC
:0046805E 8D45F4
lea eax, dword ptr [ebp-0C]
* Possible StringData Ref from Code Obj ->"注册码错误"
|
:00468061 BA58814600 mov edx,
00468158
:00468066 E8C1BBF9FF call 00403C2C
:0046806B 8B45F4
mov eax, dword ptr [ebp-0C]
:0046806E E875BDF9FF call 00403DE8
:00468073 8BD0
mov edx, eax
* Possible StringData Ref from Code Obj ->"错误"
|
:00468075 B964814600 mov ecx,
00468164
:0046807A A1A4DC4600 mov eax,
dword ptr [0046DCA4]
:0046807F 8B00
mov eax, dword ptr [eax]
:00468081 E8BA21FEFF call 0044A240
:按F10到这个CALL就完蛋了。
向上看有没有能跳过这个CALL的地方:在0046804C有一句jmp 00468094但程序没有运行到。WHY?再向上看,有了!00467FDC 7570
jne 0046804E 就是它了。程序执行到此句时,下指令 r fl z (把不跳变跳,把跳变不跳),按F5返回,好,“注册成功”。先别高兴,通常仅仅这样是不行的。你看,这不还是“未注册版本”吗?
在467fd3处下d指令可以看到一串代码:5DL02NL9 一个合格Cracker这时应该能迅速发现它和那个本机码 7FN20LN; 有点关系。你能看出来吗?
5 D L 0 2 N L 9
+2 +2 +2
+2 -2 -2 +2 +2 (这个其实没什么用)
7 F N
2 0 L N ;
再看其他几个值还有一个6GO31MO: 7
F N 2 0 L N ;
-1 +1 +1 +1 +1
+1 +1 -1
6 G O 3 1 M
O :
然后比较5DL02NL9和6GO31MO:.可见只要把5DL02NL9按-1+1的方法算回去就是注册码了。
5
D L 0 2 N L 9
-1
+1 +1 +1 +1 +1 +1 -1
4
E M 1 3 O M 8
注册码为:4EM13OM8
因为功力不够,看不懂那一堆运算,我破解一般都是暴破,很少有这样破解的。因此这样的得意之作一定要贴出来的。这是我的第一篇破文,给各位大哥看看,有什么错误之处,欢迎指正。祝中国所有Cracker元旦快乐!
- 标 题:我的第一篇破文,贴出来共同切磋提高。 (5千字)
- 作 者:音速刺猬
- 时 间:2002-1-1 13:39:00
- 链 接:http://bbs.pediy.com