在我看来模糊处理的是一个想法,落的地方中的"安全通过默默无闻"或"假意义上的保护"营地。保护知识产权,有的版权;防止安全问题被发现,那里的 固定的那些问题.总之,我认为它作为一个技术解决社会问题。 这些几乎从来没有工作。

然而,我似乎是唯一一个在我们的开发团队这样的感觉,所以我无论是错误的,或只是需要说服力的论据。我们的产品的用途。网、和一个开发的建议。净反应器(其中,顺便说一句, 建议在此所线以及).

.净反应堆完全停止任何反编译通过混合的任何纯粹的。净组(C#编写的,VB.NET,Delphi.NET,J#集...)与当地的机器码。

所以,基本上,你把所有的优点码走一走?

有没有好 工程 利益混淆?

有帮助吗?

解决方案

我发布了一个问题,这可能会帮助你,因为它讨论了一些问题:应该-我是担心-对-混淆-我-net码

其他提示

你要用于工程的原因,因此这不是严格地说回答这个问题。但我认为这是一个有效的澄清。

就像你说的,混淆是旨在解决社会问题。社会和(或企业)的问题,与不同的技术,很少有一个完整的解决方案。只有程度的成功的解决或最大程度减少的问题。

在这种情况下,混淆将会提高的障碍有人反编译和偷你的代码。它会阻止随意攻击,并通过惯性,可能会让你的知识产权不太可能被窃取。使一个无聊的比喻,防盗系统不会阻止你的车被盗,但它将使它不太可能。

当然有一个成本,在可维护性、(可能的),在性能和最重要的是使它更难用户准确的提交错误的报告。

作为GateKiller所述,混淆不会阻止一个确定的团队从反编译,但(这取决于你的产品)如何确定一个团队,可能是攻击你吗?

所以,这不是一个技术解决社会问题,这是一个技术决定,其中增加了一个影响到一个复杂的社会结构。

如果一个大团队的程序真的很想得到你的源代码和有时间、金钱和努力,那么它们将是成功的。

混淆,因此,应当阻止人们谁没有时间、金钱和努力,以获得您的来源、路人,你可能打电话给他们。

如果你坚持纯粹的管理的码模糊处理的,你可以刮了相当多的一个大大小和模糊的类/职能的名字(倒塌到的单字母)的意思是较小的存储排放。这几乎总是可以忽略不计,但不影响(和使用)在某些移动/嵌入式设备(尽管主要是在java)。

一个潜在的工程受益的是,在某些情况下可以创建模糊的小可执行文件或其他项目--例如混淆javascript结果在较小的文件(因为所有的变量被评为"a"和"b"而不是"descriptiveNameOne"和所有的空白被剥等)。这导致较快的负载时的网页,使用混淆javascript。显然,这并不适用于(作为大)中。净的世界,但它的一个实例的情况,其中有一个直接的工程受益。

虽然不相关。净的,我会考虑的模糊处理在Javascript,以及其他可能的interpeted的语言。Javascript效益以及从混淆,因为它降低带宽需要,并记号分析器有阅读。

但模糊的编码不是真的似乎是有用的,我的。我的意思是你会怎么尝试和实现?我只能看到模糊的限量略有用的,在许可证检查代码,以避免它beeing避免太容易了。

主要原因需要使用模糊处理的是保护知识产权作为你有说明。它是一般更具成本效益的一个商业购买一个模糊处理的产品等。净反应堆于它是尝试在法律上强制执行你的版权。

混淆还可以提供的其他多附带好处,诸如改进性能和组件的尺寸减小。这些会 工程 好处你是在寻找。

使用加密技术来保护信息的方式。

使用模糊处理,以保护信息的话,你的节目仍然有它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top