正如您可能已經知道的,當代理(瀏覽器,郵件客戶端等)將文件保存到您的計算機時,會設置隔離標誌。這是您首次嘗試打開從互聯網下載的應用程序時出現的警告的責任。
所有這些信息都存儲起來,並且每個用戶都有完整的歷史記錄。
前4位數字是我期望在quarantine.h
中定義的一組標誌,它在Apple的開源代碼中似乎是copyfile.c中包含的專用標頭。
這些標誌代表狀態,例如文件是否被隔離。我們可以看到quarantine_get_flags
這個函數。
這裏只是一個拆解KEXT
注意XATTR輸出的第4個標誌與_sscanf格式(RBX, 「%04X;」)的片段==爲0x1)
這請致電quarantine_get_info
。
我們可以看到這裏的標誌表示該系統上的文件的各種狀態,與VFS是虛擬文件系統和vnode是一個文件的基本表示結構。
至於xattr
輸出的其餘部分,每個用戶都有一個本地的sqlite3
數據庫,用於記錄下載的每個項目。它的位置是
〜/庫/首選項/ com.apple.LaunchServices.QuarantineEventsV2
數據庫只有一個表LSQuarantineEvent
。您可以通過在終端
sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2 "select * from LSQuarantineEvent;"
使用sqlite3
命令如果過濾結果(grep的或替代),你就可以說彌補了xattr
後期的GUID匹配讀取所有數據輸出,您將看到有關該特定下載的所有信息,包括哪個代理負責下載文件,甚至包括從中檢索文件的URL。