HTMLVIEW1.68 暴力修改(我等懒人的惯用方法)。
下载地址:HTTP://www.anixsoft.com/files/HTMLView.exe
字节数:609K
(所用的软件有TRW2000、unaspack1.0.9.1、peid、DEDE2.50、HEX WORKSHOP3.1)
此文件没有注册时不论启动还是退出都有烦人的NAG窗口,所以只好开刀手术。请作者不要见怪。我也是不得已而为之。(^_^)
1、此文件是一个用ASPACK加壳的文件。首先用unaspack1.0.9.1去壳。
2、用peidenifier0.7查看此文件的类型,你就会看到它是用Borland Delphi编的
3、所以正好可以用DEDE2.50反汇编此文件。(打开about下的REGBTNCLICK)你就会看到如下代码:
***** TRY
|
0049A983 64FF30
push dword ptr fs:[eax]
0049A986 648920
mov fs:[eax], esp
0049A989 33DB
xor ebx, ebx
0049A98B 8D45FC
lea eax, [ebp-$04]
|
0049A98E E8F1ADFFFF call
00495784
0049A993 84C0
test al, al
0049A995 7477
jz 0049AA0E此处也许是判断是否输入注册码。为空就跳。
0049A997 8BC6
mov eax, esi
|
0049A999 E80A4CF9FF call
0042F5A8
0049A99E 8BC8
mov ecx, eax
* Reference to pointer to GlobalVar_004A48D0
|
0049A9A0 A110384A00 mov
eax, dword ptr [$4A3810]
0049A9A5 8B00
mov eax, [eax]
0049A9A7 8B55FC
mov edx, [ebp-$04]
|
0049A9AA E8E565FDFF call
00470F94 所以此处按F8进入0049A9AF 84C0
test al, al
0049A9B1 7433
jz 0049A9E6输入错误就跳转。
0049A9B3 6A00
push $00
0049A9B5 6A00
push $00
0049A9B7 8D4DF8
lea ecx, [ebp-$08]
* Possible String Reference to: 'lsSuccessReg' 注册成功
|
0049A9BA BA40AA4900 mov
edx, $0049AA40
* Reference to control TMainFORM.LangStorage : TLangFORMStorage
|
0049A9BF 8B86FC020000 mov
eax, [esi+$02FC]
|
0049A9C5 E8925FFDFF call
0047095C
0049A9CA 8B45F8
mov eax, [ebp-$08]
0049A9CD 668B0D50AA4900 mov
cx, word ptr [$49AA50]
0049A9D4 B202
mov dl, $02
|
0049A9D6 E8853DFDFF call
0046E760
0049A9DB 8BC6
mov eax, esi
* Reference to : TMainFORM.~PROC~0049A900()
|
0049A9DD E81EFFFFFF call
0049A900
0049A9E2 B301
mov bl, $01
0049A9E4 EB28
jmp 0049AA0E
0049A9E6 6A00
push $00
0049A9E8 6A00
push $00
0049A9EA 8D4DF8
lea ecx, [ebp-$08]
* Possible String Reference to: 'lsInvalidCode'注册失败
|
0049A9ED BA5CAA4900 mov
edx, $0049AA5C
* Reference to control TMainFORM.LangStorage : TLangFORMStorage
|
0049A9F2 8B86FC020000 mov
eax, [esi+$02FC]
|
0049A9F8 E85F5FFDFF call
0047095C
0049A9FD 8B45F8
mov eax, [ebp-$08]
0049AA00 668B0D50AA4900 mov
cx, word ptr [$49AA50]
0049AA07 B201
mov dl, $01
|
0049AA09 E8523DFDFF call
0046E760
0049AA0E 33C0
xor eax, eax
0049AA10 5A
pop edx
0049AA11 59
pop ecx
0049AA12 59
pop ecx
0049AA13 648910
mov fs:[eax], edx
****** FINALLY
|
0049AA16 6830AA4900 push
$0049AA30
0049AA1B 8D45F8
lea eax, [ebp-$08]
0049AA1E BA02000000 mov
edx, $00000002
|
0049AA23 E8DC8FF6FF call
00403A04
0049AA28 C3
ret
0049AA29 E9B689F6FF jmp
004033E4
0049AA2E EBEB
jmp 0049AA1B
4、综上所述运行TRW2000,装入HTMLVIEW1.68。输入注册码
设中断BPX 49A9A0
5、按CTR+N返回按确定。拦截成功。看到如下代码:
0049A9AA E8E565FDFF call
00470F94 所以此处按F8进入0049A9AF 84C0
test al, al
0049A9B1 7433
jz 0049A9E6输入错误就跳转。
0049A9B3 6A00
push $00
0049A9B5 6A00
push $00
0049A9B7 8D4DF8
lea ecx, [ebp-$08]
6、按F10当走到如下代码时停住:
00470fd3 call 47103c
00470fd8 test al,al
00470fda jz 47100f 注册码输入错误就跳。所以修改标志寄存器,使其不跳转。
7、继续按F10,你就会看到如下代码
495CD9 CALL 495CE0 按F10过去就可以结束此次pj。再启动你就会看到烦人的NAG窗口不见了,成为注册版本。
**********
或者在下面的代码处下CODE ON命令看看此时机器码
00470fd3 call 47103c
00470fd8 test al,al
00470fda jz 47100f
拿笔抄下:E86400000084C07433E8237BF9FF
然后调出十六进制的编辑器如HEX WORKSHOP查找抄下的代码E86400000084C07433E8237BF9FF把7433改成9090。
也就是把JZ 47100F改成NOP NOP。
此时你就可以随便输入注册码。