Ik heb een call van een programma omgeleidt naar mijn eigen functie (naked). In die functie wil ik meerdere functies gaan uitvoeren, maar de register waardes (esp) moeten hetzelfde blijven, hoe moet ik dit doen? Anders crasht het programma.
Eerst voer ik mijn functie in (in naked):
Eerst voer ik mijn functie in (in naked):
Code:
if (start == 0)
{
RequestModel(400, 0);
start = 1;
}
ASM
{
// Orginele functie die moest worden uitgevoerd
mov eax, 0x442AD0
jmp eax
}
_declspec(naked) void RequestModel(DWORD id, DWORD unknown)
{
__asm
{
push ebp
mov ebp, esp
sub esp, 20
push unknown
push id
mov eax, 0x4087E0
call eax
pop id
pop unknown
mov esp, ebp
pop ebp
ret
}
}