Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: >FedeX< en 28 Julio 2007, 20:25 pm



Título: Ejecutables PE y su cabecera
Publicado por: >FedeX< en 28 Julio 2007, 20:25 pm
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.


Título: Re: Ejecutables PE y su cabecera
Publicado por: byebye 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.


Título: Re: Ejecutables PE y su cabecera
Publicado por: >FedeX< en 29 Julio 2007, 04:00 am
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...


Título: Re: Ejecutables PE y su cabecera
Publicado por: Shaddy en 29 Julio 2007, 12:58 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..


Título: Re: Ejecutables PE y su cabecera
Publicado por: >FedeX< en 29 Julio 2007, 17:51 pm
Ya basta de quotes xD

Muchas gracias... Me sirve bastante


Título: Re: Ejecutables PE y su cabecera
Publicado por: Shaddy en 29 Julio 2007, 21:51 pm
si la verdad, es una manía mala que tengo de quotear, pero como es tan fácil =)).

Salu2..


Título: Re: Ejecutables PE y su cabecera
Publicado por: programatrix en 30 Julio 2007, 15:47 pm
Todos los .exe del mundo tienen cabezera MZ,
Saludos


Título: Re: Ejecutables PE y su cabecera
Publicado por: Shaddy en 30 Julio 2007, 22:17 pm
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..


Título: Re: Ejecutables PE y su cabecera
Publicado por: >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.


Título: Re: Ejecutables PE y su cabecera
Publicado por: Shaddy en 31 Julio 2007, 18:18 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...