Autor
|
Tema: Las direcciones virtuales de un ejecutable, ¿pueden variar? (Leído 1,487 veces)
|
0x98364
|
Buenas a todos,
Es una pregunta tonta, lo sé, pero me surgió el otro día y no pude fundamentar con lógica la respuesta.
Las direcciones virtuales que, por ejemplo, te puede dar OllyDBG de un ejecutable, ¿pueden variar de un equipo a otro? O siempre van a ser las mismas independientemente del equipo donde se depure un programa.
Entiendo que lo que cambia es la traducción de virtual a física, pero qisiera mas info sobre este tema.
Muchas gracias. Un saludo.
|
|
|
En línea
|
while(!noHacking) KeepCalmAndHackThePlanet.start();
|
|
|
MCKSys Argentina
|
Hola! Si el ejecutable está compilado con ASLR es muy probable (casi 100%  ) que cambien. Si no fue compilado con eso, entonces el binario principal estará siempre a partir de la ImageBase que figura en el Header. Si tiene libs propias y las mismas no están con ASLR y, además, la dirección de su ImageBase no está ocupada al momento de cargarse; entonces la misma se cargará en la dirección que indica la ImageBase del header también. Saludos!
|
|
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
0x98364
|
Muchas gracias por la respuesta.
He estado leyendo sobre la ImageBase de los ejecutables, y tengo entendido que por defecto se cargan en 0x400000, ¿es cierto?
La cosa cambia entonces cuando se cargan DDLs y éstas necesitan tirar de .reloc y entonces es ahí donde las direcciones virtuales varian.
Creo que ya empiezo a entender, mi duda era que siempre que cargaba un ejecutable en OllyDBG siempre empezaba por la misma dirección virtual independientemente del equipo que utilizase y de la memoria del equipo, pero ya empiezo a tener idea jeje. Gracias de nuevo.
Un saludo.
|
|
|
En línea
|
while(!noHacking) KeepCalmAndHackThePlanet.start();
|
|
|
Geovane
Desconectado
Mensajes: 208
|
Os threads mudam de endereço virtual.
|
|
|
En línea
|
|
|
|
|
|