elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  masm, msvcrt.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: masm, msvcrt.  (Leído 5,581 veces)
_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
masm, msvcrt.
« en: 1 Diciembre 2011, 16:53 pm »

Hola, pense que era mi compu que tenia algun conflicto con visual studio o algo, pero no. Instalacion nueva del paquete de http://www.masm32.com/

Código
  1. .386
  2. .model flat, stdcall
  3. option casemap :none   ; case sensitive
  4.      include C:\masm32\include\windows.inc
  5.      include C:\masm32\include\kernel32.inc
  6.      include C:\masm32\include\user32.inc
  7.      include C:\masm32\include\msvcrt.inc
  8.      includelib C:\masm32\lib\kernel32.lib
  9.      includelib C:\masm32\lib\msvcrt.lib
  10.      includelib C:\masm32\lib\user32.lib
  11.  
  12. .code
  13.    szPause db 'pause',0
  14.    szFmt db '%s',0
  15.    charsWritten dd 0
  16. start:
  17.    invoke AllocConsole
  18.    invoke GetStdHandle, STD_OUTPUT_HANDLE
  19.    invoke WriteConsole, eax, offset szPause, 5, offset charsWritten,NULL
  20.    invoke crt_printf,offset szFmt, offset szPause
  21.    invoke crt_system, offset szPause
  22.    invoke ExitProcess, 0
  23.    ret
  24. end start
  25.  
El resultado deberia de ser "pausepausePresione una tecla para continuar..."
Sin embargo, crt_printf no imprime la cadena, si devuelve 5 que son los caracteres que escribio. Es decir esta "imprimiendo el texto" pero no se imprime en la pantalla.

1)
Alguna idea de porque no imprime con printf?
Con o sin AllocConsole el resultado es el mismo. aunque printf se tendria que encargar solo de alojar una consola si  no esta  creada.


Saludos.


En línea

Eternal Idol
Kernel coder ajeno al tiempo
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: masm, msvcrt.
« Respuesta #1 en: 1 Diciembre 2011, 17:42 pm »

¿Cambia en algo no llamar a WriteConsole? Mezclar la CRT con la API tal vez de problemas ...


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: masm, msvcrt.
« Respuesta #2 en: 1 Diciembre 2011, 18:48 pm »

¿Cambia en algo no llamar a WriteConsole? Mezclar la CRT con la API tal vez de problemas ...

Originalmente el codigo era sin llamar a la api.
Código
  1. .386
  2. .model flat, stdcall
  3. option casemap :none   ; case sensitive
  4.  
  5. include \masm32\include\msvcrt.inc
  6. includelib \masm32\lib\msvcrt.lib
  7.  
  8. .code
  9. szMsg         db "hola mundo",0
  10. szPause       db "Pause",0
  11. szFrm         db "%s",0
  12.  
  13. start:
  14.  
  15. invoke crt_printf, offset szFrm,  offset szMsg    
  16. ;push offset szMsg
  17. ;push offset szFrm
  18. ;call crt_printf
  19. ;add esp, 8
  20.  
  21. push offset szPause
  22. call crt_system
  23. add esp, 4
  24.  
  25. ret
  26. end start
  27.  

pd: si uso qedit, Antes guardo el archivo y luego  es BuildAll o AssembleLink?

Saludos.


edited:
milagrosamente cai en el problema...
SOLUCION:
en QEdit para aplicacion consola hay que hacer click en
CONSOLE BUILD ALL.

ya me parecia muy raro.
« Última modificación: 1 Diciembre 2011, 19:01 pm por _Enko » En línea

Eternal Idol
Kernel coder ajeno al tiempo
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: masm, msvcrt.
« Respuesta #3 en: 1 Diciembre 2011, 19:09 pm »

Si, el problema es que el SUBSYSTEM es WINDOWS y no CONSOLE. Yo tambien use Assembly & Link y Build All y asi no funcionaron por eso, despues use lineas de comandos y funciono  ;D
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: masm, msvcrt.
« Respuesta #4 en: 1 Diciembre 2011, 19:20 pm »

Jeje, cosas que pasan cuando la herramienta no es SISO. (Same Input = Same Output) :laugh:

desde ayer me habia encaprichado de que no funcionara y no encontraba explicacion... bastante molesto, dormi mal  :P


gracias por tomarte el  tiempo de ayudar :)

En línea

Eternal Idol
Kernel coder ajeno al tiempo
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: masm, msvcrt.
« Respuesta #5 en: 1 Diciembre 2011, 19:23 pm »

Jeje de nadas, la linea de comandos es lo mas  ;-)
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
FASM o MASM? « 1 2 »
ASM
Riki_89D 12 11,556 Último mensaje 16 Abril 2010, 18:50 pm
por Иōҳ
ayuda con error _except_handler4_common archivo msvcrt.dll
Juegos y Consolas
darkangel2125 2 22,472 Último mensaje 2 Marzo 2016, 22:00 pm
por PauVignista
IDE EasyCode MASM
ASM
_Enko 2 4,989 Último mensaje 24 Diciembre 2011, 17:37 pm
por Иōҳ
MSVCRT hook
Programación C/C++
85 0 1,770 Último mensaje 24 Febrero 2013, 18:50 pm
por 85
Programar en MASM sugerencia Diferencia entre MASM y MASM32
ASM
kisk 1 4,021 Último mensaje 7 Enero 2018, 23:59 pm
por srWhiteSkull
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines