Llamada CALL en lenguaje ensamblador simple
Tomaré la acción LLAMADA de “Dragon Nest” como ejemplo para tu referencia:
LLAME al código de la herramienta de depuración:
mov ecx,[9c5db4]
presione 0
presione 1
llame a 004944e0
Código de idioma sencillo:
.Versión 2
. Subrutina _action_button_clicked
.Registro de variable local, registro
.Dirección de variable local, entero
. Variable local Variable, tipo entero, "2"
Tipo entero Memory_Read (identificador de proceso, diez hexadecimal ("009c5db4"), dirección,)
Register.ECX = dirección
Variable [1] = 1
Variable [2] = 0
LLAMADA (identificador de proceso, hexadecimal ("004944e0"), variable, registro,)
Esta prueba de conversión fue exitosa.
Su código se modifica de la siguiente manera:
Versión 2
Variable local Registrarse, registrarse
. Dirección de variable local, número entero
. Variable local Variable, entero, "4"
Memory_Read Entero (identificador de proceso, dieciséis a diez ("006BFC26"), dirección,)
Register.ESI = Dirección
p>Variable [4] = Registro.ESI
Registro.EAX = dieciséis a diez ("006BFC26"), dirección,)
.EDX
Memory_Read Entero (identificador de proceso, diez hexadecimal ("00ACF654"), dirección,)
Register.EAX = Dirección
Variable [1] = Register.EAX
CALL (identificador de proceso, diez hexadecimal ("006cc7"), dirección,)
CALL (identificador de proceso, diez hexadecimal ("006cc7"), dirección,)
Variable [1] = Registrarse. Oh, no puedo garantizar el éxito.
Si eso no funciona, prueba con push, que es una variable, y vuelve a intentarlo.