1. トップ
  2. 新着ニュース
  3. IT
  4. パソコン

窓辺の小石 第175回 Stream form Outer Network

マイナビニュース / 2024年7月19日 17時43分

Get-Item * -Stream "Zone.Identifier" | out-null

とすることで、エラーメッセージからカレントディレクトリにあるZone.Identifierを含まないファイルを知ることができる。

代替データストリームの内容は、

Get-Content ファイルパス -Stream ストリーム名

とすることで表示できる。

WSLのローカルファイルシステムに代替データストリームのあるファイルをコピーすると、代替データストリームが別ファイルとしてコピーされてしまう。代替という名前ではあるが、ファイル内容には変わりないため、勝手に落としてしまうようなことは行われない。しかし、Linuxから扱うときには、邪魔になることがある。もちろん、Linux側で削除してしまうことができるが、Win32側ファイルシステム(NTFS)にあるなら、PowerShellで、

remove-item ファイルパス -stream *

とすることで、代替データストリームを全て削除できる。ファイル名にはワイルドカードが利用できる。

現在ではほとんど使われていないZone.Identifierだが、Webブラウザは、ダウンロード時に代替データストリームを付加するようになっている。Chromeのソースコードにあるcomponents/services/quarantine/quarantine_win.ccや、Firefoxのソースコードのtoolkit/components/downloads/DownloadIntegration.sys.mjsなどでダウンロード時に代替データストリームZone.Identifierを書き込んでいる。

これを見る限り、現在では、Zone.Identifierには、1つのセクション名“[ZoneTransfer]”と以下の3つの要素しか書き込まれていないようだ。

ZoneId ダウンロードしたゾーンのID
ReferrerUrl ダウンロードしたサイトのURL(リファラー)
HostUrl ダウンロードリンク

かつては、他の要素も使われていたようだが、前記のソースコードを見る限り、この3つの要素しか使われていない。ReferrerURLは、HTTPヘッダのリファラーで、以前はダウンロードリンクのあったページのURLだったが、プライバシー対策などのため、いまでは、単にサイトのトップページのURLになっている。これに対してHostURLには、ダウンロードリンクが記述されている。代替データストリームなので、ファイルを実行することなく情報を得られる。なお、ZoneIdは、インターネットを表す3以上の数値となっている。0~2は、ローカルやイントラネットを表し、Windows SmartScreenの対象ではなかったため、Zone.Identifierは付かない。Windows SmartScreenが使われなくなったのは、IEが使っていたゾーンによるセキュリティ管理が廃止されたからでもある。

ダウンロードしたファイルは残っているが、どこからダウンロードしてきたのか、setup.exeじゃ何のプログラムだかわからない、といったとき、この情報を手掛かりにすることができる。

今回のタイトルネタは、1957年の映画「Plan 9 from Outer Space」。内容はともかく、何といってもタイトルが秀逸。そのため、ベル研のオペレーティングシステムの名前など、様々な「ネタ」になった映画。
(塩田紳二)



この記事に関連するニュース

トピックスRSS

ランキング

記事ミッション中・・・

10秒滞在

記事にリアクションする

記事ミッション中・・・

10秒滞在

記事にリアクションする

デイリー: 参加する
ウィークリー: 参加する
マンスリー: 参加する
10秒滞在

記事にリアクションする

次の記事を探す

エラーが発生しました

ページを再読み込みして
ください