没有第三方工具的程序集的模糊处理

时间:2015-11-30 12:35:05

标签: c# build obfuscation

有一些第三方工具用于混淆程序集!
看看这一个:
Using SmartAssembly with MSBuild

如何编写一个简单的类来混淆我的程序集,我不想使用任何第三方工具SmartAssembly

如何将SmartAssembly作为dll导入我的项目并将其用于我的目的?

编辑:我的目标是什么?
我的c#代码中有一些密码,我只想将它们隐藏在逆向工程中!

3 个答案:

答案 0 :(得分:2)

我建议你看一下像Obfuscar这样的开源项目 - 它远非一项微不足道的任务

答案 1 :(得分:1)

您不应在源代码中存储安全信息。将它们写入XML或任何其他外部数据源,加密此信息,然后您就不需要任何混淆。

然而,混淆不会影响这种情况,因为它只是替换变量和参数的名称,而不是它们的实际值。所以,如果你有这样的事情:

string password = "topsecret";

Obfuscator会简单地用类似的东西替换它:

var a="topsecret";

要稍微缩短一下这个讨论:没有办法给你绝对的保存,以避免任何人都可以获得你的用户凭据。你所能做的就是让这样做变得更加困难,并希望“攻击者”在他或她成功之前放弃。因此,在大多数情况下,在外部使用密码可以满足您的需求。

答案 2 :(得分:0)

这是传说中的“如何在我的源代码中隐藏密码”问题。简单的答案:你做不到。期。你做的任何事都可以被有足够时间和精力的人解开。但是,你可以让黑客变得更加困难。您可以做的一些事情是密码散列,然后将该散列存储在源代码中。这意味着黑客需要了解哈希算法以反转它或弄清楚它是什么。我了解到这不值得你花时间。如果有人想要破解你的程序,那么你就无法阻止他们。这是编程的可怕事实。