HTMLVIEW1.68

看雪資料發表於2015-11-15

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。
此時你就可以隨便輸入註冊碼。