用C#编写的DLL后,想能防止被反编译,网上有人说利用.NET自带的混淆器(dotfuscator)防止被反编译,但是我进行混淆后,再加载到应用程序中引用,结果发现混淆后的dll中的那些属性、方法名称全变成我自己都不认识的数字、字母。我该如何做才能实现不仅能够有效防止反编译,而且还能在程序中引用时能正常显示属性、方法名称等?谢谢指教!!

解决方案 »

  1.   

    简单的方法是将所有的exe,dll放在一起混淆,Dotfuscator可以把dll之间相互引用的部分同步修改。如果你提供dll供别人调用。那么你就要把expose的类和方法excluded.
    1.打开dotfuscator
    2.在input里指明要混淆的dll
    3.进入Rename,在Exclude里面选中不需要混淆的类和方法。
      

  2.   

    dll和可执行文件一起混淆,再发布
    或只混淆DLL里的私有类和变量,不要重命名公开方法和属性,再调用使用
    参考
      

  3.   

    没有绝对好的方法。你混淆了DLL,别人可以反混淆DLL。
      

  4.   

    只混淆private和protected的方法和属性
    所以尽量将核心代码写在private 方法里
    public 方法负责调用
      

  5.   

    这儿讲的非常全了~
    .NET 产品版权保护方案