Ejecutables PE y su cabecera

Iniciado por >FedeX<, 28 Julio 2007, 20:25 PM

0 Miembros y 1 Visitante están viendo este tema.

>FedeX<

Bueno me encuentro estudiando un poco el ejecutable de windows. Y resulta que tengo un problema con la primera cabezera. Todos mis ejecutables compilados con del Dev-C++ tienen la primera cabezera exactamente igual (la de MZ). Sea cual sea el archivo, es exactamente igual. Lo mismo me pasa con el compilador del ensamblador. ¿Entonces? Que son estas cabezeras?
Intenté darle un valor de 0 a cada dato (excepto el de la clave magica MZ y el ultimo DWORD) y funciona de maravilla el programa... Intento darle otro valor como FF, FFFF o FFFFFFFF y el programa funciona como si no hubiece hecho nada...

¿De verdad funcionan estas cabezeras? ¿Son del DOS? ¿Por qué los programas de windows rellenan estas cabeceras, entonces?

Y otra pregunta. ¿Que es una pagina? Ya que el segundo dato pide la cantidad de bytes de la ultima página, pero como no puedo comprarar porque todos los ejecutables tienen el mismo valor, no entiendo.

La razón de esto es que quiero hacer un compilador sencillo... A lo mejor me ayude mucho un sencillo codigo fuente de un compilador sencillo en un lenguaje de mayor nivel que el ensamblador por favor :P...

Muchas gracias.

byebye

pues en esa cabecera tienes un puntero a la cabecera PE, y es la que muestra el mensajito this program cant be run in dos mode. aparte d esto no  sirve para nada mas, las demas si so importantes pero todo esto ya esta explicado en el formato PE en muchos sitios encontraras iformacion.

>FedeX<

Cita de: ̿̿̿̿̿̿̿̿̿ en 28 Julio 2007, 21:38 PM
pues en esa cabecera tienes un puntero a la cabecera PE, y es la que muestra el mensajito this program cant be run in dos mode. aparte d esto no  sirve para nada mas, las demas si so importantes pero todo esto ya esta explicado en el formato PE en muchos sitios encontraras iformacion.
Me podrías dar algunas webs? :rolleyes:
Tengo solo una... pero no me explica que son esas "páginas" y cosas asi...

Shaddy

Cita de: >FedeX< en 29 Julio 2007, 04:00 AM
Cita de: ̿̿̿̿̿̿̿̿̿ en 28 Julio 2007, 21:38 PM
pues en esa cabecera tienes un puntero a la cabecera PE, y es la que muestra el mensajito this program cant be run in dos mode. aparte d esto no  sirve para nada mas, las demas si so importantes pero todo esto ya esta explicado en el formato PE en muchos sitios encontraras iformacion.
Me podrías dar algunas webs? :rolleyes:
Tengo solo una... pero no me explica que son esas "páginas" y cosas asi...

http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/000-100/044-ESTUDIO%20DE%20LOS%20ENCABEZADOS%20PE%20parte%201%20POR%20SICK%20TROEN.zip
http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/000-100/048-ESTUDIO%20DE%20LOS%20ENCABEZADOS%20PE%20parte%202%20POR%20SICK%20TROEN.zip

Salu2..
"Si buscas resultados diferentes, no hagas siempre lo mismo" (Albert Einstein)

http://abssha.reversingcode.com
http://www.reversingcode.com

>FedeX<

Ya basta de quotes xD

Muchas gracias... Me sirve bastante

Shaddy

si la verdad, es una manía mala que tengo de quotear, pero como es tan fácil =)).

Salu2..
"Si buscas resultados diferentes, no hagas siempre lo mismo" (Albert Einstein)

http://abssha.reversingcode.com
http://www.reversingcode.com

programatrix

Todos los .exe del mundo tienen cabezera MZ,
Saludos

Shaddy

creo que se referia a los bytes que siguen de MZ, MZ es la una signatura igual que "PE" que indica el inicio de la misma..

Salu2..
"Si buscas resultados diferentes, no hagas siempre lo mismo" (Albert Einstein)

http://abssha.reversingcode.com
http://www.reversingcode.com

>FedeX<

Lo que quería decir es que la cabezera de MZ no sirve... Por mas que modifique sus valores sigue funcionando como el original.

Shaddy

Cita de: >FedeX< en 31 Julio 2007, 15:00 PM
Lo que quería decir es que la cabezera de MZ no sirve... Por mas que modifique sus valores sigue funcionando como el original.

y si, pero depende del compilador y lo que utilize el programa de esa cabecera.

Salu2...
"Si buscas resultados diferentes, no hagas siempre lo mismo" (Albert Einstein)

http://abssha.reversingcode.com
http://www.reversingcode.com