有一些第三方工具用于混淆程序集!
看看这一个:
Using SmartAssembly with MSBuild
如何编写一个简单的类来混淆我的程序集,我不想使用任何第三方工具SmartAssembly?
或
如何将SmartAssembly作为dll导入我的项目并将其用于我的目的?
编辑:我的目标是什么?
我的c#代码中有一些密码,我只想将它们隐藏在逆向工程中!
答案 0 :(得分:2)
我建议你看一下像Obfuscar这样的开源项目 - 它远非一项微不足道的任务
答案 1 :(得分:1)
您不应在源代码中存储安全信息。将它们写入XML或任何其他外部数据源,加密此信息,然后您就不需要任何混淆。
然而,混淆不会影响这种情况,因为它只是替换变量和参数的名称,而不是它们的实际值。所以,如果你有这样的事情:
string password = "topsecret";
Obfuscator会简单地用类似的东西替换它:
var a="topsecret";
要稍微缩短一下这个讨论:没有办法给你绝对的保存,以避免任何人都可以获得你的用户凭据。你所能做的就是让这样做变得更加困难,并希望“攻击者”在他或她成功之前放弃。因此,在大多数情况下,在外部使用密码可以满足您的需求。
答案 2 :(得分:0)
这是传说中的“如何在我的源代码中隐藏密码”问题。简单的答案:你做不到。期。你做的任何事都可以被有足够时间和精力的人解开。但是,你可以让黑客变得更加困难。您可以做的一些事情是密码散列,然后将该散列存储在源代码中。这意味着黑客需要了解哈希算法以反转它或弄清楚它是什么。我了解到这不值得你花时间。如果有人想要破解你的程序,那么你就无法阻止他们。这是编程的可怕事实。