Em segurança de computadores e programação, um estouro de buffer, ou saturação de buffer, é uma anomalia em que um programa, ao gravar dados em um buffer, derrapagens limite do buffer e substitui memória adjacente. Este é um caso especial de violação da segurança de memória. Estouros de buffer pode ser desencadeada por factores de produção que são projetados para executar código, ou alterar a forma como o programa funciona.
Isso pode resultar em um comportamento errático do programa, incluindo erros de memória de acesso, incorretas, os resultados de um acidente, ou uma violação da segurança do sistema. Eles são, portanto, a base de muitas vulnerabilidades de software e pode ser explorada maliciosamente. As linguagens de programação comumente associados com estouros de buffer incluem C e C ++, que não fornecem nenhuma proteção embutida contra o acesso ou substituição de dados em qualquer parte da memória e não verificar automaticamente os dados gravados em um array (o built-in tipo buffer) está dentro os limites dessa matriz.
Verificação de limites pode evitar estouros de buffer.
Eu sei que você tem um monte de perguntas Qual é a razão deste erro louco? > É um erro de programação (códigos da escrita) É importante para aprender.; é só pequeno estúpido explorar? > este tipo de explorar como fazer diferença entre hackers profissionais e normal Hackers. Vou explicar que na lição 4;). U pode me dar uma descrição técnica Um buffer overflow ocorre quando dados gravados em um buffer, devido a insuficiente verificação de limites, corrompe os valores de dados em endereços de memória adjacentes ao buffer alocado.
Mais comumente isto ocorre quando copiar cadeias de caracteres a partir de um buffer para outro. Exemplo básico No exemplo a seguir, um programa definiu dois itens de dados que são adjacentes na memória: um buffer de string 8- byte de comprimento, A, e um inteiro de dois bytes, B. Inicialmente, A contém nada além de zero bytes, e B contém o número 1979. Os personagens são um byte de largura. nome da variável AB valor [string nulo] 1979 valor hexadecimal 00 00 00 00 00 00 00 00 07 BB Agora, o programa tenta armazenar a string terminada em null "excessivo" no Um buffer.
Ao não verificar o comprimento da corda, ele substitui o valor de B: nome da variável valor AB 'e' 'x' 'c' 'e' 's' 's' 'eu' 'v' 25856 hex 65 78 63 65 73 73 69 76 65 00 Embora o programador não tinha a intenção de mudar B em tudo, o valor de B foi agora substituído por um número fo