2008-10-06 48 views
11

我希望在共享軟件的基礎上實現我的軟件,因此用戶在嘗試軟件的最長試用期(例如30天)時可以使用 。在購買時,我打算給用戶一個隨機生成的密鑰,當輸入 時再次啓用該軟件。在C++軟件中引入共享軟件的限制

我從來沒有在這條路線之前,所以任何意見或反饋或指向'標準'如何做到這一點的方式將不勝感激。

我不希望通過更改系統日期或類似的東西來欺騙用戶,儘管這可能值得考慮。道歉,如果這個話題出現過。

回答

5

關於隨機生成的密鑰,您將如何驗證密鑰是否合法,或者如果某個密鑰實際上是隨機的,則該密鑰是假的?看看文章「Implementing a Partial Serial Number Verification System」,因爲它非常好,並且易於在任何語言中實現。

關於時間測試,基本的解決方案是比較您的主要可執行文件創建時間和當前系統時間,並根據差異采取行動。這假設您的安裝程序將文件創建時間設置爲安裝時間,而不是保留您編譯它的時間! :)

+0

其實史蒂夫,是的,你是對的,我並不是指「隨機」鍵。 – AndyUK 2008-10-06 11:35:12

1

第一次啓動時,您可以將實際日期存儲在某處。
接下來的每一個開始,您查找存儲的日期,如果它存在您閱讀它,如果它是第一次啓動超過30天后,您停止該程序。

1

請參閱this library

說明:

將任何應用程序到時間限制的共享軟件。生成序列號以註冊它。一個函數庫提供了一個靈活的鎖定系統和固體加密。易於實施。支持VB,C++,Delphi,其他語言。

3

如果你的軟件真的很有用,你一定會在看到你的第一個訂單之前在P2P上發現破解的副本。無論您打算實施的許可證執行代碼有多複雜,都會發生這種情況。

也就是說,只是將首次運行日期存儲在某處(可能是註冊表,如果在Windows上)以及30天后拒絕啓動,或者只是打開提醒窗口。

不要擔心作弊者,無論發生什麼,他們都會找到解決方法。擔心你的誠實客戶,並儘量不要讓他們的生活變得更難。

Eric Sink已經撰寫了更多關於here (section 4)的文章。

3

如果當前日期魔術般少於安裝日期等,還要小心從根本上改變的時間。

解決此類型日期鎖定的一種方法是在安裝之前更改日期,以便將來可以使用多年。所以你應該檢查一下,今天的日期不會少於安裝日期。