Red de conocimientos turísticos - Conocimientos sobre calendario chino - ¿Qué es el desbordamiento de memoria? ¿Qué es la memoria virtual?

¿Qué es el desbordamiento de memoria? ¿Qué es la memoria virtual?

El desbordamiento del búfer de memoria se refiere a escribir contenido en el búfer de un programa que excede su longitud normal, lo que provoca un desbordamiento del búfer, destruyendo así la pila normal del programa, lo que hace que el programa cambie a otros comandos y ataque así el sistema. La causa del desbordamiento del búfer es que los programadores no consideran cuidadosamente las posibles excepciones que pueden ocurrir cuando los usuarios ingresan parámetros durante la programación.

En términos generales, desbordar el búfer con datos aleatorios solo hará que el programa genere errores de "fallo de segmentación" y no podrá usarse con fines de ataque. El método más común es escribir el código de máquina hexadecimal que desea ejecutar en el búfer de desbordamiento y usar el desbordamiento para sobrescribir la dirección de retorno normal del programa, apuntando la dirección de retorno del programa al comienzo del búfer de desbordamiento, ejecutando así otros comandos.

Puede ejecutar comandos arbitrarios o sobrescribir archivos del sistema a través de vulnerabilidades de desbordamiento de búfer, pero generalmente los desbordamientos de búfer se utilizan para ejecutar shells. Si el programa con vulnerabilidades de desbordamiento de búfer pertenece a los programas raíz y suid, el atacante puede hacerlo. De este modo puede obtener un shell con privilegios de root, obteniendo así el control supremo sobre el sistema.

Los ataques de "desbordamiento de búfer" aparentemente aprovechan los descuidos de programación. Las vulnerabilidades de desbordamiento de búfer en programas suid que pertenecen al root son muy peligrosas.

El sistema operativo Windows utiliza memoria virtual para administrar dinámicamente el archivo de intercambio en tiempo de ejecución. Para proporcionar una capacidad de memoria mayor que la memoria física real, el sistema operativo Windows ocupa una parte del disco duro como memoria virtual. Cuando la CPU tiene una solicitud, primero lee la información en la memoria. Cuando la capacidad de la memoria es insuficiente, Windows escribe datos que deben almacenarse temporalmente en el disco duro. Por lo tanto, el tamaño de la memoria de la computadora es igual a la capacidad real de la memoria física más el tamaño del "archivo de paginación" (es decir, el archivo de intercambio). Si es necesario, el "archivo de intercambio" utilizará todo el espacio disponible en el disco duro. Si es posible, debería utilizar este conjunto de funciones tanto como sea posible.

cript type="text/javascript" src="../css/tongji.js">