Come rendere un file non cancellabile su un'unità USB?


15

Qualcuno ha usato la mia chiavetta USB e quando me l'ha restituita, ho trovato una autorun.infcosa non cancellabile. Ho provato a cambiare l'attributo del file che è solo H (nemmeno impostato come file di sistema) ma continua a dire Accesso negato.

L'USB è impostato su FAT32, su richiesta del mio amico, mi ha detto che usa il vaccino Panda USB

Come lo fanno? Sto provando a usare qualche editor di Disk Sector ma non ho idea di quale file esadecimale cambino per rendere questo tipo di file e renderlo nuovamente cancellabile. La formattazione dell'unità lo rimuove, ma sono curioso di sapere come poter impostare quel tipo di attributo di file.


Ho trovato un altro strumento che fa lo stesso collegamento BitDefender USB Immunizer
MegaNairda

Hai ispezionato le autorizzazioni sul file?
Moab,

@Moab Il filesystem su USB è FAT32.
MegaNairda,

In Windows 7 o versioni successive, il file autorun.inf creato da Panda USB Vaccine verrà visualizzato con gli attributi di file "HX", mentre "H" significa nascosto e "X" significa FILE_ATTRIBUTE_DEVICE riservato.
Explorer09,

Risposte:


16

Metodo di prova

Panda non sembra rivelare l'esatto meccanismo del suo "vaccino", il che è comprensibile, dal momento che è fondamentalmente la sicurezza attraverso l'oscurità . Se sai come funziona, puoi invertire gli effetti e il "vaccino" diventa inutile.

Ho scaricato e installato Panda USB Vaccine e "vaccinato" la mia unità flash, scaricato la partizione dell'unità flash con dd per Windows usando i comandi

dd --list

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

dove si xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxtrova il GUID fornito dal primo comando, aperto c:\vaccinated.imgin un editor esadecimale e cercato AUTORUN.

Cosa fa il vaccino USB

La voce per AUTORUN.INFinizia con i seguenti dodici byte:

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

I primi undici byte sono solo il nome del file 8.3 riempito di spazio :AUTORUN INF

L'ultimo byte specifica gli attributi del file e la sua rappresentazione binaria è:

01000010

Secondo le specifiche del file system Microsoft EFI FAT32 , quest'ultimo byte è un campo bit che assume la seguente forma:

XYADVSHR

dove i bit A, D, V, S,H e Rsono 1se e solo se il file viene archiviato, una directory, l'ID del volume 1 , un file system, nascoste o di sola lettura. AUTORUN.INFè nascosto, poiché Hè impostato su 1.

I bit Xe Ysono riservati e dovrebbero essere entrambi 0. Tuttavia, il vaccino USB è impostato Ysu 1.

Cosa dice la specifica

I due bit superiori del byte dell'attributo sono riservati e devono essere sempre impostati su 0 quando un file viene creato e non viene mai modificato o esaminato.

Inoltre, raccomanda di validare il contenuto della directory:

Queste linee guida sono fornite in modo tale che le utility di manutenzione del disco possano verificare la correttezza delle singole voci della directory mantenendo la compatibilità con futuri miglioramenti della struttura della directory.

  1. NON guardare il contenuto dei campi di immissione della directory contrassegnati come riservati e supporre che, se hanno un valore diverso da zero, sono "cattivi".

  2. NON DO azzerare il contenuto dei campi di immissione contrassegnati directory riservata a zero quando contengono i non-valori zero (sotto l'ipotesi che essi sono "cattivo"). I campi di immissione della directory sono designati come riservati , anziché devono essere zero . Dovrebbero essere ignorati dalla tua applicazione. Questi campi sono destinati alle future estensioni del file system. Ignorandoli, un'utilità può continuare a funzionare su versioni future del sistema operativo.

Cosa succede realmente

CHKDSK segue certamente la specifica e ignora la AUTORUN.INFvoce che il driver FAT32 non comprende, ma Windows stesso non sembra soddisfare il requisito della specifica di non guardare mai più i bit riservati : qualsiasi tipo di accesso (diverso dall'elenco del file e i suoi attributi) è negato.

Ad esempio, il comando

DIR /A /Q

afferma che il proprietario di AUTORUN.INFè .... Poiché FAT32 non supporta la proprietà dei file, dovrebbe essere indicato \All.

Il motivo di questo comportamento imprevisto è che, secondo FAT32 - Voce della directory Wikipedia # , Windows utilizza il bit Yinternamente per segnalare un nome di dispositivo carattere (CON, PRN, AUX, CLOCK $, NUL, LPT1, COM1, ecc.) E non dovrebbe essere presente sui dispositivi di archiviazione. 2

In un certo senso, USB Vaccine induce Windows a supporre cheAUTORUN.INF non si tratti di un file reale, ma di un dispositivo sul quale non è possibile leggere o scrivere.

Come eliminare il file

Se si ha accesso diretto al file system, è sufficiente impostare Ysu 0(modificare il byte 42in 02) per rendere nuovamente possibile l'eliminazione del file. È inoltre possibile impostare il primo byte della voce della directory su E5, contrassegnando direttamente il file come eliminato. 3

Un'altra opzione sarebbe quella di utilizzare un driver diverso. Ubuntu 12.04, ad esempio, può eliminare il file senza problemi. In realtà, "corregge" automaticamente la voce della directory durante la lettura. 4


1 Questo attributo viene utilizzato, ad esempio, per l'etichetta del volume o per la cartella Informazioni sul volume del sistema .

2 Certamente, l'impostazione Xsu 1non sembra avere alcun effetto.

3 Ho verificato questo cambiando i byte corrispondenti di C:\vaccinated.imgcon un editor esadecimale e scrivendo l'immagine modificata sull'unità flash usando il seguente comando:

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

4 Mentre una palese deviazione dalle specifiche, sembra essere pensata. Ubuntu lascia Xintatto se è impostato su 1, poiché non danneggia. L'impostazione del Ybit su 1potrebbe essere facilmente abusata da un'applicazione dannosa, ad esempio creando un file non cancellabile che occupa l'intero spazio libero dell'unità.


6

Questo è un trucco intelligente del filesystem che sfrutta un nome riservato nello spazio dei nomi Win32. I dettagli su come funziona Panda USB Vaccine sono indicati qui .

In sostanza, il software crea una cartella denominata autorun.inf(che impedisce la creazione di un file con lo stesso nome), quindi in quella cartella LTP1viene creato un file chiamato . In DOS, si LPT1riferisce alla porta della stampante e Windows la supporta per compatibilità con le versioni precedenti. Quindi, quando richiedi un file denominatoLPT1 , Windows tenta di aprire la porta della stampante e in qualche modo ciò impedisce alla cartella di essere eliminata normalmente.

Per quanto riguarda come rimuovere la cartella / file senza formattare l'unità, questo articolo della Microsoft Knowledge Base fornisce alcuni suggerimenti:

Causa 5: il nome del file include un nome riservato nello spazio dei nomi Win32

Se il nome del file include un nome riservato (ad esempio "lpt1") nello spazio dei nomi Win32, potrebbe non essere possibile eliminare il file. Per risolvere questo problema, utilizzare un programma non Win32 per rinominare il file. È possibile utilizzare uno strumento POSIX o qualsiasi altro strumento che utilizza la sintassi interna appropriata per utilizzare il file.

Inoltre, potrebbe essere possibile utilizzare alcuni comandi integrati per ignorare i tipici controlli dei nomi riservati di Win32 se si utilizza una sintassi specifica per specificare il percorso del file. Ad esempio, se si utilizza il Del comando in Windows XP, è possibile eliminare un file denominato "lpt1" se si specifica il percorso completo del file utilizzando la sintassi speciale seguente:

del \\?\c:\path_to_file\lpt1

Per ulteriori informazioni sull'eliminazione di file con nomi riservati in Windows NT e Windows 2000, fare clic sul seguente numero di articolo per visualizzare l'articolo del Microsoft Knowledge Base:

120716 Come rimuovere i file con nomi riservati in Windows

Per ulteriori informazioni sull'eliminazione di file con nomi riservati in Windows XP, fare clic sul seguente numero di articolo per visualizzare l'articolo del Microsoft Knowledge Base:

315226 Come rimuovere i file con nomi riservati in Windows XP

Se si apre un handle per un file utilizzando il tipico CreateFile meccanismo Win32 , alcuni nomi di file sono riservati per dispositivi DOS vecchio stile. Per compatibilità con le versioni precedenti, questi nomi di file non sono consentiti e non possono essere creati utilizzando le tipiche chiamate di file Win32. Tuttavia, questo problema non è una limitazione di NTFS.

Potresti essere in grado di utilizzare un programma Win32 per ignorare i tipici controlli dei nomi che vengono eseguiti quando un file viene creato (o eliminato) utilizzando la stessa tecnica che usi per attraversare cartelle più profonde di MAX_PATH. Inoltre, alcuni strumenti POSIX non sono soggetti a questi controlli del nome.


2
Questo è il vecchio modo del vaccino Panda USB per proteggere l'unità USB da autorun.inf dannoso. Prova a scaricare e utilizzare il link che ho fornito e vedrai che non crea alcuna cartella. Solo un singolo file chiamato autorun.inf
MegaNairda

@MegaNairda: Strano ... Ho installato il vaccino USB, ma ogni volta che provo a vaccinare il mio thumbdrive FAT32, il programma crea AUTORUN.INF(con la stessa stringa "caacaa ..." menzionata nell'articolo) sull'unità e quindi prontamente congela. Non ho alcun problema a cancellare il file di
esecuzione

Prova anche il collegamento dell'immunizzatore USB BitDefender Panda USB Vaccine a volte si blocca sul mio sistema quando inserisco unità USB.
MegaNairda,

@MegaNairda: sembrava esserci un problema con quella levetta. Nessuno dei due programmi è stato in grado di vaccinarlo. Tuttavia, questa coincidenza è stata utile in quanto ha dimostrato che l'immunizzatore di BitDefender utilizza almeno una tecnica simile. Il registro errori ha mostrato che ha tentato di creare una serie di cartelle / file nidificati in I:\autorun.inf\bdsanitize#\bdsanitize#...cui #è "1" o "2". Il file di registro ha inoltre aggiunto il file / dirname di ogni livello con .diro, .filema ciò può essere mostrato solo a scopo di registrazione / debug.
Lèse majesté,

1
Sembra che ci sia davvero un problema con la tua USB. Immunizer di BitDefender crea una cartella, autorun.infma in seguito verrà sostituita da un autorun.inf file . La differenza con autorun.infPanda USB Vaccine è che il file è vuoto e non contiene cacacacome quello creato da Panda.
MegaNairda,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.