Estos agujeros cuestan mucho de aprovechar (tienes que ser un fiera del ensamblador, o tener buenas utilidades), y almenos, M$ avisa de dichos errores. ¿Creeis que todo el resto de soft está libre de errores de estos?
Cualquier programa que realice escritura/lectura puede tener fácilmente un agujero de estos, incluso este simplísimo programa (igual me equivoco, hace mucho que no toco C)
void main()
{
char a[5];
scanf("%s",a);
}
Si el usuario entra un string de más de 5 carácteres, ya petó. Si se lo ha currado en los carácteres sobrantes, ya tendrá control sobre tu máquina. Alguién se parará a controlar todas las lecturas? Es muy difícil hombre! Lo que pasa es que a M$ se le echa también la culpa de todo, pero apuesto a que la mayoría de nosotros lo utiliza. Por que será?
Es mi opinión.