2014-03-28 93 views
0

我試圖用這種方式來保護自己的資源: http://aptogo.co.uk/2010/07/protecting-resources/保護а資源的視頻文件

所有這些都將是除我的視頻文件好。事情是,當我解密他們時,我得到NSData對象,我無法加載MPMoviePlayerViewController

關於剩餘資源。它們看起來沒有用處,並且包含非閱讀數據。

有沒有一種方法可以保護我的視頻文件,這些文件可以通過iFunBox這樣的應用程序從項目中收到?

回答

1

該方法即將完成的任務是防止人們直接複製資源並使用它們。捕獲密鑰並執行解密並不困難。

我不認爲你可以將原始數據輸入到標準的播放器控件中。但是,您可以使用較低級別的核心視頻API,這遠遠超出了簡單的SO問題/答案。

由於您使用的方法只是阻止方便的盜版,您的一個選擇是將電影文件解密爲文件系統上的實際電影文件。這意味着電影的解密版本將駐留在文件系統上,這極大地降低了您的最低安全性。

但是,您可以在電影控制器接管後立即將其刪除。由於您可能不希望該文件存在,因此您可以在影片控制器接管後取消鏈接(即刪除)。

作爲一名Obj-C程序員,您熟悉引用計數的對象。文件系統中的文件是引用計數的(儘管有些不同)。

實際文件保留在文件系統上,直到沒有對它的引用爲止。文件系統中的名稱只不過是文件系統中控制塊的鏈接和引用計數。

打開文件時,打開的文件描述符構成對實際文件的另一個引用。因此,只要文件描述符保持打開狀態,文件就會保留在磁盤上。

但是,由於文件系統鏈接(即文件路徑)消失了,所以對於單純的凡人來說發現起來有點困難。

只要電影播放器​​控制器保持文件打開,內容就會保留在文件系統中,並且它應該可以工作。如果出於某種原因,電影控制器關閉了文件,或者想根據文件名而不是文件描述符來執行某些操作,則可能會出現問題。

試一下,看看。

0

我建議你(重新)從NSData創建文件,然後播放它。無論如何,如果有人使應用程序的內存轉儲運行抓住解密文件的機會是相當不錯的。