帮我选择.net混淆程序?

时间:2010-07-19 06:41:30

标签: vb.net security cryptography obfuscation

我在vb.net 2008上编写了一个程序(使用.net 3.5)。这是一个体面的大小计划。该程序的一部分是访问在线数据库并加密/解密文件。要访问db,我使用硬编码密码。为了加密/解密文件,我使用了硬编码密钥。无论我做什么,我至少需要对这两件事中的一件进行硬编码。例如:即使我将数据库密码存储在加密文件中,我也需要硬编码密钥来解密它。或相反亦然。

因此,在做了一些思考之后,我认为我需要对代码进行模糊处理,以便至少这些硬编码元素/值不会轻易看到。事实上,我用一个程序来反汇编我的程序。令我惊讶的是,它向我展示了我的程序中的每一行代码。我觉得我的整个代码都粘贴在我的exe中。

因此我需要混淆我的代码。请参阅我不需要太高级的设置。我的程序不是顶级共享软件程序或超级流行的我需要非常高的安全性。但我需要足够的安全性,以便我的基本代码,变量和敏感信息(密码等)不可见。

请帮我选一个好的混淆器来完成这项工作。使用它不应该太繁琐,对我来说应该足够了。此外,它应该是值得信赖和安全的。我的意思是我不希望我的应用程序崩溃或在我混淆后不稳定。

我从Ezriz下载了.net反应堆的试用版,似乎没问题。你们有什么建议?我无法支付超过200美元的东西。这个产品值得去做。你们知道的更好。

感谢您的支持。

干杯, SAURABH

4 个答案:

答案 0 :(得分:18)

混淆不能解决这个问题。攻击者可以更改其hosts文件,以将域名重定向到他控制的数据库。当您登录时,他将获得用户名/密码。

另一个攻击是使用ollydbg之类的调试器来获取内存中的用户名/密码。用户名/密码在使用前必须是明文,攻击者才能找到它。

Security Through Obscurity永远不会奏效。你永远无法控制客户。

更好的方法是设置SOAP(WCF)服务器来抽象数据库操作。构建查询的逻辑必须是服务器端。假设攻击者可以完全访问您通过SOAP公开的任何函数。

答案 1 :(得分:1)

你应该强烈考虑Babel .net混淆器。在我看来,即使它是一个控制台应用程序,它是迄今为止最好的价格,许可(不锁定到一台计算机)和功能。

答案 2 :(得分:0)

我使用Eazfuscator:http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Default.aspx

它很强大而且是免费的。精彩的工具使用起来非常简单。

答案 3 :(得分:0)

我现在使用Eziriz .NET Reactor已经有一段时间了,它对我很有用。我之前使用过Eazfuscator,但它并不是很强大。

.Net Reactor具有很棒的功能,例如Anti ILDASM和Native Exe文件生成。它也适合你的预算。您可以在购买之前使用试用版并测试它是否适用于您的方案。