Need some help hooking the jump function

03/03/2012 09:29 { Angelius }#1
is this what i need to execute from my proxy in order to make the player jump where i wanted him to jump ?
PHP Code:
005C943F   . FF75 D0        PUSH DWORD PTR SS:[EBP-30]
005C9442   . FF75 D4        PUSH DWORD PTR SS:[EBP-2C]
005C9445   . E8 9FABE3FF CALL Conquer.00403FE9
005C944A   
. 8BC8            MOV ECX,EAX
005C944C   
. E8 03C20B00 CALL Conquer.00685654
005C9451   
. EB 6E           JMP SHORT Conquer.005C94C1

aka 
(jump function) 
If so.. then what makes the client crash when i execute this ?
PHP Code:
writer.Write((byte)0x68);
writer.Write(Xh);
            
writer.Write((byte)0x68);
writer.Write(Yh);

writer.Write((byte)0xE8);
writer.Write(0x403FE9);

writer.Write(new byte[] { 0x8B, 0xC8 });

writer.Write((byte)0xE8);
writer.Write(0x685654); 
Thanks.
03/03/2012 10:51 IAmHawtness#2
Code:
//push x
writer.Write((byte)0x68); 
writer.Write((uint)Xh); 

//push y             
writer.Write((byte)0x68); 
writer.Write((uint)Yh); 

//mov eax, 0x403FE9
writer.Write((byte)0xB8); 
writer.Write((uint)0x403FE9); 

//call eax
writer.Write(new byte[] { 0xFF, 0xD0 }); 

//mov ecx, eax
writer.Write(new byte[] { 0x8B, 0xC8 });

//mov eax, 0x685654
writer.Write((byte)0xB8); 
writer.Write((uint)0x685654); 

//call eax
writer.Write(new byte[] { 0xFF, 0xD0 }); 

//ret
writer.Write((byte)0xC3);
This is what you want your assembly output to look like:

Code:
push X
push Y
mov eax,00403FE9
call eax
mov ecx,eax
mov eax,00685654
call eax
ret