Hey
I'm using 5.091 and the poc mp3 file crashes winamp.
AS the advisory says we seem to have control of the eax and edx

EAX=79797979 and EDX=70707070
QUOTE
00437202 8B88 B4090000 MOV ECX,DWORD PTR DS:[EAX+9B4]
00437208 3B4C24 08 CMP ECX,DWORD PTR SS:[ESP+8]
we find an address (eax+9b4) which has the value 0x00000001 so when it compares the value in ecx with [ESP+8](which is 0x00000001) the jmp is taken. sounded simply in my head
(found that if you have 00 it is changed to 20 )
I found a 0x00000001 as ws2help's .data
QUOTE
71AA5008 01 00 00 00
now 71aa5008-9b4=71aa4654
So i placed this where 79797979 is on the picture( 5446aa71 has to be backwords)
QUOTE
004371FA /$ 8B4424 04 MOV EAX,DWORD PTR SS:[ESP+4] ; EAX becomes 71AA4654
004371FE |> 85C0 /TEST EAX,EAX
00437200 |. 74 14 |JE SHORT Winamp.00437216 ; Jmp not taken
00437202 |. 8B88 B4090000 |MOV ECX,DWORD PTR DS:[EAX+9B4] ; DS:[71AA5008]=00000001
00437208 |. 3B4C24 08 |CMP ECX,DWORD PTR SS:[ESP+8] ; Stack SS:[0012943C]=00000001 ECX=00000001
0043720C |. 74 0D |JE SHORT Winamp.0043721B ; jump is taken

0043720E |. 8B80 B8090000 |MOV EAX,DWORD PTR DS:[EAX+9B8]
00437214 |.^EB E8 \JMP SHORT Winamp.004371FE
00437216 |> B8 DC124600 MOV EAX,Winamp.004612DC ; ASCII "No Entry"
0043721B \> C3 RETN
sanity check is bypassed, strcpy follows, after strcpy it comes to this code
QUOTE
0041D440 /$ A1 580E4700 MOV EAX,DWORD PTR DS:[470E58] ;470E58= 1378F978
0041D445 |. 85C0 TEST EAX,EAX
0041D447 |. 74 03 JE SHORT Winamp.0041D44C
0041D449 |. FF60 48 JMP DWORD PTR DS:[EAX+48]
0041D44C \> C3 RETN
heres where i'm stuck
Looks like i need to use strcpy to overwrite 470E58 with a something. i'm using winxp sp0 but that shouldn't be a problem
need to tryout on winxp sp1 or win2000 sp0...to if it the same thing
I don't know asm much, but playing with it is great. If anyone finds a solution or can see something wrong tell me