日期:2011-12-19  浏览次数:20517 次

大家都知道.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.可以考虑自己加一个加密方法
这个还没有试过