大家都知道.net在編譯後得到IL中間代碼,但使用ILDASM可以很容易地反彙編成一個文本文件,這個文本文件比較容易看懂,還可以修改後使用ILASM重新編譯成EXE文件。
這個問題怎麼解決,我想是廣大.net愛好者關心的事情
對於不同的場合有不同的解決方案:
1.webservice或者remote方式調用
將核心代碼和數據放到你的服務器上
2.Jeffrey Richter說:如果有非常決定性的代碼的話,可以考慮用Native Code 的DLL+Interop,如果你認為Native Code就100%安全的話。
3.在程序裡加上簽名即是在Assembly裡加上你的數字證書。那樣當.Net應用被加載時,它的安全體系會檢查這個簽名的,這個簽名可以保證你的代碼不被改動,如果改變過的代碼是不能執行的
它保證了「這個程序一定是由某某公司開發的,且未被篡改」,但是無法保證這個程序是安全的,你是否接受程序取決於你對該公司的信任。
無法實現你需要的安全,可以copy走 再
4.使用混淆器,將本來的代碼改成一堆沒有任何意義的長字符,很難看懂
象java的一樣,一串ooo0o0o00o0o,^_^
5.可以考慮自己加一個加密方法
這個還沒有試過
|
|