2014-03-05 81 views
0

我編寫了一個註冊碼腳本,該應用程序在連接到互聯網的計算機上時非常有用。但是,如果應用程序位於保持脫機的計算機上,我希望腳本能夠正常工作。我希望你們能給我一些關於如何讓這個工作的想法。最好的解決辦法是註冊/驗證破解

腳本如何工作。

  1. 的用戶安裝在用戶點擊一個「指紋」按鈕來生成代碼是唯一的他的計算機中的應用
  2. 在開口屏幕(OS和硬件信息的組合)
  3. 用戶提交指紋
  4. 我有一個應用程序在我的端,我拿他的指紋,添加一個到期日期,並輸出一個密鑰文件是唯一的他的電腦,將導致應用程序無用,直到密鑰文件被更新。
  5. 要檢查到期日期,應用程序會在每次加載應用程序時執行服務器檢查。

所以我面臨的問題是,當計算機處於脫機狀態時,它將使用系統時間來檢查到期日期。那麼迄今爲止,沒有任何東西可以讓人們將他們的電腦保持在離線狀態,並且只是回滾系統時鐘。

其他然後強迫用戶在線加載應用程序,我似乎無法想象一個合理的系統檢查 - 其他然後服務器檢查,沒有必要這個應用程序在線。我知道棘手,我很難過。

任何幫助總是讚賞。

回答

1

首先,用戶總是會找到一種方法來打破您的脫機授權機制,並且經常會這樣。所以在做任何努力之前先考慮一下。

您需要更改許可機制。考慮到可能有用戶已經在舊機制上使用您的應用程序,這會困難得多。如果您只想保留新許可機制或爲現有用戶提供更新,則可能必須保留這兩種許可機制。

要實施脫機許可方案,您可以使用LicenseManager類。請注意,這絕不會像您目前的方法那樣有效。以下是我能想到的簡單方法:

  1. 當用戶安裝或第一次加載應用程序時生成一個ID。
  2. 沿着您選擇的算法安裝的日期進行加密。將其保存在註冊表或XML文件中。
  3. 每次用戶打開應用程序時,都會加密並保存上次使用的日期。
  4. 如果在任何時間點,當前日期都小於上次使用日期,請不要更新上次使用的日期。相反,請告訴用戶更新當前日期(確保照顧時區和夏令時)。

如果您的用戶很少使用您的應用程序,他們仍然可以使用它。

+0

我終於完成了它,我覺得它看起來不錯步驟:1.程序加載2.用戶必須連接到互聯網,以創建一個計算機和時間獨有的指紋4.用戶將代碼傳遞給我然後我生成一個單獨的代碼,以解鎖計算機,直到過期日期5.程序更新時間每次應用程序加載和退出,以確保時間前進6.應用程序也連接到互聯網,當它發現它更新時間7.任何時候,只要網絡驗證時間,就不會同步電腦鎖 – Nefariis

0

正如您所指出的,您不能相信客戶端提供準確的時間數據。如果不能訪問可信賴的時間源,則無法可靠地防止您僅使用過期日期描述的攻擊。

您可以強制使用可信的時間源(例如,將內部RTC用作種子的某些USB PRNG加密狗)來驗證系統時鐘,然後阻止應用程序運行。但是,對於低容量,這種加密狗通常每個單元成本高達60美元。

一個簡單的對策是記錄時間的應用程序已經打開,然後終止如果應用程序已經開了太久沒有在檢查IE:如果您預計在辦理入住手續頻率爲3個月,而且電腦說自上次檢入後3天內,但應用程序已經打開了45天,可以確定時鐘不正確。

即使如此,您的代碼仍在客戶端的不可信計算機上運行,​​並且可能會被破壞。任何DRM措施仍然只是模糊處理。