{"id":27,"date":"2007-02-10T20:48:20","date_gmt":"2007-02-10T19:48:20","guid":{"rendered":"http:\/\/blog.m-ri.de\/index.php\/2007\/02\/10\/der-virtualstore-und-seine-schattenseiten\/"},"modified":"2007-02-10T21:04:25","modified_gmt":"2007-02-10T20:04:25","slug":"der-virtualstore-und-seine-schattenseiten","status":"publish","type":"post","link":"http:\/\/blog.m-ri.de\/index.php\/2007\/02\/10\/der-virtualstore-und-seine-schattenseiten\/","title":{"rendered":"Der VirtualStore und seine Schattenseiten"},"content":{"rendered":"<p>Es ist ja bekannt, dass Programme, die nicht mit einem entsprechenden Trustinfo Manifest ausgestattet sind, unter Vista besonders behandelt werden. Werden diese Programme nicht im administrativen Rechten ausgef\u00fchrt werden alle Zugriffe auf das Verzeichne <em>C:\\Program Files<\/em> und auf <em>HKEY_LOCAL_MACHINE\\Software<\/em> in der Registry umgeleitet.<\/p>\n<p>Ein Registry Zugriff landet dann in <em>HKEY_CURRENT_USER<\/em> auf <em>HKEY_CURRENT_USER\\Software\\Classes\\VirtualStore\\MACHINE\\SOFTWARE<\/em>. Ein Dateizugriff auf C:\\Program Files wird umgeleitet nach <em>C:\\Users\\Username\\AppData\\Local\\VirtualStore\\Program Files<\/em>.<\/p>\n<p>Was passiert aber nun, wenn der Administrator nun tats\u00e4chlich die &#8222;richtigen&#8220; Daten in <em>HKLM<\/em> und <em>C:\\Program Files<\/em> \u00e4ndert <em><strong>UND<\/strong><\/em> es existieren bereits entsprechende Daten im VirtualStore?<\/p>\n<p>Die Antwort ist logisch! Eine \u00c4nderung der Daten bleibt ohne Wirkung! Denn die Daten aus dem <em>VirtualStore<\/em> werden hier mit Vorrang behandelt. Sonst macht das ganze ja keinen Sinn, denn der <em>VirtualStore <\/em>soll ja scheinbar Schreibzugriffe erlauben.<\/p>\n<p><strong>Im Klartext<\/strong>: Existieren Daten sowohl im <em>VirtualStore<\/em> als auch in den eigentlichen originalen Positionen,\u00a0dann werden immer die Daten des <em>VirtualStore<\/em> verwendet. Nur wenn der entsprechende Registry Key nicht vorhanden\/gel\u00f6scht wird oder die entsprechende Datei nicht vorhanden\/gel\u00f6scht ist, dann werden die Daten aus den original Verzeichnissen bzw. Registry\u00e4sten verwendet.<\/p>\n<p>Nur daraus folgt ein Problem:<br \/>\nMacht der Admin Korrekturen an den realen Daten UND es existieren Daten im VirtualStore, dann bleiben die \u00c4nderungen des Admins wirkungslos, bis er die Daten aus dem <em>VirtualStore <\/em>entfernt. Das kann eine spannende Aufgabe werden.<br \/>\nVielleicht ist dies eine profane Erkenntnis, aber die Implikationen sind meines Erachtens immens.<\/p>\n<p>PS: Gemein ist einfach, dass Software die bisher mit einer Fehlermeldung <em>gerechnet <\/em>hat, wenn ein Schreibversuch nach <em>HKLM<\/em> oder <em>C:\\Program Files<\/em> erfolgte, nun auf einmal <em>erfolgreich<\/em> schreiben kann. Da kann man sich noch so sehr an alle Empfehlungen halten, hier wird man von Vista reingelegt und man muss schleunigst das entsprechende Trustinfo Manifest nachr\u00fcsten.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Es ist ja bekannt, dass Programme, die nicht mit einem entsprechenden Trustinfo Manifest ausgestattet sind, unter Vista besonders behandelt werden. Werden diese Programme nicht im administrativen Rechten ausgef\u00fchrt werden alle Zugriffe auf das Verzeichne C:\\Program Files und auf HKEY_LOCAL_MACHINE\\Software in der Registry umgeleitet. Ein Registry Zugriff landet dann in HKEY_CURRENT_USER auf HKEY_CURRENT_USER\\Software\\Classes\\VirtualStore\\MACHINE\\SOFTWARE. Ein Dateizugriff auf &hellip; <a href=\"http:\/\/blog.m-ri.de\/index.php\/2007\/02\/10\/der-virtualstore-und-seine-schattenseiten\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eDer VirtualStore und seine Schattenseiten\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3,17,2],"tags":[58,358],"class_list":["post-27","post","type-post","status-publish","format-standard","hentry","category-programmieren","category-vista-2","category-windows-api","tag-uac","tag-vista"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/27","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/comments?post=27"}],"version-history":[{"count":0,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/27\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/media?parent=27"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/categories?post=27"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/tags?post=27"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}