| maison  | Hardware  | réseaux  | programmation  | Logiciel  | Dépannage  | systèmes |  
programmation  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Connaissances Informatiques >> programmation >> C /C + + Programming >> Content
    Description d'une fonction C + + et comment il provoque un buffer overflow
    débordement de tampon en C + + est causée par quelques problèmes différents. Souvent , il se produit dans le cadre de l'exploitation d'une fonction destinée à écrire dans un tableau ou d' accéder à la mémoire de profondeur. En règle générale, buffer overflow se produit lorsqu'un utilisateur ou un programmeur données entrées au-delà de la portée d'une variable ou un tableau. Fonctions qui tentent d'aller au-delà de cette gamme peuvent également tenter d' effacer des données dans le système, ou de réorienter le système en supprimant ou en remplaçant l'information. Fonctions en C + +

    fonctions en C et C + + se comporter comme prévu , par rapport à d'autres langages de programmation. Fonctions existent, comme toute autre information variable ou d'un système , dans la mémoire et sont référencés par adresse. Fonctions , par eux-mêmes , ne sont que des blocs de code en mémoire qui sont référencés . Toute erreur renvoyée par une référence de fonction pourrait être due à une fonction non déclarée , ou une fonction appelée de manière incorrecte. Une erreur de type buffer overflow serait plus susceptible d' entrer dans le code de la fonction .
    Variables et la mémoire

    C + + est typé statiquement , ce qui signifie que le programmeur doit spécifier un type de variable en déclarant une variable . C'est parce que C + + met de côté des blocs de mémoire de certaines tailles en fonction du type variable. Un (int) variable entière déclaré dans un programme obtiendra un espace mémoire réservé spécifiquement pour un int . Le bloc mémoire sera la taille exacte d'un entier.

    Tableaux

    tableaux sont des collections de variables contenues dans un nom. Par exemple , le tableau ci-dessous crée une liste de 10 entiers , qui peut être consulté par référence à un indice (nom [0 ] nom [1] , etc )

    int nom [10];

    au lieu d'un nombre entier , le tableau met de côté suffisamment d'espace continu pour 10. Cependant, parce que l'accès de l'indice de tableau peut être tentée sur des valeurs au-delà de ce qui est contenu dans le tableau (nom [11], par exemple ) , des erreurs peuvent se produire si le programmeur ne regarde pas la façon dont elle utilise le tableau .

    Buffer Overflow

    en raison de la nature des tableaux en C + + , un tableau à l'intérieur d'une fonction peut être victime de débordements de tampon . Si un utilisateur entre une entrée de caractère plus grand que le tableau peut manipuler, les caractères supplémentaires vont écraser les données adjacentes au tableau en mémoire . Par exemple , AB exemple de vide

    () { int

    login [ 15] ;

    int i = 0;

    while ( cin >> a [i ] ) {

    i + +; }


    }

    la boucle "while" ne finira jamais , et au moment où "i" atteint 15 , l'utilisateur va commencer la saisie des données qui écrase la mémoire. Cela peut avoir des conséquences imprévues , comme la réaffectation d'une variable locale , ou , dans des circonstances spécifiques , la réécriture de pointeurs de fonctions de référence différents , du code malveillant.

    Previous :

    next :
      articles connexes
    ·Pair /Impair fonction en programmation C 
    ·Comment faire pour afficher des images dans une applica…
    ·Comment compter les fonctions dans le code C 
    ·Comment combiner un fichier en utilisant C + + 
    ·Chaîne de connexion pour l'authentification SQL 
    ·Visual C ne fait pas EXE 
    ·Comment rechercher et d'analyser les fichiers texte en …
    ·Comment inverser un tableau en C + + 
    ·Comment développer des applications pour Windows Mobil…
    ·ActiveX Tutorial de composants 
      articles en vedette
    ·MySQL PHP Tutorial de requêtes 
    ·Quelles sont les procédures sous Visual Basic 
    ·Comment savoir si MySQL est de 32 - ou 64-bit 
    ·Comment écrire dans le fichier XML en utilisant PHP 
    ·Comment convertir une chaîne d'entiers dans un tableau…
    ·Comment changer d'écran avec VB Software 
    ·Comment faire pour tester pour la Intersection de deux …
    ·Comment faire une barre de progression Répétition en …
    ·Comment changer un 0 en 1 dans un code Java pour les fr…
    ·Quelles sont les applications mobiles pour Visual Basic…
    Copyright © Connaissances Informatiques http://fr.wingwit.com