elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  ImageBase de ejecutables y de librerías de enlace dinámico
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ImageBase de ejecutables y de librerías de enlace dinámico  (Leído 4,419 veces)
theternitend

Desconectado Desconectado

Mensajes: 5


Ver Perfil
ImageBase de ejecutables y de librerías de enlace dinámico
« en: 18 Abril 2012, 02:20 am »

Buenas!

Tengo entendido que en Windows, en lo que respecta a los ejecutables en formato PE, la ImageBase suele ser 4000000h y a partir de ahí se cargan en memoria.
En las DLL puede ocurrir que cuando tu programa intenta cargar una, y esta intenta cargarse desde la ImageBase especificada en su Header, esta parte de la memoria ya esté ocupada, y de ahí surge el tema de las relocaciones de las DLL.

La pregunta es... ¿cómo es que la ImageBase de los ejecutables siempre hace referencia a una zona de memoria libre?
Si todos los programas se cargan a partir de esa dirección, debería de estar ocupada si hay unos cuantos cargados en memoria.

Todo esto es lo que me pareció entender... si me equivoco en todo lo que digo corregidme por favor  :silbar:

Gracias a todos.


En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: ImageBase de ejecutables y de librerías de enlace dinámico
« Respuesta #1 en: 18 Abril 2012, 09:03 am »

Cada proceso tiene su espacio de memoria PRIVADO al que no se puede acceder con un puntero (sino todos podrian sobreescribir a los demas). Por eso la misma direccion VIRTUAL puede perfectamente apuntar a otra direccion FISICA.


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Binary_Death

Desconectado Desconectado

Mensajes: 214



Ver Perfil
Re: ImageBase de ejecutables y de librerías de enlace dinámico
« Respuesta #2 en: 18 Abril 2012, 11:59 am »

En ese caso, si tengo la dirección virtual, ¿puedo calcular de alguna forma la dirección física a la que corresponde durante la ejecución de un proceso?

¿Tiene esto que ver con la LDT y la GDT? Windows carga los registros de segmento con un selector que haciendo referencia a la tabla de descriptores indica una dirección real de memoria...

Pero no sé, es que tengo muchos datos teóricos pero pocos prácticos, y entonces sólo puedo hacerme a la idea de como funciona el asunto pero no consigo entenderlo del todo.

Gracias Eternal.
« Última modificación: 18 Abril 2012, 12:04 pm por Binary_Death » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: ImageBase de ejecutables y de librerías de enlace dinámico
« Respuesta #3 en: 18 Abril 2012, 13:21 pm »

¿theternitend = Binary_Death?

No podes, excepto desde modo Kernel. Mas tiene que ver con los PDEs y PTEs.

http://en.wikipedia.org/wiki/Virtual_memory

Virtual Address Space


Si el problema es la teoria te recomiendo conseguir Windows Internals y depurar en modo Kernel.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Binary_Death

Desconectado Desconectado

Mensajes: 214



Ver Perfil
Re: ImageBase de ejecutables y de librerías de enlace dinámico
« Respuesta #4 en: 18 Abril 2012, 17:00 pm »

theternitend = Binary_Death en este caso.
Es que hacía mucho que no me conectaba y no recordaba ya la password que tenía, así que usé la cuenta que se creó un amigo.
Ya recuperé la pass.

En el caso de las DLL, es necesario tener una tabla de reubicación porque se cargan en el mismo espacio de memoria del proceso, ¿no?
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: ImageBase de ejecutables y de librerías de enlace dinámico
« Respuesta #5 en: 18 Abril 2012, 19:24 pm »

Si, la gran mayoria son relocalizable y tienen la misima direccion base pretederminada (0x10000000), de no ser asi en cuanto coincidiera que una direccion base esta ocupada no se podria cargar la DLL.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Binary_Death

Desconectado Desconectado

Mensajes: 214



Ver Perfil
Re: ImageBase de ejecutables y de librerías de enlace dinámico
« Respuesta #6 en: 18 Abril 2012, 20:04 pm »

Por suerte parece que ya se comienzan a aclarar las cosas en mi cabeza   :xD

Vamos a ver si con un poco de práctica y haciendo un par de programas lo asimilo del todo.

Gracias de nuevo Eternal. Un saludo.
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: ImageBase de ejecutables y de librerías de enlace dinámico
« Respuesta #7 en: 18 Abril 2012, 20:24 pm »

De nadas ::)
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
forzar enlace con variables y enlace exerno
PHP
DJmixmancar 1 2,866 Último mensaje 17 Agosto 2008, 00:06 am
por DJmixmancar
ImageBase cambia...
Ingeniería Inversa
ignorantev1.1 7 4,578 Último mensaje 30 Diciembre 2011, 05:30 am
por Karman
Imagebase o BaseAddress de un proceso[HELP]
Programación Visual Basic
ignorantev1.1 0 1,651 Último mensaje 2 Diciembre 2011, 09:21 am
por ignorantev1.1
¿Es posible que kernel32.dll se cargue en otra ImageBase?
ASM
Binary_Death 1 2,792 Último mensaje 22 Abril 2012, 16:53 pm
por Binary_Death
[Duda] Biblioteca de enlace dinámico, C#.
.NET (C#, VB.NET, ASP)
Zodiak98 3 2,521 Último mensaje 21 Septiembre 2013, 00:23 am
por El Benjo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines