Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: FFernandez en 21 Octubre 2020, 22:45 pm



Título: Distinguir entre DATOS E INSTRUCCIONES?
Publicado por: FFernandez en 21 Octubre 2020, 22:45 pm
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….


Título: Re: Distinguir entre DATOS E INSTRUCCIONES?
Publicado por: 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?


Título: Re: Distinguir entre DATOS E INSTRUCCIONES?
Publicado por: FFernandez en 22 Octubre 2020, 21:53 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 (http://www.openrce.org/reference_library/files/reference/PE%20Format.pdf)


Título: Re: Distinguir entre DATOS E INSTRUCCIONES?
Publicado por: 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

(https://dfir.training/resources/downloads/cheatsheets-infographics/286-pefilestructure/file)


Título: Re: Distinguir entre DATOS E INSTRUCCIONES?
Publicado por: FFernandez en 23 Octubre 2020, 20:12 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 (https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/corkami/PE102posterV1.pdf)