2015-09-04 58 views
0

我目前正在編寫一個商業程序在c#中,通過服務器檢查許可證密鑰是否有效。通過服務器和服務器操作的許可證檢查

我的問題是(沒有給出關於過程的任何細節);如果我的根域和IP地址(用於檢查服務器數據庫中的許可證密鑰)已添加到主機文件中,並且如果地址已添加,然後通過編程方式將它們從主機文件中刪除,檢查主機文件是否好主意? (或前綴#)

還有另一個檢查瓦特等。服務器運行?

我該如何避免服務器操作?

謝謝。

回答

0

您可以檢查C:\ Windows \ system32 \ drivers \ etc \ hosts的內容,但可以再次繞過該內容。通過設置一個自定義DNS服務器,它將爲激活服務器的DNS名稱返回本地網絡IP地址。一般而言,只有在密鑰有效或無效的情況下才會諮詢網站的許可算法總是會被繞過,因爲您可以隨時反編譯或反彙編程序以查看它正在等待什麼類型的響應,然後構建您自己的欺騙性激活服務器。特別要注意現在存在的反編譯器,例如「Telerik JustDecompile」適用於任何.NET程序集(這包括您的C#程序),它還可以反混淆可能使用的常見混淆器。這樣,可能很容易找出您的授權算法的工作原理。在我看來,公鑰密碼學應該是安全許可方案的良好基礎,例如在簽名的激活密鑰上檢查有效的RSA簽名;但是再一次,授權算法本身就是整個計算機科學的範疇。所以基本上我想說的是,你的授權算法應該是安全的,不應該依賴於檢測系統上運行的任何破解的激活服務器/調試器/任何東西。