USBドライブでファイルを削除不可にする方法は?


15

誰かが私のUSBドライブを使用し、それを私に返送したところ、autorun.inf削除不可能なものが見つかりました。H(システムファイルとしても設定されていない)のみのファイル属性を変更しようとしましたが、アクセス拒否と表示され続けます。

USBはFAT32に設定されており、友人に尋ねると、彼はPanda USBワクチンを使用していると言った

彼らはどうやってこれをしますか?私はいくつかのディスクセクターエディターを使用しようとしていますが、この種類のファイルを作成して再び削除可能にするためにどの16進ファイルを変更するのかわかりません。ドライブをフォーマットすると削除されますが、これらの種類のファイル属性を設定する方法について興味があります。


同じリンク BitDefender USB Immunizer を実行する別のツールを見つけました
-MegaNairda

ファイルの権限を調べましたか?
モアブ

@Moab USB上のファイルシステムはFAT32です。
-MegaNairda

Windows 7以降では、Panda USB Vaccineによって作成されたautorun.infがファイル属性「HX」とともに表示され、「H」は非表示、「X」は予約されたFILE_ATTRIBUTE_DEVICEを意味します。
Explorer09

回答:


16

試験方法

それは基本的にだからパンダは、理解され、その「ワクチン」の正確なメカニズムを明らかにしていないようだ、あいまいさのセキュリティ。仕組みがわかっていれば、効果を元に戻すことができ、「ワクチン」は役に立たなくなります。

Panda USB Vaccineをダウンロードしてインストールし、フラッシュドライブに「予防接種」し、コマンドを使用してWindows用のddでフラッシュドライブのパーティションをダンプしました

dd --list

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

ここで、16進エディターxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxで開かc:\vaccinated.imgれ、検索された最初のコマンドによって提供されるGUID ですAUTORUN

USBワクチンの機能

のエントリはAUTORUN.INF、次の12バイトで始まります。

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

最初の11バイトは、スペースが埋め込まれた8.3ファイル名です。AUTORUN INF

最後のバイトはファイルの属性を指定し、そのバイナリ表現は次のとおりです。

01000010

Microsoft EFI FAT32 File System Specificationによると、この最後のバイトは次の形式のビットフィールドです。

XYADVSHR

ここで、ビットADVSH及びRである1場合、ファイルがアーカイブされている場合にのみ、ディレクトリ、ボリュームID 1、システムファイル、非表示または読み取り専用。AUTORUN.INFはにH設定されているため、非表示1です。

ビットXYは予約されており、両方ともである必要があります0。ただし、USBワクチンはに設定さY1ます。

仕様の内容

属性バイトの上位2ビットは予約されており、ファイルが作成され、その後変更または参照されない場合は常に0に設定する必要があります。

さらに、ディレクトリの内容の検証を推奨します。

これらのガイドラインは、ディスクメンテナンスユーティリティがディレクトリ構造の将来の拡張機能との互換性を維持しながら、個々のディレクトリエントリの「正確性」を検証できるように提供されています。

  1. 予約済みとマークされたディレクトリエントリフィールドの内容を調べないでください。ゼロ以外の値である場合、それらは「不良」であると想定してください。

  2. (「不良」であるという仮定の下で)ゼロ以外の値が含まれる場合、予約済みとマークされたディレクトリエントリフィールドの内容をリセットしないでください。ディレクトリ入力フィールドは、must-be-zeroではなく、reservedと指定されています。これらはアプリケーションで無視する必要があります。これらのフィールドは、ファイルシステムの将来の拡張用です。それらを無視することにより、ユーティリティはオペレーティングシステムの将来のバージョンで実行を継続できます。

実際に何が起こるか

CHKDSKは確かに仕様に従ってAUTORUN.INFおり、FAT32ドライバーが理解できないエントリを無視しますが、Windows自体は、予約ビットを再度確認しないという仕様の要件に準拠していないようです:任意の種類のアクセス(ファイルの一覧表示以外)およびその属性)は拒否されます。

たとえば、コマンド

DIR /A /Q

の所有者はAUTORUN.INFです...。FAT32はファイルの所有権をサポートしていないため、と記載する必要があります\All

この予期しない動作の理由は、FAT32-Wikipedia#Directory entryによると、WindowsはビットをY内部的に使用して文字デバイス名(CON、PRN、AUX、CLOCK $、NUL、LPT1、COM1など)を通知するためです。ストレージデバイスに存在するべきではありません。2

言い方をすれば、USBワクチンはWindowsをtrickしてAUTORUN.INF、それを実際のファイルではなく、読み取りまたは書き込みができないデバイスであると仮定させます。

ファイルを削除する方法

あなたは、ファイルシステムに直接アクセスを持っている場合は、それがセットに足りるY0(バイトを変更する42には02再度ファイルの削除可能を作るために)。また、ディレクトリエントリの最初のバイトをに設定E5して、ファイルを直接削除済みとしてマークすることもできます。3

別のオプションは、異なるドライバーを使用することです。たとえば、Ubuntu 12.04は問題なくファイルを削除できます。実際には、読み取り時にディレクトリエントリを自動的に「修正」します。4


1この属性は、たとえばボリュームラベルやフォルダーSystem Volume Informationに使用されます。

2は確かに十分な、設定Xには1何の影響も与えていないようです。

3C:\vaccinated.img 16進エディターでの対応するバイトを変更し、次のコマンドを使用して、変更したイメージをフラッシュドライブに書き込むことにより、これを確認しました。

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

4仕様からの明らかな逸脱は、考え抜かれたもののようです。Ubuntuは、害が発生しないXため1、に設定されている場合はそのまま残ります。Yビットを設定すると1、悪意のあるアプリケーションによって簡単に悪用される可能性があります。たとえば、ドライブの空き領域全体を占有する削除不可能なファイルを作成することができます。


6

これは、Win32名前空間の予約名を悪用する巧妙なファイルシステムの策略です。Panda USB Vaccineがこれを行う方法の詳細は、ここで説明します

基本的に、ソフトウェアはautorun.inf(同じ名前のファイルが作成されるのを防ぐ)という名前のフォルダーを作成し、そのフォルダーにというファイルLTP1が作成されます。DOSではLPT1、プリンタポ​​ートを指し、Windowsは下位互換性のためにこれをサポートしています。という名前のファイルを要求するとLPT1、Windowsはプリンターポートを開こうとしますが、どういうわけかフォルダーが正常に削除されなくなります。

ドライブをフォーマットせずにフォルダ/ファイルを削除する方法については、Microsoft Knowledgebaseの記事にいくつかのヒントがあります。

原因5:ファイル名には、Win32名前空間に予約名が含まれています

ファイル名に予約済みの名前(たとえば、「lpt1」)がWin32名前空間に含まれている場合、ファイルを削除できないことがあります。この問題を解決するには、Win32以外のプログラムを使用してファイルの名前を変更します。POSIXツールまたは適切な内部構文を使用してファイルを使用する他のツールを使用できます。

さらに、特定の構文を使用してファイルのパスを指定する場合、いくつかの組み込みコマンドを使用して、一般的なWin32予約名チェックをバイパスできる場合があります。たとえばDel 、Windows XPでコマンドを使用する場合、次の特別な構文を使用してファイルのフルパスを指定すると、「lpt1」という名前のファイルを削除できます。

del \\?\c:\path_to_file\lpt1

Windows NTおよびWindows 2000で予約名を持つファイルを削除する方法の詳細については、次の記事番号をクリックして、マイクロソフトサポート技術情報の記事を参照してください。

120716 Windowsで予約名を持つファイルを削除する方法

Windows XPで予約名を持つファイルを削除する方法の詳細については、次の記事番号をクリックして、マイクロソフトサポート技術情報の記事を参照してください。

315226 Windows XPで予約名を持つファイルを削除する方法

典型的なWin32 CreateFile メカニズムを使用してファイルへのハンドルを開くと、特定のファイル名は古いスタイルのDOSデバイス用に予約されています。下位互換性のために、これらのファイル名は許可されておらず、一般的なWin32ファイル呼び出しを使用して作成することはできません。ただし、この問題はNTFSの制限ではありません。

Win32プログラムを使用して、より深いフォルダーをトラバースするために使用するのと同じ手法を使用して、ファイルの作成(または削除)時に実行される一般的な名前チェックをバイパスできる場合がありますMAX_PATH。さらに、一部のPOSIXツールはこれらの名前チェックの対象ではありません。


2
これは、悪意のあるautorun.infからUSBドライブを保護するPanda USBワクチンの古い方法です。私が提供したリンクをダウンロードして使用してみると、フォルダーが作成されないことがわかります。autorun.infと呼ばれる単一のファイル
-MegaNairda

@MegaNairda:奇妙な... USBワクチンをインストールしましたが、FAT32サムドラ​​イブにワクチンを接種しようとすると、プログラムはAUTORUN.INFドライブ上に(記事で言及した「caacaa ...」文字列を使用して)すぐに作成します。凍結します。私はすべての自動実行ファイルを削除何の問題もない...
Lèsemajesté

BitDefender USB Immunizer試しリンク 私はUSBドライブを挿入するとパンダUSBワクチンをまた時々私のシステムでフリーズ。
-MegaNairda

@MegaNairda:そのサムドライブに問題があるようです。どちらのプログラムもそれを予防接種することができませんでした。ただし、この偶然は、BitDefenderのイミュナイザーが少なくとも同様の手法を使用していることを示している点で役立ちました。エラーログは、"1"または "2"の下I:\autorun.inf\bdsanitize#\bdsanitize#...に一連のネストされたフォルダー/ファイルを作成しようとしたことを示しました#。ログファイルには、各レベルのファイル/ DIRNAMEを追加.dirまたは.fileそれはちょうど、ロギング/デバッグ目的のために示すことができます。
レーゼマジェス

1
実際、USBに問題があるようです。BitDefenderのImmunizerはフォルダーを作成しますautorun.infが、その後、autorun.inf ファイルに置き換えられますautorun.infPanda USB Vaccine との違いは、ファイルが空でありcacaca、Pandaが作成したようなファイルが含まれていないことです。
-MegaNairda
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.