| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> C /C + + Programming >> Content
    Beskrivelse af et C + + Funktion & hvordan det forårsager en Buffer Overflow
    Buffer overflow i C + + er forårsaget af et par forskellige emner. Ofte er det sker som led i driften af ​​en funktion er beregnet til at skrive til en matrix eller adgang dyb hukommelse. Typisk buffer overflow opstår, når en bruger eller programmør indgange data uden for rækkevidde af en variabel eller et array. Funktioner , der forsøger at gå ud over dette interval kan også forsøge at slette data i systemet , eller omdirigere systemet ved at slette eller overskrive information. Funktioner i C + +

    Funktioner i C og C + + opfører sig som forventet i forhold til andre programmeringssprog. Funktioner eksisterer, ligesom enhver anden variabel eller system information , i hukommelsen og bliver refereret af adresse. Funktioner i sig selv er blot blokke af kode i hukommelsen , der refereres til . Eventuelle fejl kastet af en funktion henvisning kunne være på grund af en sort funktion eller en funktion kaldet forkert. En buffer overflow fejl ville mere sandsynligt kommer fra koden inde i funktion.
    Variabler og hukommelse

    C + + er statisk skrevet , hvilket betyder , at programmøren skal angive en variabel type, når erklære en variabel. Dette skyldes, at C + + er der afsat hukommelse blokke af bestemte størrelser er baseret på den variable type. Et heltal ( int ) variabel erklæret i et program , vil få en plads i hukommelsen afsat specifikt til en int . Hukommelsen blok vil være den nøjagtige størrelse af et heltal.

    Arrays

    Arrays er samlinger af variabler , der er indeholdt i et navn. For eksempel under array opretter en liste over 10 heltal , som kan tilgås ved at referere et indeks ( navn [ 0 ] , navn [ 1 ] , osv. ) nær

    int navn [ 10] ;

    stedet for én heltal, array afsætter nok kontinuerlig plads til 10. . Men fordi arrayindeks adgang kan forsøges på værdier ud over, hvad der er indeholdt i array (navn [11] , for eksempel) , kan der opstå fejl , hvis programmøren ikke se, hvordan hun bruger array.
    < br > Buffer Overflow

    grund af karakteren af arrays i C + +, kan et array inde i en funktion offer til buffer overflow. Hvis en bruger indtaster et tegn input større end array kan håndtere , vil de ekstra tegn overskrive data støder op til array i hukommelsen . For eksempel , Amerikas

    void eksempel ( ) {

    int log [ 15]

    int i = 0;

    while ( cin >> a [i] ) {

    i + +;

    }

    }

    ", mens " loop vil aldrig ende , og med den tid "i" når 15 , vil brugeren begynde at indtaste data, som overskriver hukommelsen. Dette kan have utilsigtede konsekvenser , såsom omplacering af en lokal variabel eller under særlige omstændigheder , omskrivning af funktions pointere til referere anderledes, skadelig kode.

    Forrige :

    næste :
      Relaterede artikler
    ·Grundlæggende om indlejrede systemer i C 
    ·Sådan Søg & Parse Tekstfiler i C # 
    ·Sådan oprettes en switch-statement i C 
    ·Sådan læses en CSV-fil i C 
    ·Hvad betyder Buffer Overrun Mean 
    ·Sådan bruges C + + Virtual destruktionsfunktioner 
    ·Sådan bruges Visual C + + Debugger 
    ·Sådan bruges Callback Funktion i C 
    ·Hvordan laver man en X og Y Grid i C + + Tekst spil 
    ·Sådan tilføjes Glut Med Visual C 
      Anbefalede Artikler
    ·Hvordan tester jeg en PHP fil 
    ·Sådan Embed en PHP fil i HTML 
    ·Hvordan man henter booleske data i DataGrid til VB.NET 
    ·Sådan Set Text_Field Value Form_Tag i Ruby on Rails 
    ·Filtyper, der kan bruges med QBASIC 
    ·Hvordan man kompilerer en Makefile 
    ·Hvordan man opbygger en ny webside Brug JSP 
    ·Hvordan man laver en blog ved hjælp PHP 
    ·Sådan Multiply binære tal 
    ·Klassifikationer af High- Level Sprog i programmering 
    Copyright © Computer Viden http://www.computerdk.com