Pasando un entero a x86 ASM en C++
Estoy tratando de hacer un script de enganche en C++, y he configurado una función de prueba simple para este caso.
void __declspec(naked) testFunct()
{
int myInt;
myInt = 2000;
__asm{
mov eax, myInt
jmp [jmp_back_address]
}
}
Cuando intento pasar el entero, la función falla cuando se llama y el proyecto se bloquea. Sin embargo, cuando uso esto en su lugar, sin un valor entero, pasa correctamente:
void __declspec(naked) testFunct()
{
__asm{
mov eax, 2000
jmp [jmp_back_address]
}
}
¿Cómo puedo pasar con éxito el entero?
davy.ai
Se puede pasar correctamente el entero al declararlo como una variable global y luego hacer referencia a él en el código assembly. Por ejemplo: