Red de conocimiento informático - Aprendizaje de código fuente - Llamada CALL en lenguaje ensamblador simple

Llamada CALL en lenguaje ensamblador simple

No sé a qué juego estás jugando y no puedo probarlo

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.