• 标 题:HTMLVIEW1.68
  • 作 者:飞狐  
  • 时 间:2002/02/24 09:43pm 
  • 链 接:http://bbs.pediy.com

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。
此时你就可以随便输入注册码。