logo
MussenStellen
Bibliothek von artikeln zu einem beliebigen thema
  • Zuhause Startseite
  • Kontakt Feedback
  • Artikel Hinzufügen Veröffentlichen Sie Ihre Artikel
  • Einloggen Genehmigung
  • Neu registrieren Werden Sie Autor
  • Zuhause
  • Kontakt
  • Kategorien
  • Artikel Hinzufügen
  • Einloggen
  • Neu registrieren
  • 0-9
  • A
  • B
  • C
  • D
  • E
  • F
  • G
  • H
  • I
  • J
  • K
  • L
  • M
  • N
  • O
  • P
  • Q
  • R
  • S
  • T
  • U
  • V
  • W
  • X
  • Y
  • Z
  • İ

Speichersicherheit

FONT SIZE:
fontsize_dec
fontsize_inc
August 28, 2016 Teresia Simmel S 0 26

Speicher Sicherheit ist ein Anliegen in der Softwareentwicklung, die auf Software-Bugs, die Sicherheitslücken, die sich mit Random-Access Memory Zugang, wie Pufferüberläufe und dangling Zeiger verursachen zu vermeiden soll.

Computer-Sprachen wie C und C ++, die beliebige Zeigerarithmetik, Gießen und Freigabe Unterstützung sind in der Regel nicht die Speicher sicher. Es gibt verschiedene Ansätze, um Fehler in solchen Sprachen zu finden: siehe Erkennung weiter unten.

Die meisten High-Level-Programmiersprachen zu vermeiden das Problem, indem das Verbot des Zeigerarithmetik und Gießen vollständig, und die Durchsetzung Tracing Garbage Collection als einzige Speicherverwaltungsschema.

Eine Sprache, könnte noch mehr Anwendungen von Pointer-Arithmetik, Gießen und Freigabe ohne Speichersicherheit durch automatisierte Theorem-Bestätigung als eine Form der statische Code-Analyse zu unterstützen. ESC / Java und D zeigen zwei Möglichkeiten, die Programmierer können ihre Invarianten in einer Weise, die von einem Theorembeweiser verstanden werden kann, zu erklären.

Arten von Speicherfehlern

Mehrere Arten von Speicherfehler können auftreten, je nachdem, welche Programmiersprache verwendet wird:

  • Pufferüberlauf - Out-of gebundenen Schreib beschädigen kann der Gehalt an benachbarten Objekten oder interne Daten wie Buchhaltung Informationen für den Heap oder Rücksprungadressen.
  • Dynamische Speicherfehler - Falsche Management von dynamischen Speicher und Zeiger:
    • Schlenker Zeiger - Ein Zeiger Speichern der Adresse eines Objektes, das gelöscht wurde.
    • Doppel befreit - wiederholte Aufruf zu befreien, obwohl das Objekt bereits befreit worden kann dazu führen, Freelist-basierten Verteiler zu scheitern.
    • Ungültige kostenlos - Passing eine ungültige Adresse zu korrumpieren können die Haufen zu befreien. Oder manchmal wird zu einem undefinierten Verhalten führen.
    • Null-Pointer-Zugriffe wird eine Ausnahme oder Beendigung des Programms in den meisten Umgebungen verursachen, kann aber Korruption im Betriebssystem-Kernel oder Systemen ohne Speicherschutz verursachen, oder wenn die Verwendung des Null-Zeiger beinhaltet ein großes oder negativ gegenüber.
  • Nicht initialisierte Variablen - eine Variable, die einen Wert verwendet, nicht zugewiesen wurde. Es kann eine unerwünschte enthalten oder in einigen Sprachen, eine korrupte Wert.
    • Wilde Zeiger entstehen, wenn ein Zeiger vor verwendet werden, um bis zu einem gewissen bekannten Zustand Initialisierung. Sie zeigen das gleiche Fehlverhalten als dangling Zeiger, obwohl sie weniger wahrscheinlich unentdeckt zu bleiben.
  • Aus Speicherfehler:
    • Stack-Überlauf - Tritt auf, wenn ein Programm läuft aus Stapelspeicher, in der Regel wegen der zu tief Rekursion.
    • Zuordnungsfehler - Das Programm versucht, mehr Speicher als die verfügbare Menge zu verwenden. In einigen Sprachen, muss diese Bedingung für manuell nach jeder Zuweisung überprüft werden.

Erkennung

Es gibt viele verschiedene Möglichkeiten, um Speicherfehler in Programmen in unsicheren Sprachen geschrieben zu erkennen:

  • Durch die Verwendung von speziellen Heap Verteiler, die toten Zonen um Heap Lagerung, und prüfen Sie, greift nicht in solcher toten Zonen zu erreichen. DieHard tut dies durch Zuordnen Objekte in ihrem eigenen virtuellen Speicherseite.
  • Durch die Instrumentierung des Quellcodes. Tools wie Broschiert, CheckPointer und AddressSanitizer

tun dies, um zu sammeln und zu verfolgen legitime Werte für Zeiger und überprüfen Sie jeden Zeiger Zugang gegen die Metadaten für die Gültigkeit.

  • Durch Ausführen des kompilierten Programms in einem virtuellen Speicherprüfung Maschine. Die MemCheck Werkzeug der Valgrind arbeitet auf diese Weise.
  • Statische Code-Analyse kann Fehler in einigen Fällen aber auch zu erkennen.
  0   0

Link zur Website / Blog :

Link für Forum (BB- Code) :

Vorherige Artikel Khawr Abd Allah
Nächster Artikel Mosbach

In Verbindung Stehende Artikel

Jatin Sarker

Jatin Sarker

Jennifer Bildschirm

Jennifer Bildschirm

James Dickey

James Dickey

Kommentare - 0

Keine Kommentare

Fügen Sie einen Kommentar

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Zeichen übrig: 3000
cutom_logo cutom_logo cutom_logo cutom_logo
cutom_logo cutom_logo cutom_logo cutom_logo
captcha

Sehe Auch

  • Kevin Steele Kevin Steele
  • Kandireega Kandireega
  • Koo Ja-Cheol Koo Ja-Cheol
  • Killisick Killisick
  • Kyle XY Kyle XY
  • Krupp 7,5 cm Modell 1903 Krupp 7,5 cm Modell 1903
  • KochPAC KochPAC
  • KZCO-LP KZCO-LP
  • KAKW-DT KAKW-DT
  • Kitty Brucknell Kitty Brucknell

Inhalt

  • contents_item    Arten von Speicherfehlern
  • contents_item    Erkennung

Beliebteste Artikel

Nikotinvergiftung

Nikotinvergiftung

23695 ansichten 0 kommentare
Hippocampus-Sklerose

Hippocampus-Sklerose

12066 ansichten 0 kommentare
Joseph Prince

Joseph Prince

9473 ansichten 0 kommentare
Alisha Inacio

Alisha Inacio

6491 ansichten 0 kommentare
Jodhaa Akbar

Jodhaa Akbar

5480 ansichten 0 kommentare

Letzte Kommentare

    Kategorien

    • 0-9 0-9
    • A A
    • B B
    • C C
    • D D
    • E E
    • F F
    • G G
    • H H
    • I I
    • J J
    • K K
    • L L
    • M M
    • N N
    • O O
    • P P
    • Q Q
    • R R
    • S S
    • T T
    • U U
    • V V
    • W W
    • X X
    • Y Y
    • Z Z
    • İ İ
    Benutzer: 0      Gäste: 10      Gesamt: 10
    © 2019 Mussenstellen.com. Alle Rechte vorbehalten.

    Diese Website verwendet Cookies, um Ihnen das beste Erlebnis auf unserer Website zu erhalten

    OK