2014-02-24 63 views
0

我在我的軟件中包含了一個定時炸彈,但遇到了問題。我的軟件按以下方式工作 - 如果網絡可用,請連接我的服務器並提供有效的許可證密鑰(如果生成了有效密鑰,則生成一個許可證文件,該文件存儲過期日期和上次運行日期)以及網絡是不可用的(也許一個用戶不能訪問互聯網),然後他們給我們發送一個代碼(這是基於某個機器的唯一標識符),並且許可證文件將被髮回給他們。我遇到的問題是許可證文件可能會被複制並在軟件過期時粘貼到相應的目錄中 - 正在刷新許可證(假設機器未連接到互聯網,因爲我可以從ntp服務器,並且機器時間設置爲過去的軟件本來有效的某個日期)。我怎樣才能解決這個問題?許可證文件問題

謝謝

+0

如果許可證包含到期,副本不應該的問題,如果它包含了相同的到期日與其他(跟蹤** **東西像上次運行是有問題的,因爲他們只需要每次都重新設置日期他們運行它 - 或找到並「修復」比較值)。在不能使用NTP的情況下,有幾種方法可以從Windows近似日期。你也應該開始接受/ upvoting你得到的答案。 – Plutonix

+0

跟蹤上次運行日期用於確保用戶在運行軟件時不會設置日期。你會如何建議從窗口接近日期? – thehoten

+0

如果他們在運行應用程序之前設置了時鐘,那麼上次運行日期不會確保 - 除了誠實的用戶。寫入許可證文件後,由於您正在更新,因此更難以使用CRC或簽名來「鎖定」它。你真的只需要比較嵌入式到期日和你可以得到的最佳當前日期。 – Plutonix

回答

1

那麼每個解決方案都只是一個解決方法。 作爲老年StackOverflow上提到的 - 問題herehere有兩種方法,我會考慮:

  1. 你可以創建一個包含一個日期,檢查日誌文件或(加密)的註冊表鍵,並會增加日期爲長期以來,它的一切都是合法的(系統日期不比「上次運行時間」早)並且有效(許可證有效)。
  2. 您可以閱讀Windows日誌並搜索時間更改並額外使用日期檢查日誌。

正如你所看到的:兩者都有一些缺陷,足夠的意志力可以克服。