Nathan@gst 10 Geschrieben 12. Oktober 2006 Melden Geschrieben 12. Oktober 2006 Hi, Ich bin auf ein Phänomen gestossen, was mir 1. einige Kopfschmerzen bereitet 2. eine SIcherheistlücke zu sein scheint. Ich verwende seit ein paar Jahren zum Scripten AutoIt. AutoIt 3.2.01 lies sich problemlos unter Vista Build 5600 installieren. Auch kompilierte AutoIt Scripte laufen meist recht gut unter Vista. Bei einem Script ist mir nun etwas aufgefallen: Starte ich ein Script, dass Daten nach C:\Program Files kopieren möchte unter normalen Userrechten scheitet das Script beim einkopieren der Daten in dieses Verzeichnis (was vollkommen OK ist) Aber: Das Verzeichnis wird erstellt (unter nicht Administratorrechten) und kann in dem Programm genutzt werden, um zB INI-Datein oder Logdateien zu schreiben, etc. Das merkwürdige dabei ist, dass das eben erstellt Verzeichnis nicht mit dem Windows Explorer sichtbar ist (auch nicht mit DIR über die Eingabeaufforderung) Ich benutzte den Editor PDPad, der einen brauchbaren Dateieditor hat, dort ist das frische Verzeichnis sichtbar. Wird das Script unter Administrator ausgeführt verhält sich alles wie gewohnt. #cs ---------------------------------------------------------------------------- AutoIt Version: 3.2.0.1 Author: Nathan von Alemann, GST Informationmanagement GmbH #ce ---------------------------------------------------------------------------- ; Script Start $Dir = @ProgramFilesDir & "\Test\" $file = @ScriptDir & "\calc.exe" # sollte im ScriptDir lvoriegen If DirCreate($Dir) Then msgBox(4096,"DirCreate","Creation of dir: " & $Dir & " successfully!") Else msgBox(4096,"DirCreate","Creation of dir: " & $Dir & " FAILED!") EndIf If FileExists($Dir) Then MsgBox(4096, "FileExists", $Dir & " exists.") Else MsgBox(4096,"FileExists", $Dir & " does not exist.") EndIf If FileExists($file) Then MsgBox(4096, "FileExists", $file & " exists.") Else MsgBox(4096,"FileExists", $file & " does not exist.") EndIf If FileCopy($file,$Dir) Then MsgBox(4096, "FileCopy", "Copy of " & $file & " to " & $Dir & " successfully.") Else MsgBox(4096,"FileCopy", "Copy of " & $file & " to " & $Dir & " FAILED.") EndIf Kann sich das jemand erklären? Erstellen eines Verzeichnisses, dass im Dateisystem nicht mehr unter normalen Umständen sichtbar ist und eigentlich nicht unter den Benutzerrechten hätte angelegt werden dürfen ? Gruß Nathan Zitieren
NetSpider 10 Geschrieben 12. Oktober 2006 Melden Geschrieben 12. Oktober 2006 Ich hoff das ich jetzt nicht komplett was Falsches erzähle :D Aber wenn ich mich richtig an die letzten Big-Day's erinnere "it's not a bug, it's a feature", bietet Vista eine Funktion um Programme welche Administrative rechte benötigen in einem Modus zu starten, das dem betreffenden Programm vorgeschwindelt wird das es die Betreffenden rechte besitzt um die gewünscht Operation durchzuführen. Es soll als wie einen weiteren Layer vor der Datenschicht handeln und die betreffenden Operation abfangen und in einem getrenten bereich ausführen. Ein effektives löschen der Datei sollte nicht funktioneren und ob es Dauerhaft ist weiß ich auch nicht . Eventuell findet man im googel oder im msdn was Zitieren
zahni 571 Geschrieben 12. Oktober 2006 Melden Geschrieben 12. Oktober 2006 Wenn ich mich recht erinnere, ist das ein Feature von Vista. Das soll wohl hartnäckige Programme lauffähig machen, die z.B. unbedingt INI-Dateien nach C:\Programme schreiben wollen oder aus anderen Gründen nur mit Adminrechten laufen. Diese Dateien sind dann aber nur im jeweiligen Usercontext sichtbar. Der USer hat aber keine Möglichkeit Dateien ohne Berechtigung zu überschreiben. Sorry mir fällt der Name dazu nicht ein. Vielleicht kennt sich einer meiner Kollgen damit schon besseraus. -Zahni Zitieren
Nathan@gst 10 Geschrieben 13. Oktober 2006 Autor Melden Geschrieben 13. Oktober 2006 Das Feature heisst Virtual Store Windows Vista Deployment Enhancements : file and registry redirection. [..] Windows Vista enables these applications to run in a protected user environment by redirecting the writes to a virtual store, thus "tricking" the applications into thinking they are still running with full administrative privileges. c't 17/2005, S. 20: Windows Vista : So scheint das System nichts dagegen zu haben, wenn etwa eine Anwendung versucht, ins Windows-Verzeichnis zu schreiben. In Wirklichkeit verweigert es den Zugriff jedoch, mosert aber deswegen nicht rum, sondern leitet den Schreibvorgang kurzerhand und für die Anwendung transparent in einen anderen Ordner um („Virtual Store\<Konto-SID>\Windows“), dessen Inhalt es wiederum in den Windows-Ordner einblendet. Das von dem Script erstellte Verzeichniss liegt unter: C:\Users\<USERNAME>\AppData\Local\VirtualStore\Program Files\Test Danke und Gruß, Nathan Zitieren
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.