Usando APIs con Bucle! [Ejemplo simple]
Publicado: 15 Jun 2010, 23:28
Bueno amigos, he leido un poco de ASM y la verdad ayuda demaciado, practicando me propuse hacer un bucle simple usando MessageBoxA y no resulto tan facil pero al fin lo hice y creo haber sacado mis conclusiones.
Compilado en FASM.
Mi conclusion segun este pequeño codigo es que cuando usamos registros y a la vez Apis, los registros almacenan valorer de parametros de estas apis, por eso sin sacar los parametros de la pila el bucle no era el correcto.
Comentarios, sugerencias, criticas o correcciones son Bienvenidas
Salu2!
Código: Seleccionar todo
include 'Tu ruta de win32ax.inc'
.data
msg db 'Provando un bucle',0
title db 'Test',0
.code
start:
xor ecx,ecx; ECX = 0
add ecx,5d; ECX = 5
Bucle: invoke MessageBoxA,0,msg,title,0 ; Call MessageBox
pop ecx ; Sacamos ultimo parametro de la pila
pop ecx ; Sacamos penultimo dato de la pila
pop ecx ; ''
pop ecx ; ''
Dec ecx ; Decrementamos ECX en 1
JNZ Bucle ; Si ECX <> 0 Saltamos al bucle
Push 0 ; Ingresamos parametro de la API ExitProcess a la pila
Call [ExitProcess]; Llamamos a la API
.end start
Mi conclusion segun este pequeño codigo es que cuando usamos registros y a la vez Apis, los registros almacenan valorer de parametros de estas apis, por eso sin sacar los parametros de la pila el bucle no era el correcto.
Comentarios, sugerencias, criticas o correcciones son Bienvenidas
Salu2!