Programação  
 
Conhecimento computador >> Programação >> Programação De Computador Idiomas >> 
Os Efeitos do buffer overflows e formato Cordas em Fluxo de Programa
Mesmo os aspectos mais modesto de um programa podem apresentar ameaças de segurança. Insumo básico usuário pode curto-circuito código interno de um programa de várias maneiras. A entrada pode utilizar os mecanismos de impressão funções para aceder ao fluxo do programa de controlo substituindo os limites da função . Ou, pode invadir os limites do buffer definido para ele pelo programador para afetar os dados fora do seu espaço designado pelo programador . De qualquer forma, a entrada do usuário afeta a forma como o programa é executado, potencialmente para fins maliciosos. Formato Cordas

cordas de formatação em C e C + + são parte das funções de entrada e saída . A string de formato contém dados para dados de saída para a tela . Seqüências de formato tem dois componentes principais . O primeiro é a string básicas de impressão, contendo personagens e pontuação. O segundo componente inclui caractere especial marcado com sinais percentuais que servem como espaços reservados para dados variáveis. Esses símbolos existem na string, e são substituídos durante a saída de valores mantidos em variáveis. O exemplo a seguir ilustra uma declaração básica printf com uma seqüência de formato :

de char x = "c "; int y = 10;

printf (" Personagens de impressão % c e decimais % d" ; , x, y);

formato Ataques de corda

a insegurança de seqüências de formato reside na forma como os símbolos incorporados nas cordas de referência de outras partes do programa. Por exemplo , um atacante inserir dados em uma variável usada em uma seqüência de formato pode injetar símbolos que lhe permitem aceder a outros quadros de execução do programa. Ao fazer isso, o atacante pode modificar os valores das variáveis ​​fora do escopo da função de impressão. Além disso , o atacante poderá, eventualmente, acessar os valores na memória que representam a localização de funções. O invasor pode então alterar esse valor para apontar para uma função diferente, mudando , assim, o fluxo de execução e, essencialmente, o seqüestro do programa.
Entrada buffers

entrada buffers são espaços de armazenamento de dados criados pelo programador para armazenar dados inseridos pelo usuário . Na maioria das vezes , buffers de entrada lidar com a entrada do usuário de log em nomes e senhas. Especificamente para a linguagem de programação C, que não inclui a manipulação de strings nativa, buffers de entrada existir como arrays de caracteres com um tamanho definido. Neste caso , cabe ao programador alocar dados para a entrada do usuário .
Buffer Overflow

Um atacante pode aproveitar as limitações desses buffers por inundando-o com dados. No exemplo mais simples , um array de caracteres a intenção de manter um registro de nome pode ter 20 espaço alocado , mas um atacante dá mais de vinte caracteres para processar. Neste caso , os caracteres adicionais substituem os locais de memória imediatamente a seguir à matriz . Estas posições de memória , possivelmente armazenar dados relevantes para a execução do programa , como variáveis ​​condicionais para declarações de controle de fluxo ou referências a funções na pilha. Como o formato de seqüência de ataque, o que permite , essencialmente, o invasor sequestrar o programa.

Anterior :

Próximo : No
  Os artigos relacionados
·Motorista desenvolvedor Ajuda 
·Função GCC Sistema 
·Como analisar grandes quantidades de dados com o ColdFu…
·Tutorial WPF 
·A matriz ColdFusion não está limpando 
·As pessoas podem Média Desenvolver um aplicativo Andro…
·O Código de Faixa de cabeçalhos e rodapés de arquivo…
·O que é uma expressão Tagged 
·Como ler os caracteres em Fortran 
·Ligue : Truques codificação direta 
  Artigos em destaque
·O que é um erro de Runtime 8005 
·Como fazer uma matriz de strings 
·Como converter strings para valores longos não assinad…
·Como usar um anemômetro em BASIC Stamp Um 
·Como ocultar os botões no Xcode 
·Como editar o Silverlight Datagrid 
·Como usar linguagem C para calcular juros compostos 
·Como prevenir vazamentos de memória em C + + 
·Definição Holographic 
·Características API 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados