Wenn jeder Prozess auf einem Windows 2012 R2-Server einen eigenen Heap hat, ist es dann nicht möglich, dass ein Prozess den Heap eines anderen Prozesses beschädigt? Ich denke, es wäre möglich, da alle Heaps in einem "globalen" Adressraum gespeichert werden, aber ein AV tritt auf, wenn ein Prozess versucht, aus dem Speicher außerhalb des Adressraums zu schreiben oder zu lesen das den Adressraum besaß?Heap Corruption Auswirkung auf einen Windows 2012 R2-Server
Antwort
Sie müssen lesen, wie virtual memory funktioniert. Es gibt keinen allumfassenden Adressraum.
Es gibt physische RAM-Adressen und physikalische Festplattenadressen, die sich nicht vom Prozess unterscheiden. Aber Benutzermoduscode verwendet diese niemals direkt.
Stattdessen bietet die Speicherverwaltungseinheit eine Zuordnung von virtuellen Adressen zu physischen Adressen. Da die Seitentabellen prozessspezifisch sind, ist diese Zuordnung für jeden Prozess eindeutig. Nur Code 0 (Kernel-Modus) kann den Mapping-Schritt umgehen, dies wird in der Hardware erzwungen. Wenn es bei Benutzerprozessen keine Zuordnung zu einer bestimmten physischen Adresse gibt, kann von diesem Kontext aus einfach nicht darauf zugegriffen werden, da es keine Möglichkeit gibt, diesen physischen Speicherort mit virtuellen Adressen zu benennen. Und es gibt keine Zuordnungen, die zu den Seitentabellen selbst führen.
Dies ist der Unterschied zwischen einer Speicherverwaltungseinheit und ihrem kleineren Bruder, der Speicherschutzeinheit. Architekturen, die eine Speicherschutzeinheit verwenden, haben ein einziges globales Adressierungsschema, mit Hardware-erzwungenen Berechtigungsbits, die wiederum nur durch privilegierten Code modifiziert werden können.
Die Sache gefragt Sie
einen Prozess von [sic] oder aus dem Speicher gelesen zu schreiben versucht, außerhalb [sic] ist Adressraum
einfach nicht existieren. Es ist wie die Frage nach der Telefonnummer meines Autos. Mein Auto ist durch eine Fahrgestellnummer und ein Nummernschild gekennzeichnet, aber keiner von beiden erlaubt es Ihnen, über das Telefonsystem mit ihm zu sprechen.
Zugriffsverletzungen (manchmal auch Segmentierungsfehler genannt) treten auf, wenn ein Prozess versucht, in nicht zugeordnete Teile seines eigenen Adressraums zu schreiben, von ihm zu lesen oder auszuführen oder Seiten, die explizit für das Auffangen von Zugriffsversuchen festgelegt wurden Erweiterung vielleicht oder Copy-on-Write). Alle Speicherzugriffe eines Prozesses werden per Definition innerhalb seines Adressraums interpretiert.
- 1. Heap Corruption im Klassenzerstörer?
- 2. Heap Corruption Detected C
- 3. auf Windows Server 2012 R2
- 4. ELASTICSEARCH 2.4.1. Auf Windows 2012
- 5. Heap Randomisierung in Windows
- 6. Install pip lxml auf Windows Server 2012
- 7. Windows-Assembly-Heap und -Stapel?
- 8. Sonarqube Installation auf Windows Server 2012
- 9. Start-Service remote auf Windows 2003 ~ 2012
- 10. Git auf dem Server (Windows Server 2012)
- 11. Spawn auf Knoten JS (Windows Server 2012)
- 12. Erhalte einen Heap-Dump von einer JRE nur unter Windows
- 13. Auswirkung von GL_SRGB8_ALPHA8 auf Texturinterpolation?
- 14. Auswirkung eines bitweisen Operators auf einen booleschen Wert in Java
- 15. Ereignisquelle, Anti-Corruption Layer-Design mit NEventStore
- 16. Windows Server 2012 und IIS
- 17. Frustriert mit Visual Studio 2012 unter Windows Server 2012
- 18. Windows Server 2012 R2 KMS
- 19. Apache POI in Windows Server 2012 R2
- 20. Retargetting Lösung hat keine Auswirkung
- 21. Container/Heap Pop() auf leeren Heap
- 22. So erhalten Sie die Heap-Größe auf Windows-Plattform
- 23. Kann nicht scheinen, Java-Heap-Größe auf intellij in Windows
- 24. Primärschlüssel Auswirkung auf die Leistung in SQLite
- 25. Windows Server 2012 mit ASP.net 1.1?
- 26. Wie eine Chiffre-Suite auf Windows Server 2012
- 27. "IsAsync" hat keine Auswirkung auf langsame Eigenschaft?
- 28. Tomcat 8.5 würde statr nicht auf Windows Server 2012
- 29. Wie Windows Windows 8.1 Microsoft Account mit Sql Server 2012
- 30. Azure VM Windows Server 2012-Updatefehler 800F0922
Ein Prozess kann niemals versehentlich den Speicher eines anderen Prozesses beschädigen. Das gilt für jede Windows-Version in der [Windows NT] (https://en.wikipedia.org/wiki/Windows_NT) -Familie. Seit fast 25 Jahren. – IInspectable