没有第三方工具的装配混乱
本文关键字:混乱 工具 第三方 | 更新日期: 2023-09-27 18:25:00
有一些第三方工具可用于混淆程序集
看看这个:
在MSBuild 中使用SmartAssembly
我怎么能写一个简单的类来混淆我的程序集,而且我不想使用任何第三方工具,比如SmartAssembly?
或
如何将SmartAssembly作为dll导入到我的项目中并将其用于我的目的?
编辑:我的目标是什么
我的c#代码中有一些密码,我只想把它们隐藏起来,以防逆向工程!
我建议你看看像Obfuscar这样的开源项目——这远非一项琐碎的任务
您不应该将安全信息存储在源代码中。将它们编写为XML或任何其他外部数据源,将这些信息加密,然后就不需要任何模糊处理了。
然而,模糊处理不会改变这种情况,因为它只是替换变量和参数的名称,而不是它们的实际值。所以,如果你有这样的东西:
string password = "topsecret";
Obfuscator会简单地用类似的东西来代替它:
var a="topsecret";
为了稍微缩短这个讨论:没有办法给你绝对的安全性来避免任何人都可以获得你的用户凭据。你所能做的就是让事情变得更加困难,并希望"攻击者"在成功之前放弃。因此,在大多数情况下,从外部修改密码应该可以满足您的需要。
这是传说中的"如何在源代码中隐藏密码"问题。简单的答案是:你不能。时期只要有足够的时间和精力,你所做的任何事情都可以被毁掉。然而,你可以让可能成为黑客的人更加困难。你可以做的一些事情是密码散列,然后将散列存储在源代码中。这意味着黑客需要具备哈希算法的知识才能逆转它或弄清楚它是什么。不过我知道这不值得你花时间。如果有人想破解你的程序,你根本无法阻止他们。这是编程的可怕真相。