【问题标题】:Checking efficiency of obfuscation of C# code检查 C# 代码混淆的效率
【发布时间】:2011-10-09 09:00:07
【问题描述】:

我正在评估几个混淆器来保护 WPF 应用程序中的代码。
为了检查给定程序集上每个混淆器完成的工作结果,我使用 Red Gate 的 .Net Reflector。每次混淆后,我都会使用 .NET Reflector 打开程序集并查看它的外观。

够了吗? .NET Reflector 的结果是否可以作为混淆质量的指标,或者我应该尝试一些其他工具吗? (不是任何可能的此类工具,而是从实际常识的角度来看)。

【问题讨论】:

  • 你也可以试试ILSpy。我曾经有一个案例,ILSpy 能够反编译 Reflector 无法反编译的代码。
  • @Rem - 我会说可以在 .NET Reflector 中查看的代码是一个很好的起点。当然,它只会减慢有决心的人完成工作,当然不会阻止任何人查看代码。
  • 你可以在这里发布你的发现,有一些关于混淆器的问题......
  • 你可以用这个问题:stackoverflow.com/questions/2525/…
  • @Daniel Hilgarth:只有一个?我一天要吃好几次!查看最后 3 个帖子 @xacc.wordpress.com

标签: c# obfuscation reverse-engineering decompiling reflector


【解决方案1】:

Reflector 的结果应该足以说明任何偶然的反编译尝试会如何进行。一些混淆器会将代码混淆到程序集甚至无法在 Reflector 中打开的程度。

任何愿意尝试比这更深入的人都不会轻易被比其他人更高级的混淆所吓倒。

【讨论】:

    【解决方案2】:

    最好是 Reflector 和 ILSpy 完全拒绝反编译生成的程序集。我知道存在能够做到这一点的混淆器。

    【讨论】:

      【解决方案3】:

      我的意见是:“够不够”取决于您的目标应用。混淆从来都不是 100% 安全的代码,它总是使代码反汇编对于潜在的攻击者来说足够困难,但这完全取决于“潜在的攻击者”会花费多少精力来反汇编你的应用程序。而且 .NET Reflector 是一个查看器,就像你所说的那样,所以如果它是 ecure 或不可以通过查看来推断你,例如:

      如果字符串被加密

      如果参数被加密

      如果类名和 (PWD_USER) 等字段已加密 ...

      问候。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-24
        • 2018-08-01
        • 2017-03-01
        • 2023-04-08
        • 2017-12-20
        • 2011-03-21
        • 1970-01-01
        相关资源
        最近更新 更多