Distinguir entre DATOS E INSTRUCCIONES?

Iniciado por FFernandez, 21 Octubre 2020, 22:45 PM

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

FFernandez

Un saludo a todos:

¿Examinando  el código binario de un " .EXE", sabe alguien como distinguir entre DATOS E INSTRUCCIONES?

¿ Como encontrar la primera instrucción que se ejecuta ?

          Gracias....

Moskito

Hola! y no podes ver el desensamblado en ASSEMBLER? si o si en binario tiene que ser?

Cómo abrís en binario el *.exe?
No se queje si no se queja.

FFernandez

#2
Cita de: Moskito en 22 Octubre 2020, 20:01 PM
Hola! y no podes ver el desensamblado en ASSEMBLER? si o si en binario tiene que ser?

Cómo abrís en binario el *.exe?

El tema es que los EXEs Y DLLs, si están hechos con un compilador conocido, podemos conocer su encabezado "TIPO", aquí hay datos de la compilación, declaraciones, constantes, llamadas al sistema operativo, etc....       Supongamos que es  "void Main()"     ¿cómo sabe el procesador donde poner el puntero inicial?

Además todo lo que aparece en el encabezado, lo carga en memoria y el sistema operativo sabe donde ubicar el programa y como tratarlo(Ej:32 o 64 bits)

en ASSEMBLER tambien vale........................gracias


http://www.openrce.org/reference_library/files/reference/PE%20Format.pdf

ThunderCls

Para comprender esto debes tener una idea del formato PE. Este formato establece que por regla general un .exe (PE) esta conformado por muchas estructuras, algunas de estas son las denominadas "sections". Un ejecutable contiene varias secciones, cada sección con sus atributos y su contenido especifico (datos, codigo, recursos, etc). Se supone que la sección "code" es la sección que contiene codigo ejecutable o instrucciones, aunque puedes tener otras secciones fuera de la sección "code" que tambien contengan codigo ejecutable. La primera instruccion que se ejecuta esta alojada en el campo AddressOfEntryPoint de la estructura _IMAGE_OPTIONAL_HEADER. Este valor indica la primera instruccion del codigo que se ejecuta una vez el loader de windows ha cargado el binario en memoria.

En esta imagen tienes muchos mas detalles al respecto

-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/

FFernandez

#4
Cita de: ThunderCls en 22 Octubre 2020, 21:57 PM
Para comprender esto debes tener una idea del formato PE. Este formato establece que por regla general un .exe (PE) esta conformado por muchas estructuras, algunas de estas son las denominadas "sections". Un ejecutable contiene varias secciones, cada sección con sus atributos y su contenido especifico (datos, codigo, recursos, etc). Se supone que la sección "code" es la sección que contiene codigo ejecutable o instrucciones, aunque puedes tener otras secciones fuera de la sección "code" que tambien contengan codigo ejecutable. La primera instruccion que se ejecuta esta alojada en el campo AddressOfEntryPoint de la estructura _IMAGE_OPTIONAL_HEADER. Este valor indica la primera instruccion del codigo que se ejecuta una vez el loader de windows ha cargado el binario en memoria.

En esta imagen tienes muchos mas detalles al respecto




Muchas gracias, muy útil la información ya se por donde seguir, no encontraba nada en mis búsquedas............................    


Ya encuentro cosas para entretenerme.........................

https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/corkami/PE102posterV1.pdf