20

今日、NTFS システムがサポートするこの奇妙な魔法を見てきました。各ファイルは複数のデータ ストリームを持つことができます。基本的に、a.txtサイズが 0b のファイルを持つことができますが、そのファイルの別のデータ ストリームに任意の数のバイトが隠されている可能性があります。これは厳密に NTFS 関連の魔法であり、これらのストリームを使用する気高い理由は見当たりません。streamsSysinternalsのユーティリティを使用して、NTFS ストリームを探すことができます。これは、基本的にこれらの厄介なファイルのすべてにthumbs.db余分なデータストリームが付属していることを示しています.

さて、Windows NT4 システムでこの魔法のような動作が見られ、ファイルへのストリームの追加、コピー、削除 (前述のユーティリティの助けを借りて) が行われました。filename:streamname構文を使用すると、既存のストリームを検出できますが、その内容を表示できず、新しいストリームを作成できません。

次のエラーが表示されます。

ファイル名、ディレクトリ名、またはボリューム ラベルの構文が正しくありません。

例: ストリーム ユーティリティからの出力:

c:\DOWNLOADS>streams.exe -s .

Streams v1.56 - Enumerate alternate NTFS data streams
Copyright (C) 1999-2007 Mark Russinovich
Sysinternals - www.sysinternals.com

c:\DOWNLOADS\1013.pdf:
   :Zone.Identifier:$DATA       46

c:\DOWNLOADS>type 1013.pdf:Zone.Identifier
The filename, directory name, or volume label syntax is incorrect.

代替データ ストリームの内容を表示できないのはなぜですか?

「 NTFS 代替データ ストリームの使用方法」に関する Microsoft のドキュメントを見ると、これらのストリームは将来サポートされなくなると記載されていますが、これが私のオペレーティング システムに当てはまることがわかります。誰でもこれに光を当てることができますか?

4

6 に答える 6

23

頭のてっぺんから: NTFS データストリームは Windows NT 4.0 で導入され、すべての子孫 (win-95 の子孫を除く: 98、Me) で使用されています。XP、Vista、および Win 7 では、まだ使用されています。Windows バージョンが NTFS をサポートしている限り、それらはファイル ストリームをサポートします。彼らは、今後も長い間 NTFS をサポートします。

発生したエラーは、質問で表示したページに記載されています。コマンドはtypeストリームを認識しません。使用する:

more < 1013.pdf:Zone.Identifier

ストリームの操作

Microsoft には、ストリームで機能するコマンドがいくつかあります。実際、ストリームで機能するのは のみ<です>。したがって、これらのリダイレクト オペレーターで機能するコマンドのみを使用できます。これらのコマンドだけでストリームを操作する方法について、代替データストリームに関するブログ投稿をいくつか書きました。

ストリームは、ストリームと連携するように設計されたプログラムでのみ機能します。これは、ストリームを特別に処理する必要があるためです (ジャンクション ポイントを比較します。NTFS の機能でもありますが、ドライバーは詳細を隠し、プログラムは特別なことをする必要はありません。ジャンクションポイントを実際のファイルと見なしてください)。

を使用してファイル ストリームを開こうとするstart filename:streamnameと、プログラムが「不正なファイル名」や「ファイルが見つかりません」などのメッセージを表示し、ストリーム名が正しいと確信できる場合は、そのプログラムがストリームをサポートしていない可能性があります。メモ帳、ワードパッド、および Word/Excel はストリームで正しく動作することに気付きましたが、Word と Excel はファイルを危険と見なしています。ここにあなたが試すかもしれないいくつかの実験があります。


注:代替データストリームは奇妙だと考えているようです。それらは非常に隠されているため奇妙ですが、多くの主要なファイルシステム (HFS、NSS) にはそれがあり、その概念は 80 年代初頭にさかのぼります。実際、ストリームは元々、他のファイルシステムとの相互運用性のために NTFS に追加されました。

于 2009-11-27T16:55:35.067 に答える
9

ところで、メモ帳で AltDataStream を開くことができます。

notepad.exe 1013.pdf:Zone.Identifier

また、AltDataStream のタイプを指定することもできます (メモ帳だけでなく、「完全なストリーム名」です)。

1013.pdf:Zone.Identifier:$DATA
于 2009-11-30T10:43:17.667 に答える
7

これは厳密に NTFS 関連のマジックです

そうではありません-Mac OSには昔からこれらがあり、その世界ではフォークと呼ばれ、ResEditを使用してそれらを取得します。それらの古典的な使用法は、メディア資産を実行可能ファイルと一緒にバンドルすることです。

于 2010-09-28T15:31:24.327 に答える
6

代替ストリームの考えられる目的の 1 つは、メタデータです。元のファイルの内容に影響を与えることなく、ドキュメントに大きな説明を追加できます。

于 2009-11-27T17:28:38.023 に答える
3

Win32 API は、代替ストリームの命名を問題なく処理します。

一方、CMD は、*/? ":" が存在する場合は展開とバーフ。そのため、コピーと入力は失敗しますが、単純なリダイレクトは機能します。

于 2012-07-26T19:42:31.217 に答える
3

このエラーは文字通り、それが代替データ ストリームとして認識されておらず、作成している参照にパス名で許可されていない特定の文字が含まれていることを意味します (許可されてい:ないその他の文字には、、、などが含まれます\\) /

試す:

start this_is_a.txt:ads.exe

于 2011-05-19T19:12:37.537 に答える