C# I';我正在发布我的软件。我必须使用.net模糊处理程序吗?

C# I';我正在发布我的软件。我必须使用.net模糊处理程序吗?,c#,.net,obfuscation,C#,.net,Obfuscation,我计划不久后发布我的免费封闭源码软件的alpha版本(这是一个用C#编写的创作工具),我必须使用.net模糊处理程序吗 一般来说,我不希望人们毫不费力地浏览代码,最重要的是修改代码 (恐怕,目前我还没有准备好将其开源。) 如果我真的需要使用模糊处理程序,你能推荐一种“足够好”的,最好与MS Visual Studio集成的(在发布版本时自动模糊处理)模糊处理程序吗?我不介意。任何一个将要经历这么多麻烦的人都会找到一种方法,而你的其他用户只是想要一些有效的东西,而不关心或想知道代码是什么样子 也就

我计划不久后发布我的免费封闭源码软件的alpha版本(这是一个用C#编写的创作工具),我必须使用.net模糊处理程序吗

一般来说,我不希望人们毫不费力地浏览代码,最重要的是修改代码

(恐怕,目前我还没有准备好将其开源。)


如果我真的需要使用模糊处理程序,你能推荐一种“足够好”的,最好与MS Visual Studio集成的(在发布版本时自动模糊处理)模糊处理程序吗?

我不介意。任何一个将要经历这么多麻烦的人都会找到一种方法,而你的其他用户只是想要一些有效的东西,而不关心或想知道代码是什么样子


也就是说,dotfuscator的社区版本非常有限。我听说专业版不错,但还没玩过

如果你混淆了你的代码,那么你会放慢速度,可能会劝阻任何试图对其进行反向工程的人


如果你不这样做,那么你最好把它开源

这是你的选择-你没有什么损失混淆它


现在VisualStudio附带了Dotfuscator Community Edition,它将完成一项基本工作(当然,如果你想了解所有的细节,你需要付费)-或者如果你搜索,有许多免费/共享软件选项。

是的,如果你不想让别人看到你的代码,你需要使用模糊器


可以很好地完成这项工作,还可以通过MSBuild与Visual Studio集成。

如果它是免费软件,为什么不从一开始就开源呢?@Mentalikryst-并非所有开发人员都认同所有代码都应该对所有人开放的社会主义思想。@Josh Einstein open source!=不花钱。开源是指无论您是否付费,都有权查看应用程序的源代码。@wawa-我知道,但也是免费的!=开源。我已经发布了几个免费的应用程序,我并不觉得有义务将源代码发布到这些应用程序中。@jbeuler即使没有混淆,修改源代码也不是一件容易的事。您必须重新创建整个应用程序。关于对有能力的模糊处理者的建议,这里已经有几个问题了,所以请确切地问一下:“如果你不这样做,那么你最好将其开源。”这是否意味着使用合适的工具将.net程序集分解成人类可读的源代码(C#或VisualBasic)几乎毫不费力?这是否意味着进行更改相当容易?@jbeuler-有一个名为.Net Reflector的免费工具,它使任何人都可以轻松地反编译您的源代码。混淆只会使读取源代码变得更困难,但并非不可能重新创建。是的。刚刚用redgate的反射器检查了我的组件。你一定要用模糊器。除此之外,它几乎是开源的。别忘了Reflector插件,它们使修改编译的DLL成为可能-模糊处理会有所帮助,但您可能还想对它们进行强命名。那么,谁是模糊处理程序的典型用户呢?包含某种“商业秘密”的软件?包含处理国家识别号之类的算法的软件?我没有那种敏感的东西。我只是不希望我的软件被修改和修补。老实说,如果你的代码包含了一些WoeBang-Oh,我的魔兽魔兽世界,那是一种新的和甜蜜的方式,我会考虑至少在非托管代码中实现它的一部分,使反编译变得更加困难。CIL本质上易于拆卸。混淆器只是增加了难度。而且,回答你的另一个问题,任何人都不太可能试图发布你的应用程序的修改版本。专注于构建应用程序。如果这在将来成为一个问题,那么解决它。我同意Jason所说的-使用模糊处理不会有任何损失。此外,访问源代码确实非常轻松,如果我不使用任何模糊处理,它看起来非常接近原始代码。即使使用dotfuscator community edition进行基本的模糊处理,也至少让我觉得我没有将源代码与可执行文件一起发布。这当然是你的特权,我同意你的观点。我当然不想泄露我的消息来源。由于能够对几个应用程序进行反向工程(法律上——我的客户在前开发人员失去理智时丢失了源代码),我可以说,如果使用了一些模糊器,这将非常困难——尽管并非不可能。这取决于你的应用程序和市场是否值得你这么做。