Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: fary en 1 Agosto 2010, 20:39 pm



Título: PRoblema en fasm intentando usar consola
Publicado por: fary en 1 Agosto 2010, 20:39 pm
Holas.... bueno estoy intentando crear en asm una consola con las api de windows... , la genera bien y todo pero no puedo imprimir cosas en la consola y nose porque es, aqui les dejo el codigo haber si ustedes saben solucionarlo.

Código
  1. include 'c:\archivos de programa\include\win32ax.inc'
  2.  
  3. .data
  4.  
  5.    msgerror db 'No se a encontrado la consola',0
  6.    tituloerror db 'Error',0
  7.    tituloconsola db 'Drinky Console in Asm',0
  8.    linea db 'Esta es mi consola!',0
  9.    hwnd dd ?
  10.    escribe dd ?
  11.    longitud dd ?
  12. .code
  13. start:
  14.  
  15.    invoke AllocConsole
  16.    invoke GetStdHandle,STD_INPUT_HANDLE
  17.    cmp eax,0
  18.    ja correcto
  19.    jbe incorrecto
  20.    correcto:
  21.        mov [hwnd],eax
  22.        invoke SetConsoleTitle,tituloconsola
  23.        invoke lstrlen,linea
  24.        mov [longitud],eax
  25.        invoke WriteConsole,hwnd,linea,longitud,[escribe],NULL   ; Esta es la linea que creo que falla
  26.  
  27.  
  28.        jmp fin
  29.    incorrecto:
  30.        invoke MessageBoxA,0,msgerror,tituloerror,MB_ICONERROR
  31.        jmp fin
  32.    fin:
  33.        ret
  34.  
  35. .end start      


salu2! y esperando respuesta.


Título: Re: PRoblema en fasm intentando usar consola
Publicado por: Eternal Idol en 1 Agosto 2010, 20:59 pm
Primero estas creando un programa que no es realmente de consola y por eso tenes que llamar a AllocConsole.

Agregando esto al principio no hace falta y tu programa tendra como subsystem en el PE console:
Código
  1. format PE console

Segundo estas pidiendo el HANDLE para la ENTRADA, es decir el teclado, tenes que pedir la salida, el monitor:

Código
  1. invoke GetStdHandle, STD_OUTPUT_HANDLE

Y tercero efectivamente la linea de WriteConsole esta mal, deberia ser asi:
Código
  1. invoke WriteConsole, [hwnd], linea, [longitud], escribe, NULL


Título: Re: PRoblema en fasm intentando usar consola
Publicado por: fary en 1 Agosto 2010, 21:13 pm
ufff, cierto, muchas gracias Eternal idol... ejeje esto de empezar en asm... XD

salu2! y gracias.



Título: Re: PRoblema en fasm intentando usar consola
Publicado por: Eternal Idol en 1 Agosto 2010, 21:41 pm
De nadas  ::)