Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> C /C + + Programming >> Content
    Hva Ulemper er det i Implisitt Dereferencing av pekere
    ? Pekere bestemme hvilken type objekt et program forutsetter er i en bestemt minneområde . Pekere kan konverteres til bestemte heltall eller implisitte referanser. Pekere kan referere til andre pekere og data matriser . Implisitt dereferencing av pekere introduserer faren for software feil og sårbarheter som ikke forekommer når pekere er eksplisitt definert. Eksplisitte Versus Implisitt pekere
    variable til høyre implisitt referert til ligningen til venstre.

    Eksplisitt pekeren konverteringer endre én pekeren type til en annen pekertypen . Endring av et helt tall eller en byte til en peker er også en eksplisitt konvertering. C + + gjør det mulig for den implisitte konvertering fra en peker for å skrive void * . Null literals kan ha en implisitt konvertering til enhver pekertypen . Variablene på høyre side av et oppdrag uttalelse er implisitt derefereres som de tar på verdien av verdiene på venstre side av oppdraget uttalelse. Alle dereferencing ligger implisitt i Java.
    Dereferencing Operatører

    I C + + , må pekere til klassens medlemmer bli derefereres i sammenheng med en klasse objekt . A. * Operatør dereferences en peker til et medlem med en klasse objekt. En pil etterfulgt av en stjerne dereferences en peker til et medlem med en peker til en klasse objekt. Bruke " *" indirection operatør i programmeringsspråket C kalles dereferencing en peker . En peker defineres ved hjelp av uttrykket ptr = variabel eller verdi. En derefereres pekeren er definert ved hjelp av uttrykket * ptr = variabel eller verdi .

    Feil

    Dereferencing en peker kan føre til ugyldige verdier hvis adressen er referert etter slutten av sin levetid . Når en peker derefereres , kaller programmet verdien referert av pekeren. Null pekere har en standard 0x0 verdi hvis statiske og ikke-initialisert . Ifølge " A Guide to Kernel Utnyttelse " av Enrico Perla , "Hvis en kernel banen forsøker å dereference en NULL-peker , vil det rett og slett prøver å bruke minnet adressen 0x0 , noe som sannsynligvis vil resultere i panikk tilstand , siden ingenting er kartlagt det . "Pekeren må defineres ved hjelp av * ptr kommandoen før derefereres pekeren kan brukes andre steder i et C-program .
    p Hvis det * ptr ikke tilordnet en verdi før de blir referert, kan programmet krasje. Pekere til data medlemmer kan resultere i en dårlig dereference . Hvis pekeren ikke ser opp verdier fra en rekke klasse objekter og kan ikke fastslå verdien av variabelen , vil det oppstå en feil . "C + + Gotchas " av Stephen C. Dewhurst sier at " en peker til medlem refererer til en bestemt medlem av en uspesifisert objekt. " Den refererte objektet må leveres i tillegg for pekeren skal fungere korrekt .

    Sikkerhetsproblemer

    Implisitt dereferencing av en ikke-initialisert pekeren skaper en sårbarhet i programvare-kode . Minne korrupsjon ødelegger en peker som blir derefereres . Dereferencing en ikke-initialisert pekeren fører til at programvare for å referere til et minneområde som ikke er validert . Uten kontroll av kilden eller målet for derefereres pekeren , kan hackere bruke dette sikkerhetsproblemet til å passere en kernel adresse til programvaren kjernen og endre minnet med sine egne ønskede verdier i stedet for brukerens data .


    früher :

     Weiter:
      Relatert Artike
    ·Hvordan skrive en C Program for multiplikasjon av Five 
    ·Hvordan lage Hello World i Microsoft Visual C 2010 Expr…
    ·Hvordan Inkluder Custom Fonts i en iPhone ved hjelp av …
    ·Hvordan lage Dynamic Lighting i GTKRadiant 
    ·Hvordan bruke C Arrays i C + + 
    ·Hvordan skrive ut Enum Verdier i C 
    ·Hvordan konvertere en streng til en INT C 
    ·Hvordan bruke kalkulator-verktøyet for CPP 
    ·Hvordan lese tall fra en fil i C 
    ·Hvordan flytte en fil peker i C + + 
      Anbefalte artikler
    ·Hvordan få tilgang til en samtale funksjon fra en spø…
    ·Slik Clear en Stringstream 
    ·Hvordan å analysere PHP Script i en ASP.net Hjemmeside…
    ·Slik sletter MySQL data på en viss tid med PHP 
    ·Hvordan få en peker til en Bitmap i C + + 
    ·Hvordan sette standard til en 404 feil side i PHP 
    ·Hvordan koden DateDiff Med DateTimePicker i VB.NET 
    ·Hvordan igjen en Java Coding Request 
    ·Hvordan få en LAN -ID og domene Bruke VBA 
    ·Hvordan Destroy Word-dokumenter 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/