2012-06-19 77 views
1

我想,限制使用任何exe文件迭代的具體數量的使用,可以說10後是限制到達用戶將不能運行exe文件,或在第11次運行exe文件時,他/她將會收到一條消息「Exceeeded Trial Run」。如何限制C#應用程序

這是非常有可能在C,這樣的 - http://www.gidforums.com/t-22362.html

在訪問PE頭的一個例子是在這裏 - http://code.cheesydesign.com/?p=572,但它會檢查timeststamp,而我希望出現的應用程序已經啓動的數。

我不想更改註冊表。

歡迎您提出任何建議。

+5

切線評論在這裏。通過使用次數進行限制(即應用程序打開)非常煩人。爲什麼沒有時間限制? –

回答

1

除非你是否應該這樣做或不存在的評論,除了不修改註冊表唯一的其他選擇是保存的東西到一個文件加密的形式。安裝應用程序或exe將創建該文件,每次啓動應用程序將解密,更新,加密文件。但即使如此,這是用戶改變事物的主題,而不需要它。通過默默無聞的安全始終是一種痛苦。

1

,以防止用戶超過試運行應發給他們的註冊代碼(GUID將工作做好),然後跟蹤剩餘審判的一些數量最可靠的方法運行自己的數據庫服務器上。猜測另一個用戶的GUID是非常困難的,並且他們不可能破解剩下的試驗(短缺入侵到你的服務器)。

當應用程序運行時,它可以簡單地打了一個小的web服務,將返回軟件的狀態。如果Web服務無法到達,那麼應用程序會要求用戶連接到互聯網並重試。

簡而言之,沒有太多的選項不容易被輕易入侵。即使你加密了剩下的試用版本,所有用戶需要做的就是將文件複製到其他地方,然後當它們達到極限時刪除原始文件並將其替換爲副本......重複無限次。

關於這種模式的好處是,當用戶購買完整版本,所有你需要做的是更新數據庫,並授予他們完全訪問權限。

如果您想讓完全支付的用戶在不需要連接到互聯網的情況下繼續使用該軟件,那麼在支付軟件後首次連接到Web服務器時可以在某處存儲密鑰文件,以確認用戶的付費訂閱。您甚至可以根據用戶的註冊號創建一個散列,以確保一個用戶不能使用另一個用戶的密鑰文件。

如果訂閱年度,然後付費用戶的應用程序可能會重新查詢服務器每當因特網連接可用,並重新檢查,以確保他們的註冊仍然有效。或者你的密鑰文件可能包含一些加密日期,在該日期它將不再有效。

編輯:基於日期的試運行將更容易實現。您可以提供加密日期的密鑰文件。由於日期不會改變,所以用戶將很難竊取密鑰文件。即使他們借了或偷了別人的東西,他們也只會在這之前得到額外的一兩個星期(取決於您的試用期),將會失效。不同之處在於基於日期的密鑰文件是靜態的,因此很難欺騙。

現在,另一種選擇是結合這兩種方法。您可以在同一密鑰文件中使用加密日期進行倒數計時。這將確保即使用戶試圖複製/替換密鑰文件,審判仍將最終結束(可能10次/ 1個月,以先達到者爲準)。