【问题标题】:Confuser .NET Obfuscator. Is it safe? [closed]混淆器 .NET 混淆器。安全吗? [关闭]
【发布时间】:2012-08-22 11:47:59
【问题描述】:

我目前正在开发一个应用程序,在该应用程序中,防止用户反编译代码非常重要。现在,我知道如果由经验丰富的程序员执行,大多数 .exe 文件都是可反编译的。然而,我的目标只是保护它免受具有基本编程知识的“普通”用户的影响。

我遇到过几个混淆器,我现在使用的是 Codeplex Confuser,您可以找到 here。由于我不是混淆专家,或者在任何高级编程方面经验丰富,我想问你是否知道这个混淆器的安全性。

【问题讨论】:

  • 那么您如何建议我使软件的某些代码无法访问?比如我在哪里定义了洗牌加密的方法,以及在某些文件中隐藏信息。
  • 为什么要隐藏信息?如果您担心防篡改,请查看public-key cryptography(非对称密码)和digital signatures
  • 只是我的两分钱,但混淆器不值得写它们的字节。如果你有需要保密的数据或高度专有的代码,如果你想保证它的安全,你就找错了树。
  • 是的 confuser 是安全的 imo 并且会想要你想要的。忽略那些抱怨“为什么要混淆你的代码它仍然可以被破解”的每个人。你锁你的车吗?是的?为什么,一个熟练的小偷仍然可以进入。你锁好你的前门吗?是的?好吧,小偷可以打破窗户。混淆你的代码是一样的。这是为了让诚实的人保持诚实,让熟练的小偷更难做到。

标签: c# .net obfuscation decompiling


【解决方案1】:

根据我的经验,Confuser 是目前最难逆转的(免费)混淆器之一。至少通过一键式工具。

我个人遇到了一些问题,即在使用最大设置时出现一些误报,以及一些导致我的 .exe 无法运行的情况。

请记住,无论它是否比其他免费替代品更难逆转,如果有人花一点时间,他仍然很有可能这样做。

【讨论】:

  • 这是 .NET 反射器使用的东西(看图)?因为在反射器中打开它会给我随机的 unicode 函数名称等
  • 值得怀疑,因为对这种规模的程序使用免费的混淆器只会给他们带来问题。您是否尝试过使用不同的程序打开反射器? ILSpy 是一个不错的选择。
  • 是的,我试过 ILSpy 和 IDA。两者都给我随机(不是随机,而是重音字符、符号等)函数和变量名称,就像它们只是随机字节数据一样(但通过加载保持一致,因此它是真正的变量名称。像这样:call ...::Reflector.&
  • 下载试用版只是为了看看。似乎他们正在使用 SmartAssembly,我并不真正推荐它,因为它非常流行,有很多工具可以保留它。更不用说他们甚至为 SA(Dumbassembly)制作了一个工具
  • @ColeJohnson Reflector 使用商业混淆器 SmartAssembly(由同一家公司 Red Gate 制造,现在开发 Reflector)。
【解决方案2】:

使用混淆器会使反编译代码变得更加困难,但仍然不安全。

保证您的代码安全的唯一方法是不让其落入用户手中。您可以将关键代码放在 Web 服务中,并让应用程序调用它。除非用户可以真正破解服务器并获取代码,否则反编译是完全安全的。

【讨论】:

  • 没错,但 OP 说“但是,我的目标只是保护它免受具有基本编程知识的“普通”用户的影响。”在这种情况下,混淆完全符合要求
  • @Martin:是的,但他也表示,防止用户反编译代码至关重要。大多数普通程序员可以使用免费提供的工具,并且有机会掌握足够多的代码以解决问题。
猜你喜欢
  • 1970-01-01
  • 2011-03-22
  • 1970-01-01
  • 2010-09-18
  • 1970-01-01
  • 2011-02-02
  • 1970-01-01
相关资源
最近更新 更多