O que é um transbordamento de buffer?

Um excesso de buffer ocorre quando um programa está tentando escrever em um buffer e entra fora de seus limites, resultando nas informações de escrita do programa na memória que potencialmente pertencem a outro programa. Isso viola a integridade da memória no sistema operacional, resultando em um erro grave e em potencial falha para o programa de execução. O principal perigo de um transbordamento de buffer vem de dois elementos principais. Primeiro, as informações escritas fora do buffer são ostensivamente "perdidas", pois o mapa de memória do computador - sua lista de locais de memória - não pode explicar isso. Segundo, um excesso de buffer pode substituir acidentalmente as informações armazenadas na memória para outro programa, interferindo efetivamente na execução de outro programa. O uso mais comum de um buffer é normalmente em reprodução de vídeo ou áudio, onde o COO Mputer supera alguns X segundos adicionais de filmagem ou áudio na memória, garantindo que a reprodução não seja interrompida se algo for temporariamente errado no sistema. Existe um buffer apenas dentro de um local específico e predeterminado dentro da memória do computador, assim como um país só existe dentro das linhas de limite desenhadas em um mapa. Sair para fora dessas "linhas" virtuais resulta em problemas não apenas para o programa em execução, mas para outros programas no sistema.

Essencialmente, o programa saiu de sua jurisdição atribuída e invadiu o espaço de outro programa de trabalho. Quando isso acontece, as informações escritas fora do buffer caem efetivamente do mapa do computador; Em outras palavras, o sistema não tem mais maneira de recuperá -lo. Como apenas o computador "sabe" procurar informações em buffer dentro do espaço específico do buffer alocado na memória, ele não tem como descobrirfora para onde as informações transbordadas desapareceram.

Além disso, um excesso de buffer tem o potencial de interromper outros programas em execução no computador. Imagine que o espaço de armazenamento de memória em ambos os lados do buffer já tenha sido atribuído a outros programas em execução. Depois que as informações no buffer sangrarem além de sua área projetada, ela substituirá e corrompe qualquer informação já armazenada nessas seções de memória. Portanto, um excesso de buffer é um problema que pode minar a eficácia de um programa adjacente, bem como corrompendo sua própria operação.

OUTRAS LÍNGUAS

Este artigo foi útil? Obrigado pelo feedback Obrigado pelo feedback

Como podemos ajudar? Como podemos ajudar?