无标题
下载地址: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。
此时你就可以随便输入注册码。
