Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: franfis en 27 Mayo 2009, 01:49 am



Título: Volcado a memoria de un ejecutable
Publicado por: franfis en 27 Mayo 2009, 01:49 am
Hola a todos :¬¬ .Bueno mi consulta es la siguiente; Tengo mucha curiosidad sobre el mecanismo de ejecucion de un ejecutable. Leí que primero se vuelca en memoria y que cada programa tiene un "Prefijo de segmento de programa(PSP)" que se ubica desde 00H hasta 0FF creo y que el codigo se ubica en otro sitio asi como el stack.

Pero tambien leí que sobre "Bloque se control de programa(BCP)" que yo le entendí que es lo mismo que el PSP. Me parece que para ubicar el codigo se suma la Image base a la direccion donde se alojo las instrucciones en ensamblador en un principio(por eso me parece que las insatrucciones se ubican en algun lado primero) ,etc,etc,etc  :huh: Estoy totalmente confundido¡¡¡¡¡¡¡¡¡¡¡

Espero de su amable ayuda Graciasss...



Título: Re: Volcado a memoria de un ejecutable
Publicado por: Eternal Idol en 27 Mayo 2009, 09:23 am
Primero que nada aclarar que estas hablando de MS-DOS (otros S.O. y formatos de ejecutable trabajan de otra manera).

Si es un .COM, es decir un ejecutable puro que contiene pura y exclusivamente instrucciones sin ninguna cabecera la ejecucion arranca exactamente en el primer byte del archivo (estas instrucciones, que son el ejecutable en el archivo, en TODOS los casos son previamente cargadas en memoria para que las pueda ejecutar el procesador).

Si es un .exe para MS-DOS (http://www.delorie.com/djgpp/doc/exe/) la ejecucion arranca en el IP especificado.


Título: Re: Volcado a memoria de un ejecutable
Publicado por: franfis en 1 Junio 2009, 03:55 am
 :)Gracias por tu respuesta Eternal Idol; Digamos como seria la estructura de la memoria cuando se paso a memoria (valga la redundancia) por ejemplo del S.O Windows y como del DOS??. Si fueras tan amable darme algun link donde lo explican. Graciassss ;D


Título: Re: Volcado a memoria de un ejecutable
Publicado por: Eternal Idol en 1 Junio 2009, 09:34 am
Los ejecutables de  Windows tiene este formato: PE (http://en.wikipedia.org/wiki/Portable_executable). Los de MS-DOS son MZ (http://www.delorie.com/djgpp/doc/exe/) (este enlace esta en mi anterior mensaje tambien).