2011-07-02 73 views
0

我要創造我的程序一些簡單的拷貝保護,我想我的程序只能從原來的只讀光盤(CD/DVD)上運行,我的問題是:複製保護方案

  1. 是每個光學媒體有什麼獨特的編號,我可以檢查我的程序?
  2. 是否有一種簡單的方法(或C++代碼片段)以編程方式檢查我的程序是從光盤而不是可寫磁盤啓動的?
  3. 是否有任何複製保護方案,你知道我可以使用,但我更喜歡最終用戶不需要輸入任何序列號,需要互聯網訪問或使用一些USB加密狗。
+0

投票遷移到Programmers.SE,但我認爲它是重複的,結果是,它不值得,因爲任何人*想要*被破解*的任何東西都將被破解。 – Xeo

+2

我認爲CSS的源代碼是公開可用的,這是DVD內容的成功複製保護和收入保證機制。你應該實現它! –

+0

它不需要,我不想製作不可破解的軟件,它只是我們的客戶要求規範的一種形式。 – uray

回答

1

簡答:「不」,較長的答案,爲了能夠運行您的程序,計算機必須全部讀取。沒有簡單有效的方法可以將程序綁定到該物理磁盤。

+0

是的,當然需要閱讀,但我的程序不需要寫入磁盤,這就是爲什麼我需要檢查我的程序是否從只讀媒體運行 – uray

+0

是的,你可以做到這一點,但你可以不知道他們剛剛複製了CD,還是從ISO映像運行。沒有必要擔心這一點,大型遊戲公司要麼在用戶啓動程序(星際2,蒸汽等)時要求用戶進行身份驗證,要麼只是不打擾。 – IanNorton

2

不可以。您沒有指定操作系統,但我知道沒有常用操作系統將虛擬內存中的代碼狀態與其啓動的介質聯繫起來。一旦你的程序正在運行,「從哪裏啓動」的整個概念通常都沒有明確定義。

您標記了'dongle'。可能需要USB密鑰或某些特定媒體,但您不能保證從其中啓動代碼。

+2

哇,沒有辦法檢測CD是否存在?男人somone應該告訴在[SecureRom]的傢伙(http://en.wikipedia.org/wiki/SecuROM) –

+0

我不想使用加密狗,所以有任何有關DVD的信息,如卷ID,媒體序列我可以檢查? – uray

+0

@scott:檢測CD是否存在的機制會很有用,知道如何在C++中做到這一點,或者是否有任何庫? – uray