[MPlayer-dev-eng] silly code

Arpi arpi at thot.banki.hu
Tue Jan 1 18:37:22 CET 2002


Hi,

another piece of shit:

0x62924c30:     mov    %eax,%ecx
0x62924c32:     shr    $0x10,%ecx
0x62924c35:     and    $0xff,%ecx
0x62924c3b:     and    $0xff00ffff,%eax
0x62924c40:     lea    0x62b67ae0(,%ecx,8),%ecx
0x62924c47:     cmpb   $0x0,(%ecx)
0x62924c4a:     je     0x62924c61
0x62924c4c:     mov    0x4(%ecx),%edx
0x62924c4f:     lea    0x0(,%eax,4),%ecx
0x62924c56:     lea    (%edx,%ecx,4),%ecx
0x62924c59:     mov    (%ecx),%eax
0x62924c5b:     mov    0x8(%ecx),%edx
0x62924c5e:     jmp    *0x4(%ecx)
0x62924c61:     jmp    *0x4(%ecx)

it's called theQicktimeDispatcher, and seems to be something main entry
point.

also, note the 0x62924c61 case: it sees ecx==0, so it jumps to [ecx+4]
strict way to sig11 :)

i have to redirect this func and do somr printf on parameters.
it doesn't work in c, i think because of parameter pasisng in eax, instead
of stack.

currently i'm using:

static int (*real_theqt)(int a,int b,int c,int d,int e,int f,int g,int h) = NULL;

static int fake_theqt(int a,int b,int c,int d,int e,int f,int g,int h){
    return real_theqt(a,b,c,d,e,f,g,h);
}

and, at GetProcAddress:
        if(!strcmp(function,"theQuickTimeDispatcher")){
            real_theqt=retproc; retproc=fake_theqt;
	}

i think i need some asm for teh above, to same/restore eax?

A'rpi / Astral & ESP-team

--
mailto:arpi at thot.banki.hu
http://esp-team.scene.hu



More information about the MPlayer-dev-eng mailing list