【问题标题】:Does the exe you get out of obfuscation programs vary in speed?您从混淆程序中获得的 exe 速度是否有所不同?
【发布时间】:2010-09-09 00:52:47
【问题描述】:

.Net 有许多混淆程序,我已经尝试过一个,我的 exe 在混淆时似乎慢得多。所有的混淆程序都具有相同的效果还是我选择了一个不好的程序?我希望有些比其他的更好,如果您知道快速的,请告诉我。

【问题讨论】:

    标签: .net obfuscation


    【解决方案1】:

    免责声明:我的雇主是 PreEmptive Solutions,Dotfuscator .NET 混淆器的创建者。

    它可能取决于您使用的混淆器以及您在其中启用的选项。我将根据 Dotfuscator 的经验发言。

    如果您使用重命名和删除,混淆程序集的加载时间和内存占用可能会有所改善,部分原因是您的所有/大部分方法、字段等都被重命名为更小的名称(例如“ThisVeryLongMethodName(SomeVeryLongParameterName)”变为“a(a)”,因此您可以在程序集大小和加载时间方面获得一些好处。除了删除之外,您还可以删除永远不会调用的方法等,并再次减小二进制文件的大小。

    字符串加密会对运行时性能产生轻微的负面影响,因为字符串必须在运行时转换回人类可读的文本。

    如果您使用任何其他系统/技术(例如 Microsoft SLP 的安全 vm 技术)来呈现方法不可读,这也会因安全 vm 而导致运行时性能损失。

    其他不生成托管代码程序集作为输出而是依赖本机代码加载器“预处理”其输出的混淆工具也可能导致运行时性能下降(尤其是在加载时)。

    【讨论】:

      【解决方案2】:

      混淆不应该改变代码的运行时性能。如果是,那么你有一个糟糕的混淆器,它所做的不仅仅是混淆。应该做的所有混淆就是让你的 IL 难以阅读。

      【讨论】:

        【解决方案3】:

        工具可以使用different obfuscation methods。有一些简单的重命名方法不会以任何方式影响性能。其他方法可能会改变代码的流程。这可能会对性能产生负面影响。您可能想查看其他混淆器并尝试不同的设置。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-02-25
          • 2010-11-28
          • 1970-01-01
          • 2010-09-05
          • 1970-01-01
          • 1970-01-01
          • 2014-02-08
          • 1970-01-01
          相关资源
          最近更新 更多