我想知道是否可以编译我的 C# 项目,使其可以作为参考包含在类库项目中,但是如果我分发它,就不可能对我的应用程序进行逆向工程,比如保留所有功能和字段,但没有任何功能代码。
提前致谢!
删除所有功能代码是不可能的,因为没有它,就没有任何东西可以运行!
默认情况下,C# 编译器将生成 IL 代码(.Net 的高级“汇编语言”),其中包括方法和属性名称、参数名称等,这使得诸如Reflector
逆向工程等工具非常容易将代码返回到C#。
但是,可以使用称为“混淆器”的工具。这些将您的程序并将所有名称更改为单个字母,并重新组织代码(不改变其含义)以使逆向工程变得更加困难。
其中最常见的是Dotfuscator
Visual Studio 附带的免费版本。
这是一篇关于混淆的 Microsoft 文章:http: //msdn.microsoft.com/en-us/magazine/cc164058.aspx
这是混淆器的简短列表:http ://en.wikipedia.org/wiki/List_of_obfuscators_for_.NET
您正在寻找“混淆器”。有几个,有些是免费的,有些不是,具有或多或少的功能。例如,有一个带有 Visual Studio 的 Dotfuscator 社区版。