2013-05-02 112 views
1

我有一個文件保存在某個硬盤上,我想,以確保它是唯一的由一個特定的程序訪問,而不是防止操作系統文件的多個副本X

  • 後盾的Time Machine
  • 通過OS X 10.7的版本功能複製
  • 以任何其他方式由系統複製 - 除非用戶明確這樣做,即通過將其複製到其他目錄。

是否有可能在Objective-C或C中以編程方式執行此操作?

回答

2

據我所知,使用CSBackupSetItemExcluded就足夠了 - 您需要鏈接到CoreServices框架才能訪問它。這需要處理Time Machine和版本。我不知道系統會自動複製文件,除非用戶明確地完成。

+0

謝謝,我認爲現在已經夠好了。 – fabian789 2013-05-03 09:28:46

2

不可能絕對確定只有特定程序可以訪問用戶計算機上的本地文件。這是因爲如果用戶足夠精明,所有可能的方法都可以被繞過。

這樣做的一個常見(雖然很複雜)的方法是用一個由Web服務器提供的密鑰加密文件。爲了獲取密鑰並解鎖文件,程序必須聯繫Web服務器進行身份驗證,然後使用密鑰解密文件。如果您經常更改密鑰並將其綁定到用戶,攻擊者很難繞過這一點。該攻擊包括在文件處於內存未加密狀態時轉儲進程內存,然後以這種方式訪問​​它。這艱難但可行。這種方法可以阻止所有最複雜的攻擊者。這種方式實現了許多PDF和其他文件的DRM(Amazon爲每個設備指定一個密鑰並進行安裝,但其他方面都是一樣的)。

+1

謝謝你的回答。不幸的是,這不是一種可能性,因爲我想用一個任意文件來做到這一點 - 我會因此必須聯繫任何程序的每一位作者:) – fabian789 2013-05-03 09:28:28