1 執行TRW2000程式
2 執行WEBZIP
3 粗跟蹤
1 點HELP->register...
2 輸入 User Namme:cy Serial No:cccc Reg Key: 88888888 (8個8)
3 Ctrl+N 撥出TRW,下斷點:BPX HMEMCPY 按F5 返回
4 點OK,被攔截,
5 bc * ,清除所有斷點
6 pmodule,直接到達WEBZIP領空,下程式碼:
015F:0042E6AD MOV [ESI + 0C],EAX <-被攔截於此行
015F:0042E6B0 CMP DWORD [ESI],0203
7 按F12,在67次後出現非法註冊碼錯誤對話方塊,點OK退出WEBZIP
4 細跟蹤
1 同前,輸入註冊碼,撥出TRW,設斷點:BPX HMEMCPY
2 點OK,被攔截,
3 bc * ,清除所有斷點
4 pmodule,直接到達WEBZIP領空,下程式碼:
015F:0042E6AD MOV [ESI + 0C],EAX <-被攔截於此行
015F:0042E6B0 CMP DWORD [ESI],0203
5 按F12,66次,來到此處
015F:00451C4F RET <-來到此行(如再按一次F12將出現錯誤框,說明計算或驗證註冊碼就在此處不遠)
015F00451C50 PUSH EDX
6 改按F10,即單步跟蹤,當心,每走到一個CALL時應記下這個CALL的地址,大約23次時,到此處:
015F:004F48AC CALL 004E99B4 <---到此行,
如果執行此CALL,則出現錯誤框,說明計算或驗證註冊碼就在這個CALL裡,記錄下此CALL前的地址(*)
您可試試,後可重新按上步驟開始到此處。
5 深入跟蹤
1 點HELP-->register...
2 輸入 User Namme:cy Serial No:cccc Reg Key: 88888888 (8個8)
3 Ctrl+N 撥出TRW,下斷點:BPX 004F48AC 按F5 返回
4 點OK,被攔截,
5 BC * 清除所有斷點
6 按F8 追入CALL到下行:
015F:004E99B4 PUSH EBP
7 按F10鍵,單步跟蹤,22次,來到下面程式碼
015F:004E99F2 MOV EDX,[EBP-08] <---此處可疑
015F:004E99F5 MOV EAX,EBX
015F:004E99F7 CALL 004E9B94 <---(**)
015F:004E99FC SUB EAX,C8
8 下令:D EDX
值為:88888888, 莫非下面CALL是計算註冊碼碼? 追入 (**)行CALL試試看
9 執行到(**)行時,按F8追入,接下來按F10(單步),51次到下面程式碼:
015F:004E9C62 MOV EAX ,[EBP-04] <---經計算出的真註冊碼傳送到EAX
015F:004E9C65 MOV EDX,EDI <---假註冊碼:88888888
10 按F10執行上二行程式碼
11 下令:
D EAX 顯示:48E4A814BE88
D EDX 顯示:88888888
至此,找出註冊碼!
小 結:
User Name: cy
Serial No: cccc
Reg Key: 48E4A814BE88
後 記:
具體註冊碼並不唯一,但最後兩位為88。有疑問請與我聯絡:hz.cy@163.net