Segmentierung+Paging
-
Hi Zusammen,
eine Frage zur GDT hätte ich leider doch noch
, und zwar:Kann sich die GDT selbst schützen ? (bei der Kombination Segmentierung+Paging)
Ich meine, die GDT liegt ja ebenfalls im virtuellen Speicher.[Jetzt mal unabhängig von Windows]
Wenn jetzt ein Programm versucht seine eigene GDT zu ändern, (was es ja nicht dürfte), so könnte es ja die Speicherschutzvorkehrungen ändern wie es wollte.
Man müsste also die GDT schützen:
Wenn man jetzt in der GDT den Zugriff auf den Speicherbereich in dem die GDT selbst liegt ändert, kann der Prozessor dann beim Deskriptortest überhaupt noch auf die GDT selbst zugreifen ? Oder übernimmt in dem Fall das Paging die Schutzvorkehrungen für den Speicherbereich in dem die GDT selbst liegt ? Und selbst dann noch könnte man doch über Paging dem Prozessor beim Deskriptortest den Zugriff verwähren, oder hat der Prozessor während des Deskriptortests Zugriff auf alle Tabellen, egal ob sie selbst geschützt sind oder nicht ?
Diese Kaskadierung bereitet mir gerade leichte Kopfschmerzen
Ich denke, ich sehe gerade Probleme, wo es vielleicht überhaupt keine gibt.
Wäre schön wenn mir da jemand weiterhelfen könnte.
Dann kann ich vielleicht den heutigen Sonntag ohne die übliche Grübelei ausleben :p Spaß...Greetz, Xzi-bit
-
Hat rein gar nichts mit WinAPI zu tun.

-
Man unter Win32 keinen Zugriff auf die GDT. Du kannst Nut die entsprechenden Virtual... Funktionen des Memorymanagers verwenden.
-
Stimmt, Tschuldigung.
Ob wohl jemand so nett wäre und meinen Beitrag verschieben könnte ?
-
Nur so als Anmerkung: Warum liest Du nicht einfach das Intel-Manual?
http://www.intel.com/products/processor/manuals/Volume 1: Basic Architecture
http://www.intel.com/design/processor/manuals/253665.pdfVolume 2A: Instruction Set Reference, A-M
http://www.intel.com/design/processor/manuals/253666.pdfVolume 2B: Instruction Set Reference, N-Z
http://www.intel.com/design/processor/manuals/253667.pdfVolume 3A: System Programming Guide
http://www.intel.com/design/processor/manuals/253668.pdfVolume 3B: System Programming Guide
http://www.intel.com/design/processor/manuals/253669.pdfIntel
64 and IA-32 Architectures Optimization Reference Manual
http://www.intel.com/design/processor/manuals/248966.pdfIntel
SSE4 Programming Reference
http://download.intel.com/design/processor/manuals/D91561.pdfIntel
64 Architecture Memory Ordering White Paper
http://www.intel.com/products/processor/manuals/318147.pdf3A und 3B sollte man gelesen haben um es grob zu verstehen wie das geht...
-
Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum WinAPI in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hallo Jochen,
die Stellen in den Intel Manuals habe ich bereits gelesen, aber danke für den Tipp, es mal erwähnt zu haben.
Leider beantwortet die Dokumentation nicht meine spezielle Frage - immerhin um Längen besser als gewisse Bücher über Assembler, in denen das Thema - im Vergleich zu den Intel Docs - nur sehr grob angeschnitten wird.
------------------------------------------------------------------------------
Meine erste Frage beantworte ich trotzdem mal aufgrund einer Vermutung mit einem JA und sage es ist möglich, die GDT durch die GDT selbst zu schützen, da das GDTR eine lineare Adresse enthält, auf die der Zugriff erst gar nicht durch Segmentierung überprüft wird.
------------------------------------------------------------------------------
Meine zweite Frage danach, ob man dem Prozessor den Zugriff auf die GDT über Paging-Out mit gesetztem Supervisor-Flag entziehen kann, beantworte ich hingegen mal mit NEIN, da es mir unlogisch erscheint, dass man dem Prozessor den Zugriff auf die GDT verweigern kann - wäre sonst äußerst strange.
------------------------------------------------------------------------------
Nehme mal an, dass das so in sich stimmig ist. Wer also was zu meckern hat, muss mir erst mal beweisen, dass es so nicht richtig ist.

Grüße, Xzi-bit