Mind map
"Smashing the stack for fun and profit"

Mapa mental: Smashing the stack for fun and profit
Map content
"Smashing the stack for fun and profit"
El código con este objetivo causa "vuelta" de turina para ir en dirección aleatoria
- Basura de la pila
- Garabatear la pila
- Destrozar la píla
- Fandango en el núcleo
- Pérdida de memoria
- Precedence lossage
Organización de memoria
- Tenemos procesos, que se dividen en tres...
- Pila
- Tipo de dato abstracto
- Dos funciones importantes: PUSH Y POP
- Ejecutadas por la CPU
- Usada para asignar dinámicamente variables locales
- Bloque contiguo de datos de memoria
- Tamaño ajustado dinámicamente por el kernel durante la ejecución
- Tiene un marco de pila
- Contiene los parámetros de una función
- Contiene las variables locales de una función
- Datos necesarios para recuperar el marco de pila anterior
- Generalmente crece "hacía abajo"
- Texto
- Datos
- Pila
- Tenemos procesos, que se dividen en tres...
Desbordamiento de buffer
- Buffer: bloque contiguo de memoria en la computadora, contiene instancias del mismo tipo de datos
- Resultado de relleno de más datos en una memoria de los que puede manejar
- Se da al copiar datos sin comprobar límites
- Genera una violación de segmentación
- Se da al copiar datos sin comprobar límites
- Nos permite cambiar la dirección de retorno de una función
- Cambio en el flujo de ejecución del programa
- No sabemos el lugar en memoria donde está el programa a explotar
- Usando funciones JMP y CALL puede evitarse
- Se puede utilizar IP direccionamiento relativo
- Usando funciones JMP y CALL puede evitarse
- Hay varios escenarios para ocasionarse
- Rellenar la parte delantera del buffer con instrucciones NOP
- Aumentar en 100 bytes el tamaño del buffer, en relación a la memoria intermedia
- Particularidad en lenguaje C, puede ocasionarse con:
- Escribir más allá del final de un array de caracteres, con funciones como
- strcat()
- strcpy()
- sprintf()
- vsprintf()
- Emparejar una secuencia de caracteres que no son de espacio en blanco
- scanf()
- Uso de bucle while() para leer un caractér a la vez en un buffer de la entrada estándar hasta alcanzar un delimitador
- getc()
- fgetc()
- getchar()
- Escribir más allá del final de un array de caracteres, con funciones como
Information
- Description
- Mapa mental obtenido del árticulo "smashing the stack for fun and profit" de Aleph one. ORRC.
- Created by
- air-base
- Views
- 38
- Tags
- Rating