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