首先,我了解幾乎所有應用程序都可以被破解(尤其是用C#編寫)。我在這里的問題是使其更難破解。假設用戶已將許可證文件保存在Application.StartupPath下,所有用戶都可以讀取。然后,每次啟動應用程序時,它將檢查是否可以找到并驗證許可證文件。如果應用程序可以找到并驗證,我們讓用戶繼續(xù)使用全部功能。如果沒有,我們會提示一個消息框,顯示“未經許可,請繼續(xù)使用試用版,功能有限?!蔽业膯栴}是,如果我是黑客/黑客,那么我將嘗試繞過或繞過許可檢查,而不是破解許可證文件,因為如果使用RSA簽名,則破解許可證文件非常困難。那么我們應該把許可證檢查放在哪里?PS:而且,如果我放一個全局變量IsLicensed(true / false)來限制功能是否安全?黑客更改IsLicensed = true容易嗎?
3 回答

三國紛爭
TA貢獻1804條經驗 獲得超7個贊
軟件許可的第一定律:一旦允許將其安裝在不受控制的計算機上,就無法控制軟件。
如果要控制代碼,則需要使其成為Web服務,并僅向最終用戶提供與該Web服務接口的瘦客戶端。
在許多情況下,這是不可接受的,因為即使用戶沒有Internet連接,他們也希望能夠使用其軟件。
在幾乎所有情況下,您都應專注于使用戶體驗更好,而所有形式的復制保護都會使它變得更糟。一旦達到了從warez站點下載并通過幾次病毒掃描運行的體驗比為合法版本進行許可證設置更好的體驗,您就迷路了。

白板的微信
TA貢獻1883條經驗 獲得超3個贊
您可以對代碼進行混淆處理(使其更難以反編譯/使用其上的反射器),但是只要有足夠的精力和知識,它就會被破壞,之后很容易更改程序集的字節(jié)碼,從而繞開了許可證檢查。同樣,您可以投資這筆錢以使您可以對裝配進行簽名,這將使更換裝配本身變得更加困難,但是只要有足夠的精力(不僅僅是破壞混淆),這也可以避免。
您的目標不應該是使許可證流程堅不可摧,而應讓您的軟件本身值得購買。這是一個更好的保護。餅干(只有他們,黑客才是完全不同的人,更多內容請參閱本文)不會受到阻礙,但是隨著軟件的值得,更多的人會購買它。
- 3 回答
- 0 關注
- 487 瀏覽
添加回答
舉報
0/150
提交
取消