
Para quienes aún se preguntan cómo es buffer overflow y esas cosas del demonio... Justo encontré un ejemplo sencillísimo, por diversión, en el cliente NTP. Al darle un comando, verifica si lo entiende y sino manda un error, pero el buffer overflow ocurre cuando el comando es "muy largo" para el buffer que reservaron (quinientos veintitantos bytes).
En las instrucciones en ensamblador se puede observar claramente que el microprocesador quiere copiar el contenido del registro EAX, que es 0x41414141 (AAAA en hexadecimal) al buffer apuntado por el registro ESI, que es 0x41414141 (controlado totalmente, es decir, se puede sobreescribir cualquier parte de la memoria, lo que lleva al control de ejeción de código).
Es eso que escuchan de repente en las noticias o parches de seguridad como "... bug que permite la ejecución remota de código..", aquí con un claro ejemplo

. Feliz año !