Wie mache ich eine Datei auf einem USB-Stick nicht löschbar?

15

Jemand hat mein USB-Laufwerk verwendet und als ich es zurückgab, fand ich ein nicht autorun.inflöschbares. Ich habe versucht, das Dateiattribut zu ändern, das nur H ist (nicht einmal als Systemdatei festgelegt), aber es sagt weiterhin Zugriff verweigert.

Der USB ist auf FAT32 eingestellt, als er meinen Freund fragte, dass er Panda USB Vaccine verwendet

Wie machen sie das? Ich versuche, einen Disk Sector-Editor zu verwenden, habe aber keine Ahnung, welche Hex-Datei sie ändern, um diese Art von Datei zu erstellen und wieder löschbar zu machen. Durch das Formatieren des Laufwerks wird es entfernt, aber ich bin gespannt, wie diese Art von Dateiattribut festgelegt werden kann.

MegaNairda
quelle
Ich fand ein anderes Tool, das den gleichen Link BitDefender USB Immunizer macht
MegaNairda
Haben Sie die Berechtigungen für die Datei überprüft?
Moab
@Moab Das Dateisystem auf dem USB ist FAT32.
MegaNairda
In Windows 7 oder höher wird die von Panda USB Vaccine erstellte autorun.inf mit den Dateiattributen "HX" angezeigt, während "H" für versteckt und "X" für das reservierte FILE_ATTRIBUTE_DEVICE steht.
Explorer09

Antworten:

16

Testmethode

Panda scheint den genauen Mechanismus seines "Impfstoffs" nicht zu offenbaren, was verständlich ist, da es sich im Grunde genommen um Sicherheit durch Unbekanntheit handelt . Wenn Sie wissen, wie es funktioniert, können Sie die Effekte umkehren und der "Impfstoff" wird unbrauchbar.

Ich habe Panda USB Vaccine heruntergeladen und installiert und mein Flash-Laufwerk "geimpft" und die Partition des Flash-Laufwerks mit dd für Windows mithilfe der Befehle gesichert

dd --list

dd if=\\.\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} of=C:\vaccinated.img

wo xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxist die GUID durch den ersten Befehl bereitgestellt, geöffnet c:\vaccinated.imgin einem Hex - Editor und gesucht AUTORUN.

Was macht der USB-Impfstoff?

Der Eintrag für AUTORUN.INFbeginnt mit den folgenden zwölf Bytes:

41 55 54 4F 52 55 4E 20 49 4E 46 42

Die ersten elf Bytes sind nur der mit Leerzeichen aufgefüllte 8.3-Dateiname :AUTORUN INF

Das letzte Byte gibt die Attribute der Datei an und die binäre Darstellung lautet:

01000010

Gemäß der Microsoft EFI FAT32-Dateisystemspezifikation ist dieses letzte Byte ein Bitfeld in der folgenden Form:

XYADVSHR

wobei die Bits A, D, V, S, Hund Rsind , 1wenn und nur wenn die Datei archiviert wird, ein Verzeichnis, das Volumen ID 1 , eine Systemdatei, versteckt oder schreibgeschützt. AUTORUN.INFist ausgeblendet, da auf Hgesetzt 1.

Die Bits Xund Ysind reserviert und sollten beide sein 0. USB-Impfstoff wird jedoch Yauf eingestellt 1.

Was die Spezifikation sagt

Die oberen beiden Bits des Attributbytes sind reserviert und sollten immer auf 0 gesetzt werden, wenn eine Datei erstellt und danach niemals geändert oder überprüft wird.

Außerdem wird zur Validierung des Verzeichnisinhalts empfohlen:

Diese Richtlinien werden bereitgestellt, damit Dienstprogramme für die Datenträgerwartung einzelne Verzeichniseinträge auf "Korrektheit" überprüfen und gleichzeitig die Kompatibilität mit zukünftigen Verbesserungen der Verzeichnisstruktur gewährleisten können.

  1. Sehen Sie sich den Inhalt der als reserviert gekennzeichneten Verzeichniseintragsfelder NICHT an und gehen Sie davon aus, dass sie "schlecht" sind, wenn sie einen anderen Wert als Null haben.

  2. Setzen Sie den Inhalt der als reserviert gekennzeichneten Verzeichniseintragsfelder NICHT auf Null zurück, wenn sie Werte ungleich Null enthalten (unter der Annahme, dass sie "schlecht" sind). Verzeichniseintragsfelder sind reserviert und dürfen nicht Null sein . Sie sollten von Ihrer Anwendung ignoriert werden. Diese Felder sind für zukünftige Erweiterungen des Dateisystems vorgesehen. Wenn Sie diese ignorieren, kann ein Dienstprogramm auch in zukünftigen Versionen des Betriebssystems ausgeführt werden.

Was passiert eigentlich?

CHKDSK folgt mit Sicherheit der Spezifikation und ignoriert den AUTORUN.INFEintrag, den der FAT32-Treiber nicht versteht, aber Windows selbst scheint die Anforderung der Spezifikation nicht zu erfüllen, die reservierten Bits nie wieder zu prüfen : Jede Art von Zugriff (außer Auflistung der Datei) und seine Attribute) wird verweigert.

Zum Beispiel der Befehl

DIR /A /Q

gibt an, dass der Besitzer von AUTORUN.INFist .... Da FAT32 den Besitz von Dateien nicht unterstützt, sollte dies angegeben werden \All.

Der Grund für dieses unerwartete Verhalten ist, dass Windows laut FAT32 - Wikipedia # Directory - Eintrag das Bit Yintern verwendet, um einen Zeichengerätenamen (CON, PRN, AUX, CLOCK $, NUL, LPT1, COM1 usw.) und zu signalisieren es sollte nicht auf Speichergeräten vorhanden sein. 2

In einer Art und Weise des Sprechens, USB Vaccine Tricks Windows - in , dass unter der Annahme AUTORUN.INFist nicht eine tatsächliche Datei, sondern ein Gerät, das es nicht von oder Schreiben lesen.

So löschen Sie die Datei

Wenn Sie direkten Zugriff auf das Dateisystem haben, genügt es, Yauf 0(ändern Sie das Byte 42in 02) zu setzen, um die Datei wieder löschbar zu machen. Sie können auch das erste Byte des Verzeichniseintrags auf setzen E5und die Datei direkt als gelöscht markieren. 3

Eine andere Option wäre die Verwendung eines anderen Treibers. Ubuntu 12.04 kann zB die Datei problemlos löschen. Tatsächlich "repariert" es automatisch den Verzeichniseintrag, wenn es ihn liest. 4


1 Dieses Attribut wird z. B. für die Datenträgerbezeichnung oder den Ordner System Volume Information verwendet .

2 Sicherlich scheint die Einstellung Xauf 1keine Wirkung zu haben.

3 Ich habe dies überprüft, indem ich die entsprechenden Bytes C:\vaccinated.imgmit einem Hex-Editor geändert und das geänderte Image mit dem folgenden Befehl auf das Flash-Laufwerk geschrieben habe:

dd if=C:\vaccinated.img of=\\.\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}

4 Obwohl es sich um eine offensichtliche Abweichung von der Spezifikation handelt, scheint es sich um eine durchdachte zu handeln. Ubuntu lässt das Xintakt, wenn es auf gesetzt ist 1, da es keinen Schaden anrichtet. Das Setzen des YBits 1kann leicht von einer böswilligen Anwendung missbraucht werden, indem z. B. eine nicht löschbare Datei erstellt wird, die den gesamten freien Speicherplatz des Laufwerks belegt.

Dennis
quelle
6

Dies ist eine clevere Art von Dateisystem-Trick, bei der ein reservierter Name im Win32-Namespace ausgenutzt wird. Einzelheiten dazu, wie Panda USB Vaccine dies ausführt, finden Sie hier .

Im Wesentlichen erstellt die Software einen Ordner mit dem Namen autorun.inf(wodurch verhindert wird, dass dort eine Datei mit demselben Namen erstellt wird). In diesem Ordner wird dann eine Datei mit dem Namen LTP1erstellt. LPT1Bezieht sich in DOS auf den Druckeranschluss und wird von Windows aus Gründen der Abwärtskompatibilität unterstützt. Wenn Sie also eine Datei mit dem Namen anfordern LPT1, versucht Windows, den Druckeranschluss zu öffnen, und dies verhindert auf irgendeine Weise, dass der Ordner normal gelöscht wird.

In diesem Microsoft Knowledgebase-Artikel finden Sie einige Tipps zum Entfernen des Ordners / der Datei ohne Formatierung des Laufwerks :

Ursache 5: Der Dateiname enthält einen reservierten Namen im Win32-Namensraum

Wenn der Dateiname einen reservierten Namen (z. B. "lpt1") im Win32-Namensraum enthält, können Sie die Datei möglicherweise nicht löschen. Verwenden Sie ein Nicht-Win32-Programm, um dieses Problem zu beheben, um die Datei umzubenennen. Sie können ein POSIX-Tool oder ein anderes Tool verwenden, das die entsprechende interne Syntax verwendet, um die Datei zu verwenden.

Darüber hinaus können Sie möglicherweise einige integrierte Befehle verwenden, um die typischen Prüfungen für reservierte Win32-Namen zu umgehen, wenn Sie eine bestimmte Syntax verwenden, um den Pfad der Datei anzugeben. Wenn Sie beispielsweise den Del Befehl in Windows XP verwenden, können Sie eine Datei mit dem Namen "lpt1" löschen, wenn Sie den vollständigen Pfad der Datei mithilfe der folgenden speziellen Syntax angeben:

del \\?\c:\path_to_file\lpt1

Weitere Informationen zum Löschen von Dateien mit reservierten Namen unter Windows NT und Windows 2000 finden Sie im folgenden Artikel der Microsoft Knowledge Base:

120716 Entfernen von Dateien mit reservierten Namen in Windows

Weitere Informationen zum Löschen von Dateien mit reservierten Namen unter Windows XP finden Sie im folgenden Artikel der Microsoft Knowledge Base:

315226 Entfernen von Dateien mit reservierten Namen in Windows XP

Wenn Sie ein Handle für eine Datei mit dem typischen Win32 öffnen CreateFile Mechanismus , sind bestimmte Dateinamen für DOS-Geräte alten Stils reserviert. Aus Gründen der Abwärtskompatibilität sind diese Dateinamen nicht zulässig und können nicht mithilfe typischer Win32-Dateiaufrufe erstellt werden. Dieses Problem ist jedoch keine Einschränkung von NTFS.

Sie können möglicherweise ein Win32-Programm verwenden, um die typischen Namensüberprüfungen zu umgehen, die beim Erstellen (oder Löschen) einer Datei durchgeführt werden, indem Sie die gleiche Technik verwenden, die Sie zum Durchlaufen von Ordnern verwenden, die tiefer sind als MAX_PATH. Darüber hinaus unterliegen einige POSIX-Tools nicht diesen Namensprüfungen.

Majestätsbeleidigung
quelle
2
Dies ist die alte Methode des Panda USB-Impfstoffs zum Schutz des USB-Laufwerks vor böswilliger autorun.inf. Wenn Sie den angegebenen Link herunterladen und verwenden, werden Sie feststellen, dass keine Ordner erstellt werden. Nur eine einzige Datei namens autorun.inf
MegaNairda
@MegaNairda: Seltsam ... Ich habe den USB-Impfstoff installiert, aber jedes Mal, wenn ich versuche, meinen FAT32-Thumbdrive zu impfen, erstellt das Programm eine AUTORUN.INF(mit der gleichen "caacaa ..." - Zeichenfolge, die im Artikel erwähnt wurde) auf dem Laufwerk und dann umgehend friert ein. Ich habe kein Problem die Autorun - Datei überhaupt zu löschen ...
Majestätsbeleidigung
Versuchen Sie es mit BitDefender USB Immunizer Link. Panda USB Vaccine friert manchmal auch auf meinem System ein, wenn ich USB-Laufwerke einsetze.
MegaNairda
@ MegaNairda: Es schien ein Problem mit diesem Thumbdrive zu geben. Keines der beiden Programme konnte es impfen. Dieses Zusammentreffen hat jedoch gezeigt, dass der BitDefender-Immunisierer zumindest eine ähnliche Technik verwendet. Das Fehlerprotokoll zeigte, dass versucht wurde, eine Reihe von verschachtelten Ordnern / Dateien mit den I:\autorun.inf\bdsanitize#\bdsanitize#...Werten #"1" oder "2" zu erstellen . Die Protokolldatei fügte auch den Datei- / Verzeichnisnamen jeder Ebene mit .diroder hinzu .file, dies kann jedoch nur zu Protokollierungs- / Debugging-Zwecken angezeigt werden.
Majestätsbeleidigung
1
Es scheint tatsächlich ein Problem mit Ihrem USB zu geben. BitDefenders Immunizer erstellt zwar einen Ordner autorun.inf, dieser wird danach jedoch durch eine autorun.inf Datei ersetzt . Der Unterschied zum autorun.infPanda USB-Impfstoff besteht darin, dass die Datei leer ist und nicht die cacacavon Panda erstellte Datei enthält .
MegaNairda