Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: Yurix en 4 Agosto 2009, 17:12 pm



Título: Como leer un archivo !?
Publicado por: Yurix en 4 Agosto 2009, 17:12 pm
Hola , estoy liado con un algoritmo de preprocesado de datos para su posterior compresión , pero como novato al fin no tengo experiencia con las apis de lectura y escritura , no te pido que me hagas el código  ;D, ya yo lo tengo terminado y probado solo tengo unas dudas . Necesito que el programa lea y escriba en un archivo (De cualquier tamaño).Ya se como crear un archivo pero necesito leerlo y no me sale bien , me puedes ayudar ?

Este es para escribir :

; EN eax tendremos el archivo a preprocesar (Ruta)

comment *
; Para crear un archivo ...
                 ;creamos el archivo
               invoke CreateFileA,eax, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0
                mov [handleCreado], eax
 
                ;Escibimos el archivo
                invoke WriteFile, eax,addr MsgTexto,20,addr bEscritos, NULL
 
                ; "Cerramos" el archivo creado
                invoke CloseHandle, [handleCreado]

------------------------------------Me funciona bien , pero el de leer :


; Para leer de un archivo

    invoke CreateFile,eax,
                      GENERIC_READ,
                      FILE_SHARE_READ,
                      NULL,OPEN_EXISTING,
                      FILE_ATTRIBUTE_NORMAL,
                      NULL
    mov [handleruta], eax

; Obtener el tamaño
    invoke GetFileSize,handleruta,NULL
    mov [tamano], eax

invoke ReadFile,[handleruta],[datos],eax,ADDR br,NULL

invoke CloseHandle,[handleruta]

Me da error al crear el handle.

Saludos


Título: Re: Como leer un archivo !?
Publicado por: Eternal Idol en 4 Agosto 2009, 18:00 pm
Comproba los parametros (especialmente que la cadena en eax sea correcta) y llama a GetLastError para averiguar la causa por la cual no abre el archivo.


Título: Re: Como leer un archivo !?
Publicado por: YST en 4 Agosto 2009, 19:10 pm
Código
  1. invoke GetFileSize,[handleruta],NULL
  2.