代码之家  ›  专栏  ›  技术社区  ›  Tarzan

混淆器和技术支持

  •  11
  • Tarzan  · 技术社区  · 16 年前

    我们正在考虑在将某些代码发布给客户之前对其进行模糊处理。我们想知道它对技术支持的影响。客户是否可以为我们提供有意义的堆栈跟踪,或者他们也会被混淆?

    我期待着听到你的经历。提前谢谢。

    4 回复  |  直到 9 年前
        1
  •  9
  •   stmax    16 年前

    您将得到模糊的堆栈跟踪。但混淆器可以生成映射文件,将混淆的名称映射到实名。您必须将这些映射文件保存在一个安全的地方,并且可以在需要时再次使用它们来“清除”堆栈跟踪。

    在技术支持的情况下,您可以创建一个简单的web界面,技术支持人员可以在其中粘贴堆栈跟踪。这样,只有web服务器需要访问映射文件,这样它才能还原原始堆栈跟踪。

    下面是两个链接,用于说明使用dotfuscator obfuscator的过程:

    http://www.preemptive.com/images/stories/dotfuscator_documentation/Dotfuscator/The_Map_File.html

    http://www.preemptive.com/images/stories/dotfuscator_documentation/Dotfuscator/Decoding_Obfuscated_Stack_Traces.html

        2
  •  1
  •   Eric J.    16 年前

    如果在您的版本中对堆栈上的方法进行了模糊处理,您将在任何堆栈跟踪中获得模糊处理的方法名称。

    如果你在你的代码中加入任何东西来帮助你找出所涉及的方法,潜在的黑客可以利用这些信息来更好地理解你的代码。

    一种常见的策略是只混淆一些代码,包括(但不限于)进行许可证检查的部分。如果你只是混淆了许可证检查,很容易集中注意力在需要黑客注意的部分。

        3
  •  1
  •   logicnp    16 年前

    这通常不是一个问题,因为大多数混淆器提供了将堆栈跟踪反模糊到其原始跟踪的能力。

        4
  •  1
  •   Daniel Dolz    16 年前

    我们使用 BitHelmet . 问题是,当使用最强的模糊处理技术时,堆栈跟踪无法消除。Bithelmet使用完整的签名重命名(某种重载归纳,更好)。结果是,许多方法的名称相同,但返回类型不同(这在c中无法实现,但对于clr来说是可以的)。堆栈跟踪中不显示返回类型!因此,实际上不可能使用最强的模糊处理来消除堆栈跟踪的模糊。

    我们问的问题和你问的一样,我们讨论过,得出的结论是,实际上我们更喜欢混淆。在提供技术支持时,堆栈跟踪实际上不如只有最终用户才能提供的其他数据有用。”请告诉我你到底在做什么???”:)

    推荐文章