从我所读到的,代码混淆并不是那么难以"破解",它只会延迟不可避免的.在那种情况下,它的目的是什么?
如果有人真的想偷你的来源他们可以.
如果有人需要查看您的源代码以获取无害/有用的目的,他们就不能.
您可能不应该在代码中存储任何敏感内容,因此这不应该是一个问题.
如果你没有混淆,你仍然没有提供完整的源代码,所以你可以出售"源代码许可证".
有趣的是,我见过的唯一代码混淆是可怕的代码,其中有错误.我需要查看代码的唯一原因是弄清楚问题是什么以及我可以做些什么来解决它.
例如,我需要替换ASPDotNetStoreFront中的一些图像.在查找标签的位置时,我发现它们包含在已编译的代码中.废话.所以我想我会反编译代码,找出要通过Regex替换的img标签.我试图查看源代码,看看哪些图像可能来自给定的编译方法,而反射器无法处理它,我认为是因为混淆.我没有时间去寻找de-comilers/de-obfuscators.
Ste*_*eve 18
我觉得它值得.你的成本几乎没有,你让黑客的生活更加艰难.即使他们破解了它,你也会感到满意的是,他们知道你浪费了几个小时到几个星期的生命.仅仅因为锁不完美并不意味着你不锁门.
Nic*_*ver 11
只有当你的项目长期运行并且需要花费大量时间来实施它才值得.这当然是一个意见,但我还没有找到一个混淆的.Net DLL,但是我无法弄清楚只使用Reflector会发生什么.
这是一种威慑力,仅此而已.如果某人对代码进行逆向工程的成本高于自己实现代码的成本,那么这是我看到的唯一合法案例,但如果有人想知道你的代码是如何打算的,那么防止这种情况并不是很好.
我看到的一个常见情况是如何生成和/或解密许可证密钥.任何有动力去解决这个问题并且为你的盐/解密方法挖掘反射器的人都不会被混淆停止,我敢说它不会真的减慢它们的速度.