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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  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,909 veces)
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


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


Ver Perfil WWW
Re: fasm consola
« Respuesta #20 en: 5 Junio 2014, 09:10 am »

Tu programa ya es de consola, no hace falta llamar a AllocConsole.

¿De donde sale 13? No podes saber de antemano el tamaño de la cadena que contiene los nombres de los archivos/directorios ... ahi tenes lstrlen importada, usala.

¿Que estas tratando de comprobar si retorno correctamente? ¿FindFirstFile o WriteConsole? Si es la primera entonces el codigo esta mal, no podes hacer el cmp DESPUES de llamar a WriteConsole ya que esta igual que todas las funciones que retornan un valor va a hacerlo en EAX y va a sobreescribir el valor que retorno antes FindFirstFile. Incluso aunque no retornara nada, tenes que conocer la convencion de llamada stdcall, en la misma se especifica que EAX es un registro volatil y no preservado, es decir que cada funcion puede cambiarle el valor y retornar a la funcion llamadora sin restaurarlo al valor que tenia al ser esta funcion llamada.

Justamente ligado a lo anterior el primer parametro de FindNextFile es un HANDLE, el que devuelve FindFirstFile mas precisamente, no una cadena.

BOOL WINAPI FindNextFile(
  _In_   HANDLE hFindFile,
  _Out_  LPWIN32_FIND_DATA lpFindFileData
);

Tambien tenes que comprobar el valor de retorno antes de tratar de trabajar con lpFindFileData, eventualmente la funcion falla cuando no hay mas archivos/directorios.

La etiqueta Exit no tiene codigo, asi que ejecuta lo que sea que haya en memoria, ponele un ret al menos (tambien tenes importado ExitProcess, podrias usarlo).

¿Viste la cantidad de errores en tan poco codigo? Por eso repito: mirate los hilos con chincheta entonces, tenes que leer mucho para pasar de hacer copy/paste.


« Última modificación: 5 Junio 2014, 09:21 am por Eternal Idol » 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 #21 en: 5 Junio 2014, 16:53 pm »

uy gracias!!! corregi algo pero no del todo alguna idea para seguir avanzando?



« Última modificación: 5 Junio 2014, 17:49 pm por DeviiAC » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


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


Ver Perfil WWW
Re: fasm consola
« Respuesta #22 en: 5 Junio 2014, 17:04 pm »

uy gracias!!! corregi algo pero no del todo alguna idea para seguir avanzando?

Si, aplica todo lo que te dije en el mensaje anterior, con eso sin duda podes hacerlo funcionar tal y como ya hice yo.

PD. Seguis sin pasarle el HANDLE devuelto por FindFirstFile a FindNextFile. Seguis usando 13 como magic number en la primera llamada a WriteConsole. Y FindNextFile no retorna INVALID_HANDLE_VALUE cuando falla sino 0, su tipo de retorno es booleano. No te acostumbres a usar EBX, no podes modificar su valor sin preservarlo como indica la convencion de llamada stdcall.
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 #23 en: 15 Junio 2014, 00:55 am »

disculpen la molestia pero necesito su ayuda nuevamente

como diferenciar si es un directorio o un archivo???

gracias por todo...
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


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


Ver Perfil WWW
Re: fasm consola
« Respuesta #24 en: 15 Junio 2014, 01:04 am »

En la estructura WIN32_FIND_DATA hay un campo llamado dwFileAttributes y el flag FILE_ATTRIBUTE_DIRECTORY es el que necesitas comprobar.
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 2 [3] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda Fasm
ASM
SLUGER 7 5,628 Último mensaje 31 Mayo 2009, 07:06 am
por YST
Sintaxis FASM « 1 2 »
ASM
ferk93 16 11,263 Ú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 4,084 Último mensaje 6 Marzo 2010, 17:27 pm
por raul338
PRoblema en fasm intentando usar consola
ASM
fary 3 4,311 Ú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