Título: Duda con desensamblado Publicado por: eLank0 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> 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 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 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 :) Título: Re: Duda con desensamblado Publicado por: Ragnarok 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 |