Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: Avoidance25 en 25 Agosto 2009, 02:34 am



Título: ¿Cual es la mejor manera de manejar archivos?
Publicado por: Avoidance25 en 25 Agosto 2009, 02:34 am
Hice un encriptador de archivos en c, y queria hacerlo ahora en ASM para que sea mas rapido. El problema es que no se como escribir en archivos de otra manera que usando el int 21h, y me parece que usando asm de 32 bits se deberia hacer ya de otra forma.
Cual es la mejor manera de escribir en archivos ?, con la int 21h ?, o hay alguna API de windows que me ayude ?


Título: Re: ¿Cual es la mejor manera de manejar archivos?
Publicado por: YST en 25 Agosto 2009, 02:39 am
Para escribir archivos en windows usa las api's

  • CreateFile (http://msdn.microsoft.com/en-us/library/aa363858%28VS.85%29.aspx)
  • WriteFile (http://msdn.microsoft.com/en-us/library/aa365747%28VS.85%29.aspx)
  • CloseHandle (http://msdn.microsoft.com/en-us/library/ms724211%28VS.85%29.aspx)

    Hay mas api's que podrias usar pero con esas basta ;) :D


Título: Re: ¿Cual es la mejor manera de manejar archivos?
Publicado por: MCKSys Argentina en 25 Agosto 2009, 02:53 am
Hola!

Te puedo recomendar el sitio de Iczelion. Sus tutoriales sobre ASM son de lo mejor que hay dando vueltas (aparte de haber sido unos de los primeros :D)

Página de Iczelion:
Código:
http://win32assembly.online.fr/

Saludos!


Título: Re: ¿Cual es la mejor manera de manejar archivos?
Publicado por: Avoidance25 en 25 Agosto 2009, 19:17 pm
Muchas gracias por las respuestas, ambas me sirvieron muchisimo. De todas formas voy a ver de leer un poco antes de hacer el programa, ya que me doy cuenta de que hay mucha diferencia entre 16 y 32 bits.

Ahhh, me estaba preguntando: ¿Es un invoke mas lento que un call(con todos los push) cuando se quieren usar funciones?


Título: Re: ¿Cual es la mejor manera de manejar archivos?
Publicado por: Eternal Idol en 25 Agosto 2009, 19:35 pm
invoke es una directiva que el ensamblador reemplazara por el pasaje de parametro necesario (normalmente push's si la convencion de llamada establece que los parametros van en la pila) y el call mismo. Es decir, finalmente es exactamente lo mismo.


Título: Re: ¿Cual es la mejor manera de manejar archivos?
Publicado por: YST en 25 Agosto 2009, 19:36 pm
Ahhh, me estaba preguntando: ¿Es un invoke mas lento que un call(con todos los push) cuando se quieren usar funciones?

Un invoke es una macro que transforma lo que el pones antes de ensamblarlo un ejemplo
Código
  1. invoke MessageBox,0,0,0,0
eso lo transforma el ensamblador en
Código
  1. push 0
  2. push 0
  3. push 0
  4. push 0
  5. call [MessageBox]



Título: Re: ¿Cual es la mejor manera de manejar archivos?
Publicado por: Avoidance25 en 25 Agosto 2009, 20:16 pm
Ahhhh, pues muchas gracias de nuevo.