2012-04-01 71 views
-2

我想實現試用30天的功能。如何實現30天試用?

我使用了註冊表項,但很容易被破解。

有沒有什麼好的想法?

+2

各種包括http://stackoverflow.com/questions/1525378/how-can-i-make-my-product-as-a-trial-version-for-30-days – blueshift 2012-04-01 14:29:21

回答

1

我想現在最安全的方式是使用web服務。但請記住,如果您的應用程序值得,它將被破解,無論您花費多少時間來保護它。

這個想法很簡單:如果沒有特定的密鑰,應用程序根本無法工作。當密鑰不存在時,它會嘗試聯繫web服務。當它響應時,應用程序會收到一個「臨時令牌」(存儲「激活」的時間戳)。

它將使用此標記來計算剩餘的天數。

如果您刪除令牌,應用程序認爲這是您第一次運行它並嘗試連接到web服務。應用程序爲新標記發送的請求將包含第一次相同的信息,並且不會生成標記:應用程序將顯示有關您的試用期到期的消息。

另一方面,你可以嘗試破解令牌,但它應該不是那麼微不足道(即使它當然是可能的)。

然後將餅乾找到一種方法來生成令牌(autoproduced或web服務發送給它不同的應用程序給定的憑據),或者只是跳過已經計算日期的控制(例如if data expired then expired else ok將成爲if data expired then ok else ok ...)

同樣的想法可以在沒有webservice的情況下使用:當您安裝程序時,密鑰將被添加。如果您刪除它,該程序將無法工作。密鑰的內容被加密,所以你不應該輕易地用另一個時間戳生成密鑰。

其基本概念是密鑰的內容必須加密並且密鑰必須存在才能使程序正常工作。那麼,誰有興趣超越試用期,至少應該在應用程序中破解加密算法。