688575

Infos in NTFS-Streams schreiben und auslesen

Seit Service Pack 2 für Windows XP nutzt Microsoft erstmals konsequent eine Funktion des Dateisystems NTFS, die es an sich schon seit Windows NT 4 gibt - die NTFS-Streams. Dabei handelt es sich um zusätzliche Daten, die unsichtbar an eine Datei angehängt werden. Windows XP mit Service Pack 2 fügt beim Download von Dateien solche Streams an jede Datei. Der Explorer erkennt diese Zusatzinfo und bringt vor dem Entpacken oder Ausführen eine Sicherheitswarnung. Der Anwender soll aber von diesen Streams offenbar ferngehalten werden: Es gibt unter Windows keine speziellen Hilfsmittel, um gezielt nach Dateien mit NTFS-Streams zu suchen, deren Inhalte zu lesen oder solche Streams selbst anzulegen. Wir zeigen Ihnen, wie Sie Infos in NTFS-Streams auslesen und schreiben können.

Anforderung:

Profis

Zeitaufwand:

Mittel

Problem:

Seit Service Pack 2 für Windows XP nutzt Microsoft erstmals konsequent eine Funktion des Dateisystems NTFS, die es an sich schon seit Windows NT 4 gibt - die NTFS-Streams. Dabei handelt es sich um zusätzliche Daten, die unsichtbar an eine Datei angehängt werden. Windows XP mit Service Pack 2 fügt beim Download von Dateien solche Streams an jede Datei. Der Explorer erkennt diese Zusatzinfo und bringt vor dem Entpacken oder Ausführen eine Sicherheitswarnung. Der Anwender soll aber von diesen Streams offenbar ferngehalten werden: Es gibt unter Windows keine speziellen Hilfsmittel, um gezielt nach Dateien mit NTFS-Streams zu suchen, deren Inhalte zu lesen oder solche Streams selbst anzulegen.

Lösung:

Stream-Dateien lassen sich in der Form

<Dateiname>:<Stream-Name>

zwar mit jeder Programmiersprache ansprechen, lesen oder auch mit jedem Text- oder Binärformat füllen, aber dazu muss man erst den versteckten Stream-Namen herausfinden.

Undokumentiert: Es gibt unter Windows ein paar - allerdings wenig komfortable - Optionen, Streams zu bearbeiten. Der CMD-Prompt bietet relativ primitive Möglichkeiten, um einen Stream zu erstellen oder zu lesen:

echo Die Datei ist wichtig! > c:\ntldr:Kommentar
more < c:\ntldr:Kommentar

Der Echo-Befehl hängt hier den Stream "Kommentar“ an die Datei Ntldr, und der More-Befehl liest ihn wieder aus. Statt des ECHO-Befehls aus unserem Beispiel lässt sich jeder andere Kommandozeilenbefehl eingeben. Die Ausgabe dieses Befehls wird dann entweder mit ">“ in einen neuen Stream mit der Bezeichnung "Kommentar“ umgeleitet oder mit ">>“ an einen bereits bestehenden Stream mit diesem Namen angehängt.

Zum Auslesen mit More muss man natürlich den Stream-Namen kennen. Bequemer als mit More ist das Auslesen mit Notepad:

notepad c:\ntldr:Kommentar.

Beachten Sie, dass nach dem Stream-Namen ein Punkt stehen muss. Andernfalls geht Notepad automatisch davon aus, dass der Stream die Extension TXT hat, und findet ihn nicht. Eine in Notepad geladene Stream-Datei können Sie wie jede andere Datei bearbeiten und speichern.

Die Hauptschwierigkeit besteht darin, zunächst die Stream-Dateien aufzuspüren und deren Namen zu ermitteln. Das schnellste Hilfsmittel hierfür ist die Streams.EXE von Russinovich . Sie listet beispielsweise nach

streams -s c:\*.*

rasch alle Dateien mit Streams auf und nennt deren Namen. Mit "streams -d c:\*.*“ können Sie diese Streams komplett löschen. Falls Sie beim Auflisten auf Streams mit einer führenden Raute (Ascii 5) stoßen, handelt es sich in der Regel um Microsoft-Streams, die mit diesem Sonderzeichen im Namen noch zusätzlich gegen Zugriffe des Anwenders abgeschirmt werden.

Mit unserer :pcwListStreams.EXE können Sie nicht nur alle Streams auflisten, sondern auch deren Inhalte lesen. Diese erste Version des Programms eignet sich zwar noch nicht zum Editieren der Streams (eine solche Version ist in Planung), sie zeigt aber alle Dateien, alle Stream-Namen und alle -Inhalte an, soweit sie als Text darstellbar sind. Die Ausgabe erfolgt mit Notepad. Die Bedienung ist selbsterklärend. Beachten Sie aber, dass pcwListStreams jede einzelne Datei der von Ihnen angegebenen Ordner auf Streams prüft. Bei großen Datenmengen erfordert das etwas Geduld.

Die Vorteile von Streams gegenüber externen Datei-Informationen in Listen oder Tabellen, wie sie etwa Microsoft bei der Index-Erstellung anlegt, liegen darin, dass sie mit der jeweiligen Datei mitwandern. Auch wenn die Hauptdatei verschoben oder umbenannt wird, bleiben die Infos immer mit der Datei verbunden. Gegenüber Metadaten in Musik- oder OLE-Formaten haben Streams ebenfalls Vorteile: Sie sind nicht vom Dateiformat abhängig und taugen somit für alle Dateisorten und sogar für Verzeichnisse.

Die Nachteile: Die Infos sind schwer zugänglich - und sie gehen verloren, sobald eine Datei von der NTFS-Partition auf eine FAT32- oder Linux-Partition kopiert wird. Der Windows-Explorer warnt Sie in einem solchen Fall mit der Meldung "Datenstromverlust bestätigen“.

0 Kommentare zu diesem Artikel
688575