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-xxxxxxxxxxxx
ist die GUID durch den ersten Befehl bereitgestellt, geöffnet c:\vaccinated.img
in einem Hex - Editor und gesucht AUTORUN
.
Was macht der USB-Impfstoff?
Der Eintrag für AUTORUN.INF
beginnt 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
, H
und R
sind , 1
wenn und nur wenn die Datei archiviert wird, ein Verzeichnis, das Volumen ID 1 , eine Systemdatei, versteckt oder schreibgeschützt. AUTORUN.INF
ist ausgeblendet, da auf H
gesetzt 1
.
Die Bits X
und Y
sind reserviert und sollten beide sein 0
. USB-Impfstoff wird jedoch Y
auf 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.
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.
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.INF
Eintrag, 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.INF
ist ...
. 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 Y
intern 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.INF
ist 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, Y
auf 0
(ändern Sie das Byte 42
in 02
) zu setzen, um die Datei wieder löschbar zu machen. Sie können auch das erste Byte des Verzeichniseintrags auf setzen E5
und 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 X
auf 1
keine Wirkung zu haben.
3 Ich habe dies überprüft, indem ich die entsprechenden Bytes C:\vaccinated.img
mit 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 X
intakt, wenn es auf gesetzt ist 1
, da es keinen Schaden anrichtet. Das Setzen des Y
Bits 1
kann 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.