Mapa mental
"Smashing the stack for fun and profit"

Mapa mental: Smashing the stack for fun and profit
Conteúdo do mapa
"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
Informações
- Descrição
- Mapa mental obtenido del árticulo "smashing the stack for fun and profit" de Aleph one. ORRC.
- Criado por
- air-base
- Visualizações
- 38
- Tags
- Avaliação