Documente Academic
Documente Profesional
Documente Cultură
Nacional
Escuela Superior de Ingeniería
Mecánica y Eléctrica
Unidad; Culhuacán
Practica 1
Desborde de la Memoria.
Alumno:
Guillen Verazaluce Miguel Ángel
Maestro:
Ing. Javier Rodríguez Hernández
Materia:
Análisis Numérico
Grupo:
4EV24
Boleta:
2016350252
1
Introducción.
Un desbordamiento de memoria es una forma de sobrepasar la memoria que hay reservada para
un dato, hablando en términos de informática. Cuando un programador hace un programa, no se
atiende a escribir todo el código su secuencia, lo normal es utilizar pequeñas funciones que
estructuran ese código y lo hacen más legible.
Los desbordamientos del buffer de memoria siguen siendo uno de los puntos débiles más
peligrosos y más comunes en aplicaciones que utilizan gestión manual de memoria.
En verdad, un buffer se produce en una aplicación informática cuando no cuenta con los controles
de seguridad necesarios en su código de programación. Cabe destacar que para poder llevar a
cabo un desborde de memoria, se debe contar con conocimientos de programación, como
también nociones básicas de arquitectura de Sistemas Operativos.
Desarrollo.
1. Se desarrolla una aplicación, una calculadora básica donde se le solicitan dos variables al
usuario, junto con ella la operación algebraica a realizar.
Código
2
3
<< endl;
Código;
break;
#include <iostream>
<< endl
case 3:
<< "Ingrese el primer numero.....: "; cin >> n1;
system ("cls");
cout << endl
cout << "\n\n La multiplicacion de los
<< endl
numeros es: "
<< "Ingrese el segundo numero....: "; cin >> n2;
<< n1*n2
system ("cls");
<< endl;
cout << " * Calculadora basica * \n"
<< endl
case 4:
<< endl
system ("cls");
<< " Operacion a realizar? "
cout << "\n La division de los numeros es: "
<< endl
<< n1/n2;
<< endl;
cout<< endl;
cout<< " Suma. [1]"<<endl;
}while(opc1!=2);
case 1:
system ("Pause");
system ("cls");
return 0;
cout << "\n\n La suma de los numeros es: " 4
}
<< n1+n2
Conclusión.
Evitar el uso de mecanismos que permitan la gestión manual de la memoria, ya que facilitan que
se cometan errores en el manejo de la misma y, por tanto, que se produzcan desbordamientos de
memoria.
Controlar que los datos introducidos están dentro del rango de valores adecuados si son de tipo
numérico y que no sobrepasan la longitud esperada en el caso de ser de tipo cadena.
Este control debe realizarse tanto en el lado del cliente como en el servidor ya que las
validaciones en el cliente son vulnerables.
Por ejemplo, el uso del lenguaje C o C++, donde se permite el uso de punteros a memoria, habría
que dejarlo sólo para cierto tipo de sistemas de alto rendimiento, donde se necesite programar a
bajo nivel la gestión de la memoria.
Fuente.
http://sgotiweb.epn.edu.ec/openjournal/files/journals/2/articles/5/public/5-32-1-PB.pdf
https://es.wikipedia.org/wiki/Desbordamiento_de_b%C3%BAfer