2011-03-20 34 views
6

我想分發我的軟件(.net窗口應用程序)與30天的評估版本,而不考慮系統時間。發佈任何軟件評估版的最佳方式?

我不想使用互聯網獲取時間,因爲軟件將在沒有互聯網的機器上運行。

有人可以建議我如何在不使用系統時間和互聯網的情況下分發我的軟件?

也有可能限制它可以安裝的計算機數量?

+0

你正在尋找一個現有的軟件或重新發明輪子? – Snowbear 2011-03-20 11:32:08

回答

0

這不是軟件許可的經典限制嗎?我不知道如何在不考慮系統時間的情況下限制評估,除非與您省略的應用程序有某些與日期相關的方面。

至於限制計算機數量:

我不知道,如果微軟將讓你這樣做,但如果顧客進入他們的微軟的激活密鑰,你可以創建一個系統,然後你給回某種特定於應用程序的應用程序密鑰。

+0

這無濟於事,因爲使用虛擬機很容易繞過任何本地化的許可方案。如果軟件要綁定到特定的Windows安裝,而不是激活密鑰本身,則可以將其用作一個(多個)源的哈希函數。然後,您可以使用此散列加密代碼,並在運行時根據需要使用現場計算的散列對其進行解密。 – datenwolf 2011-03-20 12:09:28

+0

請注意,機器綁定通常是可破解的,並且可能會在用戶更改機器參數時產生問題。因此,使用Windows的版本,MAC地址,CPU序列號等來創建一個散列是很好的,直到用戶得到一個錯誤的否定,然後他們不高興。 – 2011-03-25 20:15:02

3

沒有外部支持,這是不可能

規避用戶只需將您的軟件安裝在虛擬機中,該虛擬機配置爲寫入時複製模式(因此虛擬機中的所有更改都將轉到單獨的磁盤映像),並且每次啓動虛擬機時系統時鐘將被設置爲特定日期。這個虛擬機鏡像可以被傳輸到任意數量的計算機上,並且虛擬機系統時鐘總是從同一日期開始。同樣,對於操作系統的任何運行時效果,如安裝的運行時計數器,都將在虛擬機的每次新啓動時重置。

有效限制軟件使用的唯一方法是將其綁定到某個外部數據源。無論是通過互聯網,還是通過帶有自己的時鐘的硬件加密狗運送它;該加密狗也可以是一些小型的網絡設備,發放許可證,因此單個加密狗可以許可許多計算機。

然而,你不能用軟件來做到這一點。

1

因爲用戶可以操縱它,所以使用日期並不安全。 但另一種方法是限制應用程序可以啓動的次數。使用可以存儲在文件或註冊表中的計數器。這個計數器應該被加密。如果計數器值太大,丟失或無效(您可以使用校驗和),則評估期結束。

0

你絕對可以通過外部授權系統來做到這一點(免責聲明:我爲一個這樣的系統的製造商工作)。它可以是無法破解的,但它不是免費的。

如果你想推出自己的,你可以存儲加密的日期和時間函數 - 也許在註冊表中 - 然後將該日期與sys日期/時間進行比較。如果sys日期晚於存儲日期,則在應用程序啓動時將存儲的日期值設置爲正向。如果系統日期早於存儲日期,請考慮鎖定應用程序,直到用戶與您聯繫,以解釋爲什麼他們將系統日期設置回來。這在許多層面上都不是萬無一失的,但它比僅僅查看系統日期要好。另一種方法是對已知的認證時間服務器進行http呼叫,並將系統日期和安裝日期與該服務器進行比較。