SmartScreen 如何識別「來自網路」的檔案?揭秘 Zone.Identifier 替代資料流
Windows 8 將 SmartScreen 整合至系統層級:執行從網路下載的執行檔時,會彈出「Windows 保護您的電腦」警告。這背後的機制是 NTFS 替代資料流(Alternate Data Stream, ADS)。
現象觀察
- 右鍵下載檔案 → 「內容」最下方出現 「安全性:這個檔案來自另一台電腦,為了保護這台電腦,可能會被封鎖」,附「解除封鎖」按鈕。
底層原理:Zone.Identifier 替代資料流
- NTFS 允許檔案擁有多個資料流,主資料流為檔案本體,替代資料流存放中繼資料。
- IE/Edge/Chrome 下載檔案時,會在檔案建立
:Zone.Identifier 替代資料流,內容為:
[ZoneTransfer]
ZoneId=3
- ZoneId 對應 IE 區域:1=信任網站、2=區域內部網路、3=網際網路、4=受限制網站。ZoneId=3 觸發 SmartScreen 警告;ZoneId=4 直接禁止執行。
查看與移除方法
- 命令列查看:
more < 檔名:Zone.Identifier
- 移除:檔案內容 → 「解除封鎖」按鈕,或用
streams.exe -d 檔名(Sysinternals 工具)刪除替代資料流。
延伸應用:同樣機制用於 Office 文件的「受保護檢視」、附件管理器的高風險副檔名封鎖等。