“Conocimiento Programación>C /C + + Programming

C + + Funciones que causan desbordamientos de memoria

2014/3/7
A diferencia de otros lenguajes , C y C + + no comprobar el tamaño de la entrada antes de escribir en un búfer. Si la entrada es mayor que el espacio asignado en la memoria intermedia , la entrada se escribe más de otros datos en la pila del programa . Además de la causa de su programa se comporte de forma errática , desbordamientos de búfer puede permitir que un atacante se bloquee su programa , acceder a datos privados o incluso tomar el control de una máquina. Evitar funciones no seguras de C + + es uno de los pasos para la prevención de desbordamientos de búfer en el programa. Funciones de cadena

funciones inseguras que manejan cadenas incluyen strcpy (), strcat (), sprintf (), vsprintf (), y obtiene (). Estas funciones realizan operaciones sobre las variables de cadena , almacenados como arrays de caracteres en C + + . Las funciones de lectura una cadena de una fuente - tales como la entrada del usuario - copia , o concatenar una cadena para formar una nueva cadena . Si usted no selecciona el tamaño de la nueva cadena antes de escribir en la memoria , puede causar un desbordamiento de búfer .
Funciones de escaneo

funciones de escaneo de archivos no seguros incluyen scanf (), fscanf (), sscanf (), vscanf () vsscanf () y vfscanf (). Funciones de escaneo leen los datos de entrada del usuario, un archivo o de otras fuentes y escribir en una cadena con formato. Si los datos escaneados es mayor que el espacio asignado para la cadena de formateador , se producirá un desbordamiento de búfer .
BPOS Standard Microsoft Funciones

funciones inseguras en las bibliotecas de Microsoft incluyen wcscpy ( ) , _tcscpy ( ) , _mbscpy ( ) , wcscat ( ) , _tcscat ( ) , _mbscat ( ) y plantean CopyMemory ( ) . Estas funciones se copian y concatenar principalmente funciones que utilizan objetos de Microsoft específicas , en lugar de cadenas o datos de archivo.
Otras funciones

Otras funciones inseguras C + + incluye realpath () , getopt (), getpass (), streadd (), strecpy () y strtrns ().

C /C + + Programming
Cómo Desplazarse a una fila en un DataGridView
Cómo depurar una pérdida de memoria en C + +
Cómo leer una matriz en lenguaje C
¿Qué es un código de encabezado?
Cómo conectar Visual C a una base de datos Access
Cómo hacer una función de cola en la sintaxis de C
Adición de un nodo a TreeView
Cómo volver a la función principal en C + +
Conocimiento de la computadora © http://www.ordenador.online