.net NET代码混淆真的值得吗?

.net NET代码混淆真的值得吗?,.net,obfuscation,.net,Obfuscation,据我所知,代码混淆其实并不难“破解”,它只会推迟不可避免的事情。在这种情况下,它的目的是什么 如果有人真的想偷你的消息来源,他们可以 如果有人出于无害/有益的目的需要查看您的源代码,他们不能 您可能不应该在代码中存储任何敏感的内容,所以这不应该是一个问题 如果你不混淆,你仍然没有提供完整的源代码,所以你可以出售“源代码许可证” 有趣的是,我所见过的唯一一个被混淆的代码是有bug的糟糕代码。我需要查看代码的唯一原因是找出问题所在,以及我可以做些什么来修复它 例如,我需要替换ASPDotNetSto

据我所知,代码混淆其实并不难“破解”,它只会推迟不可避免的事情。在这种情况下,它的目的是什么

如果有人真的想偷你的消息来源,他们可以

如果有人出于无害/有益的目的需要查看您的源代码,他们不能

您可能不应该在代码中存储任何敏感的内容,所以这不应该是一个问题

如果你不混淆,你仍然没有提供完整的源代码,所以你可以出售“源代码许可证”

有趣的是,我所见过的唯一一个被混淆的代码是有bug的糟糕代码。我需要查看代码的唯一原因是找出问题所在,以及我可以做些什么来修复它


例如,我需要替换ASPDotNetStoreFront中的一些图像。在查找标记的位置时,我发现它们包含在已编译的代码中。废话。所以我想我应该反编译代码,通过正则表达式找出要替换的img标签。我试图查看源代码,看看哪些图像可能来自给定的编译方法,而reflector无法处理它,我猜想是因为混淆。我真的没有时间到处寻找解惑器/解惑器。

我不知道模糊处理是否“值得”,但我可以说,有比模糊处理更安全的替代方法


例如,XHEO提供了一个工具()来实际加密.NET程序集,而不仅仅是混淆它们。

只有当您的项目是长期运行的并且需要花费大量时间来实现时,才值得。这当然是一个观点,但我还没有找到一个模糊的.Net DLL,我无法理解仅仅使用Reflector会发生什么

这是一种威慑力,仅此而已。如果有人对代码进行反向工程的成本大于自己实现代码的成本,这是我所看到的唯一合法的情况,但是如果有人想知道你的代码是如何运行的,那么它就不能很好地防止这种情况的发生


我经常看到的一种常见情况是如何生成和/或解密许可证密钥。任何一个有志于解决这个问题并深入研究反射器(reflector for you salt/decryption methods)的人都不会因为混淆而停滞不前,我敢说这也不会让他们慢下来。

在我看来,不会。我见过有人用不同的语言编写程序。使用像IDA这样的专业工具(适用于非托管代码),没有什么是100%安全的。由于元数据仍然存在,模糊程序集更容易被破解。

对于.Net应用程序,不模糊相当于使您的产品开源,因为使用Reflector很容易查看和分析源代码。 您可能有许可协议,但只有少数公司有时间和金钱在法庭上为许可协议辩护。对于这些公司来说,模糊处理是最好的选择。当然,您需要测试模糊程序集,但是,您已经在测试您的产品,所以为什么不测试最终的模糊程序集呢


这还取决于模糊器的帮助程度。考虑我们的-IT支持与VisualStudio轻松集成,所以您总是运行混淆的程序集。它还具有许多自动排除功能,因此不会混淆类/成员,从而导致混淆的程序集无法正确运行。它还将显示代码警告(包括行号),这些代码可能会导致模糊程序集错误运行。这大大节省了时间。

我认为这是值得的。你付出的代价几乎是零,你让黑客的生活更加艰难。即使他们破解了它,你也会满足于知道你浪费了他们生命中的几个小时到几个星期。锁不完美并不意味着你不锁门。

当然,没有什么是100%保护的。但不为这个原因而困惑就像不关房门,因为“任何有决心的小偷无论如何都可以打开它”。 你还是锁上门吧

我认为主要的威胁是一些家伙使用ildasm反编译你的应用程序,发现SQL语句,篡改它们,然后再次编译。这样,他/她就可以消除限制,获得完整的客户名单,例如,或者只是造成明显的伤害

作为应用程序提供商,您首先要负责

BitHelmet的伙计们用英语很好地解释了这一点

几年前我在一家中型信用卡公司工作。我们发现有三起涉及员工的盗窃案(巨额资金),所有这些盗窃案都不是由俄罗斯或中国的世界级黑客实施的,但到目前为止,已经有足够的编程员工对收银员软件进行了一些小小的改动

当时我是大三学生,我的老板不得不处理这件事。我总是想知道这些盗窃案中有多少从未被发现;-)。我本来可以做到的,但从来没有做到


事实上,你必须考虑到某种程度的保护,你必须考虑内部攻击者。而且也会使坚定的逆向工程师的生活更加艰难。

的明智选择,但是,嘿,如果你那么关心模糊处理,你会付出代价的,阿米丽特?你的问题是关于模糊处理还是替换模糊处理程序集中的代码?许多重复:,我的问题更多的是了解公司为什么要模糊处理他们的代码。真的,我觉得这是一种巨大的痛苦。作为一名开发人员,我发现查看供应商的源代码很有帮助,但正如我所说的,通常问题最多的代码已经被混淆了。只需雇佣一个非常糟糕的VB.NET程序员。代码比任何模糊处理软件都更容易被模糊处理。什么会使它们变慢呢?我正是为了这个目的而混淆代码——处理许可证问题。如果知道你的可怜的客户每次都会把头撞到墙上呢