2011年9月6日 星期二

Zone Identifier

我們用檔案總管從網芳直接解壓 zip 檔到本機磁碟中, 接著執行剛解壓到本機磁碟的檔案, 會出現 Open File - Security Warning 這個對話框, 咦? 為什麼 Windows 知道這檔案可能有安全顧慮呢? 原來是 Windows 將此檔案的來源記錄在檔案的 alternate data stream(ADS), 這個 NTFS 才有的資料流中, 以檔案的來源為例, 我們會看到在 ADS 中存放了一個檔案, 名為 zone.identifier, 其內容如下(ZoneId 為 3, 表示檔案的來源是 Internet):
[ZoneTransfer]
ZoneId=3
如果不想在執行這類檔案時, 都跳出煩人的對話框, 我們可以選用以下幾種方法:
  • 下載免費的 ZoneIDTrimmer 來砍 zone.identifier, 或是
  • 將檔案複製到 FATxx 檔案系統中, 再複製回來, 或是
  • 編輯該檔案於 ADS 中的 zone.identifier 檔, 將 ZoneId 改為 0 就可以了.
  • > dir /r
    2011/11/11  上午 00:00            26,624 z.exe
                                           4 z.exe:x1.txt:$DATA
                                          26 z.exe:zone.identifier:$DATA
    > notepad x.exe:zone.identifier
    
  • 不要從網芳執行解壓動作, 先複製整個 zip 檔到本機, 再從本機解壓縮, 那麼解開的檔案就不會有 zone.identifier 了.


更多資訊:
How Windows Knows that a File Is from the Internet: Manipulating Alternate Data Streams
Alternate Data Streams (ADS) 介紹
ZoneIDTrimmer
Removing Security from Downloaded PowerShell Scripts with Alternative Data Streams
Stream Explorer

沒有留言:

張貼留言