Speicher schützen



  • Hallo!

    Ist es möglich (und wenn ja, wie?) wenige Bytes im Speicher vor Zugriff (insbes. schreiben) zu schützen?
    Ich möchte einen kleinen linearen Speicherbereich am Anfang und Ende mit ein paar geschützten Bytes (zB. ein int) versehen, um sicher zu stellen, dass der Bereich nicht von einer anderen Stelle aus überschrieben wird.
    ZB. liegen feld1 und feld2 hintereinander im Speicher. feld2 soll vorne und hinten durch ein paar Bytes geschützt sein. Wenn nun beim Zugriff auf feld1 über dessen Ende hinaus geschrieben wird, soll Windows das sofort bemerken (zB. durch AccessViolation).
    Bislang gefunden habe ich nur die Möglichkeit, Pages zu schützen. Da die aber jeweils 4kB groß sind, suche ich nach einer kleineren Lösung.

    Dennis


  • Mod

    Geht nicht!

    Baue Guards ein mit denen Du das überschreiben prüfen kannst.



  • Schade!

    Was meinst du mit Guards? Einen Wert in die zusätzlichen Bytes schreiben und hinterher prüfen, ob der Wert noch drin steht?


  • Mod

    Jupp. Einfach ein zufälliges DWORD davor und den XOR Wert dahinter. Wer hier Speicher überschreibt wird "nachträglich" ertappt.

    Man kann auch aus dem Inhalt einen CRC32 Wert bilden und ablegen.



  • Ok. Danke für deine Hilfe.


Anmelden zum Antworten