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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Duda con desensamblado
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con desensamblado  (Leído 1,426 veces)
eLank0
eLhAcKeR r00Lz


Desconectado Desconectado

Mensajes: 1.062



Ver Perfil WWW
Duda con desensamblado
« en: 29 Mayo 2008, 11:40 am »

Hola, estaba siguiendo el texto: Smashing the stack for fun and profit y tengo una dudilla.

El texto nos pone el siguiente código:

Código:
#include <stdio.h>

int main()
{
char *name[2];

name[0] = "/bin/sh";
name[1] = NULL;

execve(name[0], name, NULL);
}

Y teóricamente, al desensamblarlo con GDB, lo primero que observamos que nos llama la atención es el famoso procedure prelude:

Código:
push %ebp
movl %esp, %ebp
subl $0x8, %esp

Y de este modo reservamos los 8 bytes para el puntero a carácter del programa.

Pero en la práctica, no es así. Lo que a mí me muestra como procedure prelude es lo siguiente:

Código:
0x08048212 <main+10>:   push   %ebp
0x08048213 <main+11>:   mov    %esp,%ebp
0x08048215 <main+13>:   push   %ecx
0x08048216 <main+14>:   sub    $0x24,%esp

Y mis dudas son:

¿Por qué metemos el valor de ECX en la pila cuando aún no hemos tocado ese registro?

¿Podría afirmar que en mi SO (Ubuntu) los punteros son de 12 bytes en vez de 4?

Gracias, Salu2  :)
En línea

Ragnarok
Colaborador
***
Desconectado Desconectado

Mensajes: 4.588


Shrödingerificado


Ver Perfil
Re: Duda con desensamblado
« Respuesta #1 en: 30 Mayo 2008, 00:42 am »

¿Tienes un SO de 96 bits? creía que sólo se hacían de 64...

Usa sizeof para ver el tamaño de los punteros.

http://publications.gbdirect.co.uk/c_book/chapter5/sizeof_and_malloc.html
En línea

No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Desensamblado de binarios (exe, msi, etc.) con C# (pero no de lenguaje C#)
Ingeniería Inversa
DrKillador 1 2,055 Último mensaje 15 Agosto 2017, 08:18 am
por apuromafo CLS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines