無限遊戲存檔II v2.3.38 **過程 (3千字)

看雪資料發表於2002-01-12

1.得到**碼
A:
用smartcheck走一遍,就能得到你所需要的。

B:
因為知道輸入的**碼儲存在軟體安裝目錄下的boob.ini中:
[Reg]
Number=gWiT449x%
Test=0
exdec開啟主程式無限遊戲存檔II.exe,以關鍵詞“number”搜尋,共3處,其中一處是軟體啟動時應用的,如下
4618C5: 1b LitStr:                Number
4618C8: 43 FStStrCopy              local_0094
4618CB: 04 FLdRfVar                local_0094
4618CE: 1b LitStr:                Reg
4618D1: 43 FStStrCopy              local_0090
......
461975: Lead0/33 EqVarBool                    <--比較,msvbvm50!__vbastrcomp 
461977: 36 FFreeVar
461984: 1c BranchF:                4619F9      <--jump if false
......
4619F9: 15 ExitProcI2              <--離開
 
所以用trw設斷
bpm 461975
中斷後F8走,直到你看到**碼。


2.“註冊版”180次使用限制
  這樣註冊後依舊有180次使用限制。軟體使用次數記錄在軟體安裝目錄下的list.com中:
    [sos]
    sos=1

A:
研究後我認為在這個公共版本中必定存在180次限制。

看:軟體執行後首先執行程式碼如下:

Proc: 466c34
4666F4: 00 LargeBos             
4666F6: 00 LargeBos       
......
4668C3: f5 LitI4:                  0xb4  180  (....)  <--180次
4668C8: 71 FStR4                  local_0110
4668CB: 00 LargeBos             
4668CD: f5 LitI4:                  0x0  0  (....)      <--0次
4668D2: 94 FMemLdR4             
4668D7: 1b LitStr:                List.com
4668DA: 2a ConcatStr             
4668DB: 46 CVarStr                local_00B8
4668DE: 0b ImpAdCallI2            _rtcDir
4668E3: 23 FStStrNoPop            local_008C
4668E6: 1b LitStr:               
4668E9: Lead0/30 EqStr                                  <--比較
4668EB: 2f FFree1Str              local_008C
4668EE: 35 FFree1Var              local_00B8
4668F1: 1c 52 02 00 BranchF:      466946              <--jump then expired
4668F4: 00 LargeBos             
4668F4: 00 LargeBos             
4668F6: 04 FLdRfVar                local_0120
4668F9: 94 FMemLdR4             
4668FE: 1b LitStr:                List.com
466901: 2a ConcatStr             
466902: Lead2/59 PopTmpLdAdStr    local_011C
466906: 1b LitStr:                1                  <--
466909: 43 FStStrCopy              local_0118          |
46690C: 04 FLdRfVar                local_0118          |
46690F: 1b LitStr:                sos                  |令sos==1
466912: 43 FStStrCopy              local_0114          |
466915: 04 FLdRfVar                local_0114          |
466918: 1b LitStr:                sos                <--
46691B: 43 FStStrCopy              local_008C
46691E: 04 FLdRfVar                local_008C
466921: 07 FMemLdRf             
466926: 24 NewIfNullPr            407ea8
466929: 0d VCallHresult            7b3fbd80
46692E: 3e FLdZeroAd              local_0120
466931: 46 CVarStr                local_00B8
466934: Lead1/f6 FStVar         
466938: 32 FFreeStr
466943: 1e Branch:                466c0f
......
......
466C0F: 00 LargeBos             
......
466C32: 14 ExitProc     

注意到
4668F1: 1c 52 02 00 BranchF:  466946  是關鍵跳轉,如果這裡永遠繼續執行
4668F4: 00 LargeBos                    以後的程式碼,就會使得使用次數永遠是1次
所以更改    4668F1: 1c 52 02 00 BranchF:  466946
      為    4668F1: 1c 00 02 00 BranchF:  4668F4
用ultraedit開啟主程式,定位到00065CF1h處,修改 1C 52 02 00
                                          為 1C 00 02 00

B:
將list.com設定為“只讀”屬性,程式就不能記錄使用次數了。

相關文章