有着微软人性化的开发工具VISUAL STUDIO和MSDN详尽的帮助,.NET 的开发效率的确高。
但是由于.NET同JAVA一样都采用中间语言、虚拟机/SDK等诸多特质,而且高等语言的类库编码规范,MSIL微软中间语言可读性很高,所以代码很容易就能被反编译,或许这是一种“另类的开源”。
到目前为止.NET开发的桌面软件或者说共享软件真的很少,大多都是一些管理系统、ERP、等一些数据库软件,这些软件一般结构复杂,采用了架构或者平台等一些机制,而且一个功能都可以写N多个类,即使被反编译了别人也要花很多时间去研究,而对小型的桌面软件来说反编译简直是太恐怖了,所以别人宁愿用VB6去写一个共享软件也不会用.NET。
在这个情况下出现了一些代码保护工具,我小小的研究了一下。
1. Dotfuscator Community Edition //VS2005自带试用版,混淆器
只使用VS2005自带的试用版,基本就是把程序类、方法、变量等名称混淆了,个别混淆得不好的还是可以看得懂代码方法内容,而且很多程序不能混淆,我一个程序“资源”里面有连接字符就不能混淆。
2. XeonCode //反编译器、混淆器、打包脱离.NET发行包运行
XeonCode Fox可以反编译exe、dll查看代码,
XeonCode Studio可以混淆并发布文件,混淆的效果比Dotfuscator好,可以加入花代码,也可以打包成native代码,这样根本反编译不了了。
XeonCode Postbuild可以混淆加密、优化,打包文件,打包文件可以给.NET发行包打一个小包,(可以选择打成一个文件还是多个文件)可以脱离.NET发行包运行程序!(这个功能比较酷)
3. MaxtoCode //加密、混淆
这个东西是国人的产品,好像是武汉的,据说很强可以加密代码,反编译后看见代码里面的程序都是空,也可以混淆代码。(给他们发了试用邮件,没发给我试用版,我没使用。)
以上的代码保护软件均要收费的,想要保护代码、保护知识产权的朋友可以购买正式版,国外的比较贵,国内的好一点,实在没钱可以自己考虑自己做个简单名称的混淆、加密,或者增加代码的复杂程度也可以起到一定的保护。