jsjyt兄看看這裡。 (4千字)

看雪資料發表於2001-04-22

WavesurroundDEMO程式我一直都沒怎麼看,抱歉。――你說的過期判斷不知怎麼回事,DSP_WA3D.DLL裡面找不到getsytstemtime或者getlocaltime等類似的時間函式,我也搞不清它是怎樣判斷時間過期的。倒是那個NAG視窗很吸引人,本來還不知怎麼入手的,後來找了個resource hacker可以修改資源的那種工具,把winamp的plug-in目錄下的那個dsp_wa3d.dll的NAG對話方塊資源給刪除就萬事大吉了,好笑不好笑?
不過這不是正兒八經的方法。你寄給我的那個patch中對DSSP_WA3D.DLL進行了兩處改動,一個是去掉DEMO的nag,一個是解除時間過期。改的地方分別是:

去NAG視窗(其實就是跳過MESSAGEBOXA):


* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:10002041(C)
|
:100020AA 6A05                    push 00000005
:100020AC 8B15C8940110            mov edx, dword ptr [100194C8]
:100020B2 52                      push edx

* Reference To: USER32.ShowWindow, Ord:022Dh
                                  |
:100020B3 FF1528D40110            Call dword ptr [1001D428]

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:100020A8(U)
|
:100020B9 C705C094011001000000    mov dword ptr [100194C0], 00000001
:100020C3 6A00                    push 00000000

//這裡把6A00改成EB18,也就是      jmp 100020DD

:100020C5 6835100010              push 10001035
:100020CA 6A00                    push 00000000

* Possible StringData Ref from Data Obj ->"DLGNag"
                                  |
:100020CC 6898530110              push 10015398
:100020D1 A1CC940110              mov eax, dword ptr [100194CC]
:100020D6 50                      push eax

* Reference To: USER32.DialogBoxParamA, Ord:008Eh
                                  |
:100020D7 FF1510D40110            Call dword ptr [1001D410]
:100020DD 33C0                    xor eax, eax                    //到這裡。

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:10001B68(U)
|
:100020DF 8BE5                    mov esp, ebp
:100020E1 5D                      pop ebp
:100020E2 C3                      ret

_____________________________________________________________________

時間過期:

* Reference To: KERNEL32.SetCurrentDirectoryA, Ord:020Ch
                                  |
:10001C67 FF1574D30110            Call dword ptr [1001D374]
:10001C6D E8B2310000              call 10004E24
:10001C72 D905BC940110            fld dword ptr [100194BC]
:10001C78 D81D08400110            fcomp dword ptr [10014008]
:10001C7E DFE0                    fstsw ax
:10001C80 F6C401                  test ah, 01
:10001C83 7514                    jne 10001C99            //改成JMP了。
:10001C85 6A00                    push 00000000

至於這種浮點指令和時間判斷有什麼關係,就不清楚了。你所說的下文部分只是根據過期標誌而作出的介面修改部分,光改它們只會引起介面的變化,內在功能即限制還是不變。

#############################
Reference To: USER32.DrawTextA, Ord:00AAh
>

>:1000319A FF156CD40110            Call dword ptr [1001D46C]
>
>:100031A0 D905BC940110            fld dword ptr [100194BC]
>
>:100031A6 D81D08400110            fcomp dword ptr [10014008]
>
>:100031AC DFE0                    fstsw ax
>
>:100031AE F6C401                  test ah, 01
>
>:100031B1 0F85BB000000            jne 10003272這裡改成je
>
>:100031B7 68FF000000              push 000000FF
>
>:100031BC 8B55B4                  mov edx, dword ptr [ebp-4C]
>
>:100031BF 52                      push edx
>
>* Reference To: USER32.GetDlgItem, Ord:00F3h
>
>                                  |
>
>:1000420F FF1554D40110            Call dword ptr [1001D454]
>
>:10004215 A308940110              mov dword ptr [10019408], eax
>
>:1000421A D905BC940110            fld dword ptr [100194BC]
>
>:10004220 D81D08400110            fcomp dword ptr [10014008]
>
>:10004226 DFE0                    fstsw ax
>
>:10004228 F6C401                  test ah, 01
>
>:1000422B 7575                    jne 100042A2這裡改成je
>
>:1000422D 6A00                    push 00000000
>
>:1000422F A1D8930110              mov eax, dword ptr [100193D8]
>
>:10004234 50                      push eax
>
>
>
>* Reference To: USER32.DrawTextA, Ord:00AAh
>
>                                  |
>
>:1000319A FF156CD40110            Call dword ptr [1001D46C]
>
>:100031A0 D905BC940110            fld dword ptr [100194BC]
>
>:100031A6 D81D08400110            fcomp dword ptr [10014008]
>
>:100031AC DFE0                    fstsw ax
>
>:100031AE F6C401                  test ah, 01
>
>:100031B1 0F85BB000000            jne 10003272這裡改成je
>
>:100031B7 68FF000000              push 000000FF
>
>:100031BC 8B55B4                  mov edx, dword ptr [ebp-4C]
>
>:100031BF 52                      push edx
>
>
>
>好了就這默多。
>
#############################

相關文章