关于.net的代码安全性

发表于:2007-06-30来源:作者:点击数: 标签:
大家都知道 .net 在编译后得到IL中间代码,但使用ILDASM可以很容易地反汇编成一个文本文件,这个文本文件比较容易看懂,还可以修改后使用ILASM重新编译成EXE文件。 这个问题怎么解决,我想是广大.net爱好者关心的事情 对于不同的场合有不同的 解决方案 : 1.web
大家都知道.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.可以考虑自己加一个加密方法
这个还没有试过

原文转自:http://www.ltesting.net