Hi.
Ich habe eine simple ASM Funktion. Die Adressen suche ich mit FindPattern.
Das ganze gibt mir auch die richtigen Pointer aus:
109428c & 467b30.
Nun habe ich ein Problem. Hier ist die Funktion:
Wenn ich nun die Funktion PickUp aufrufe crasht das Spiel.
Wenn ich "PickUpMove" & "PickUpCall" aber direkt im Code bestimme geht alles perfekt:
Also ist das Problem das "0x". Wie kann ich mein DWORD zu "0x109428C" anstatt "109428C" machen?
Hinweis?
Danke :)
Ich habe eine simple ASM Funktion. Die Adressen suche ich mit FindPattern.
Das ganze gibt mir auch die richtigen Pointer aus:
109428c & 467b30.
Nun habe ich ein Problem. Hier ist die Funktion:
Code:
DWORD PickUpMove;
DWORD PickUpCall;
void PickUp(){
__asm{
MOV ECX, DWORD PTR DS : [PickUpMove]
CALL PickUpCall
}
}
void InitiateHooks()
{
DWORD PickupFunc = FindPattern("client.exe", "\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x8B\x0D\x00\x00\x00\x00\xE8\x00\x00\x00\x00\xE9\x00\x00\x00\x00\x51\x8B\x4C\x24\x0C\x8D\x04\x24\x50\x6A\x00\x51\xE8\x00\x00\x00\x00\x83\xC4\x0C\x84\xC0",
"xxxxxxxxxxxxxxx????x????x????xxxxxxxxxxxxx????xxxxx");
PickupFunc += 19;
DWORD PickUpCall2 = RelativeToAbsolute(PickupFunc + 1);
PickUpCall = PickUpCall2;
PickupFunc -= 19;
PickupFunc += 14;
DWORD Address1 = *(DWORD*)(PickupFunc + 1);
PickUpMove = Address1;
PickupFunc -= 14;
}
Wenn ich "PickUpMove" & "PickUpCall" aber direkt im Code bestimme geht alles perfekt:
Code:
DWORD PickUpCall = 0x467b30
void PickUp(){
__asm{
MOV ECX, DWORD PTR DS : [0x109428c]
CALL PickUpCall
}
}
Hinweis?
Danke :)