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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  fasm consola
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: fasm consola  (Leído 14,224 veces)
bengy


Desconectado Desconectado

Mensajes: 501


mis virtudes y defectos son inseparables


Ver Perfil WWW
fasm consola
« en: 30 Mayo 2014, 06:34 am »

es posible trabajar por consola en FASM  ???


En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


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


Ver Perfil WWW
Re: fasm consola
« Respuesta #1 en: 30 Mayo 2014, 08:51 am »

Si, claro. En Windows se usan las funciones de la API GetstdHandle con STD_OUTPUT_HANDLE y WriteFile.


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: fasm consola
« Respuesta #2 en: 30 Mayo 2014, 16:10 pm »

Hola, yo prefiero usar la runtime de C para  la consola, se hace asi:
Código:
format PE  Console
entry start

include '%fasminc%/win32ax.inc'

section ".data" data readable writeable
        szMsg db 'Hola',0
        frmt db '%s',0
        szPause db 'PAUSE',0
        


section ".code" code readable writeable executable
start:

       cinvoke  printf, szMsg, frmt
       cinvoke  system, szPause
       invoke   ExitProcess,0

section ".idata" import data readable writeable

library kernel32,'kernel32.dll',\
        user32,'user32.dll',\
        msvcrt,'msvcrt.dll'

        include '%fasminc%\api\kernel32.inc'
        include '%fasminc%\api\user32.inc'
        include '%fasminc%\api\msvcrt.inc'

msvcrt.inc no viene con fasm, pero lo puedes agregar manualmente a los includes.
Con la ventaja de tener toda la libreria de c standard a mano; En el caso de la consola, obtiene el HANDLE automaticamente

http://bitshare.com/files/bwvzbp1q/MSVCRT.INC.html
colocas el archivo en INCLUDE/API

Saludos.
« Última modificación: 30 Mayo 2014, 16:23 pm por _Enko » En línea

bengy


Desconectado Desconectado

Mensajes: 501


mis virtudes y defectos son inseparables


Ver Perfil WWW
Re: fasm consola
« Respuesta #3 en: 31 Mayo 2014, 05:55 am »

gracias por responder...

tienen algun ejemplo de como mostrar por consola los resultados de un procedimiento???

es decir que mi procedimiento devuelve varios resultados en un bucle, mi duda es como mostrar todos esos resultados


gracias a todos......
« Última modificación: 31 Mayo 2014, 06:09 am por DeviiAC » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


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


Ver Perfil WWW
Re: fasm consola
« Respuesta #4 en: 31 Mayo 2014, 08:16 am »

Podes usar printf perfectamente, busca su referencia en Google si nunca programaste en C/C++.
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
bengy


Desconectado Desconectado

Mensajes: 501


mis virtudes y defectos son inseparables


Ver Perfil WWW
Re: fasm consola
« Respuesta #5 en: 1 Junio 2014, 04:03 am »

pretendo mostrar dx pero no funciona
pueden revisar mi codigo? se lo agradeceria mucho...

Código:
format PE console
entry start
include 'win32w.inc'
 
;======================================
section '.data' data readable writeable
;======================================

Msg1  DB 'Introduzca el nombre:',0
Msg2  DB 'Total:$'
Msg3  DB 'Error',0dh,0ah
Avanza DB 0Dh,0Ah, '$'
BufEnt DB '*.*',0
       DB ?
ASCIIZ DB '*.*',0

DTASeg DW ?

;=======================================
section '.code' code readable executable
;=======================================
 
start:

 proc Entrada

               cld
               mov ax,@DATA
               mov ds,ax
               mov [DTASeg],es
               mov es,ax
               mov es,ax

               mov ah,4eh
               mov cx,17h
               mov dx,offset ASCIIZ
               int 21h
               jc Final

               
 Bucle:

         mov es,[DTASeg]
         mov di,80h+30

         mov cx,13
         xor al,al
         repne scasb
         dec di
         mov al,'$'
         stosb
         
         push ds

         mov ah,9
         mov ds,[DTASeg]
         mov dx,80h+30
         ccall   [printf],dx ; pretendo mostrar dx----------------------------------------
         int 21h
         pop ds
         
         mov ah,9
         mov dx,OFFSET Avanza

         int 21h

         mov ah,4Fh
         int 21h
         jc Final

         jmp Bucle
         
         Final:

         cmp ax,12h
          jne error

         mov ah,9
         mov dx,OFFSET Msg2
         int 21h
         

         
         Error:
         mov ah,9
         mov dx,OFFSET Msg3
         int 21h

         mov ax,4c01h
         int 21h

       endp
;====================================
section '.idata' import data readable
;====================================


library kernel,'kernel32.dll',\
        msvcrt,'msvcrt.dll' ,\user32,'user32.dll'

import user32,MessageBoxA,'MessageBoxA'
 
import  kernel,\
        ExitProcess,'ExitProcess'
 
import  msvcrt,\
        printf,'printf',\
        getchar,'_fgetchar'
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


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


Ver Perfil WWW
Re: fasm consola
« Respuesta #6 en: 1 Junio 2014, 09:09 am »

¿int 21h?  :-X Estas mezclando codigo de 16 bits para MS-DOS en un programa de 32 bits para Windows que te dejo _Enko ...
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
bengy


Desconectado Desconectado

Mensajes: 501


mis virtudes y defectos son inseparables


Ver Perfil WWW
Re: fasm consola
« Respuesta #7 en: 2 Junio 2014, 02:13 am »

ouch es que aprendi assembler para 16 bits

como mostrar dx para 32 bits por consola???
« Última modificación: 2 Junio 2014, 03:56 am por DeviiAC » En línea

_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: fasm consola
« Respuesta #8 en: 2 Junio 2014, 16:05 pm »

Hola, como te había comentado EternalIdol,
http://www.cplusplus.com/reference/cstdio/printf/

Código:

cinvoke printf, szFORMATO, edx

donde szFormato podría ser:
szFORMATO db "Este es el valor de DX: %i",0



recuerda que como es 32 bit, es dificil que pases como parametro DX solo, tienes que pasar el registro EDX completo.
Para que no haya problemas, recuerda hacer  XOR EDX, EDX al inicio, asi no tienes problemas con el bit alto. y Si modificas solamente DX, EDX tendrá el mismo valor.

i% significa que vas a pasar como parametro un nro entero, un INT.
printf va reemplazar %i con el valor del siguiente parametro.
Si usas por ejemplo "%i, %i"  tendrás que pasar como parametro 2 enteros.


Seria algo como
Código:
  ccall   [printf],szFORMATO, edx
szFORMATO es "%i",0

Puedes programar en fasm en 16bit tambien.
PE console  una aplicación con consola de 32 bit. No exiten interrupciones alli.
En Fasm puedes programar en 16bit tambien, si mal no recuerdo era format MZ, asi obtienes una aplicacion para DOS (que es  consola)




Saludos.
« Última modificación: 2 Junio 2014, 16:27 pm por _Enko » En línea

bengy


Desconectado Desconectado

Mensajes: 501


mis virtudes y defectos son inseparables


Ver Perfil WWW
Re: fasm consola
« Respuesta #9 en: 2 Junio 2014, 21:28 pm »

ya intente de varias formas y nada
creo que el problema es que no entra al procedimiento
En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda Fasm
ASM
SLUGER 7 5,335 Último mensaje 31 Mayo 2009, 07:06 am
por YST
Sintaxis FASM « 1 2 »
ASM
ferk93 16 10,765 Último mensaje 9 Julio 2009, 09:57 am
por Erik#
[APORTE] Usando consola con Threads (aka: consola estilo quake) :D
.NET (C#, VB.NET, ASP)
raul338 0 3,918 Último mensaje 6 Marzo 2010, 17:27 pm
por raul338
PRoblema en fasm intentando usar consola
ASM
fary 3 4,127 Último mensaje 1 Agosto 2010, 21:41 pm
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines