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
>
>
>
>好了就这默多。
>
#############################
- 标 题:jsjyt兄看看这里。 (4千字)
- 作 者:Passion
- 时 间:2001-4-22 23:56:37
- 链 接:http://bbs.pediy.com