721814

Hack mit langen Namen

Anforderung

Zeitaufwand

Lange Dateinamen sind an sich nichts für FAT16: Dieses Dateisystem erlaubt definitiv nur die alte 8+3-Konvention. Um unter Windows 95 dennoch lange Dateinamen einführen zu können, hat sich Microsoft einen reichlich komplizierten Hack einfallen lassen.Wenn der Name einer Datei unter Windows 95 länger ist, als es die alte DOS-Konvention zuläßt, erhält sie einfach einen weiteren Eintrag in der Dateitabelle, notfalls auch mehrere (bis maximal 19). Damit das System weiß, daß ein Eintrag in der Dateitabelle nur ein Folgeeintrag für einen langen Namen ist, hat Microsoft für diese Folgeeinträge das spezielle Dateiattribut 0F erfunden - eine illegale Kombination der Attribute "schreibgeschützt", "versteckt", "System" und "Label".Diese Folgeeinträge stehen in der Dateitabelle stets untereinander, allerdings in umgekehrter Reihenfolge:langer Name (Teil n) Attribut 0F...langer Name (Teil 2) Attribut 0Flanger Name (Teil 1) Attribut 0Fkurzer DOS-NameAußerdem erhält jeder Eintrag für den langen Namen zu Beginn eine Folgenummer 01, 02, 03 - je nach Position. Der oberste - abschließende - Eintrag bekommt schließlich eine Art Terminierung, indem zur Positionsnummer 40 (Hex) hinzuaddiert wird.Wie aufwendig der ganze Hack ist, zeigt sich beispielsweise wenn eine Datei, die bisher einen kurzen Namen trug, nun einen langen erhalten soll. Dann muß in jedem Fall der bisher bestehende Eintrag erst einmal gelöscht und anschließend nach der nächsten Lücke gesucht werden, die groß genug ist, um die notwendigen zwei oder auch mehr Einträge aufzunehmen. Nun erst kann der FAT-Eintrag in der beschriebenen Abfolge vonstatten gehen.

Die obige Erläuterung zum Dateiattribut 0F stellt klar, daß Windows immer davon ausgeht, daß ein langer Dateiname vorliegt, wenn es in der Dateitabelle auf 0F trifft: 0F-Einträge sind ja nur Erweiterungen des normalen 8+3-Eintrags. Logische Konsequenz ist daher, daß eine Datei oder ein Ordner mit Attribut 0F buchstäblich verschwindet, wenn kein solcher Eintrag vorhanden ist. Das läßt sich dazu nutzen, geheime Dateien oder Ordner anzulegen.Wenn Sie einen Diskeditor besitzen, können Sie auf Disketten problemlos Ordner verstecken. Disketten sind nicht gegen den direkten physikalischen Zugriff gesperrt; Sie können sie daher unter Windows und ohne LOCK mit einem Diskeditor beschreiben:Um einen geheimen Ordner zu erstellen, erzeugen Sie zunächst auf einer Diskette ein ganz normales Verzeichnis mit kurzem Namen und kopieren einige Dateien hinein. Danach starten Sie den Diskeditor, wählen das Laufwerk A: und suchen in der hexadezimalen Ansicht den Eintrag des eben erstellten Verzeichnisses. Verzeichnisse tragen als 12. Byte (Byte B) das Dateiattribut "10" (hex). Wenn Sie nun stattdessen das Attribut 0F einsetzen, ist der Ordner anschließend verschwunden. Für DOS ist dieses Attribut illegal und Windows 95 sucht vergeblich nach dem Primäreintrag für diesen langen Namen.Aus Sicherheitsgründen sollten Sie derartige Datenverstecke wirklich nur auf Disketten anwenden: Gefahr für die Daten besteht insbesondere beim Einsatz von Scandisk. Das Dienstprogramm erkennt den Fehler und wird den versteckten Ordner umgehend kaputtreparieren.

PC-WELT Marktplatz

721814