.net - 你从混淆程序中得到的 exe 的速度是否不同?

标签 .net obfuscation

有许多用于 .Net 的混淆程序,我试过一个,我的 exe 在混淆时似乎慢得多。所有混淆程序都具有相同的效果还是我选择了一个不好的程序?我希望有些比其他的要好,如果你知道一个快速的让我知道。

最佳答案

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

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

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

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

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

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

关于.net - 你从混淆程序中得到的 exe 的速度是否不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64541/

相关文章:

c# - 从动态创建的复选框中获取错误值

c# - 使用精度和比例将字符串转换为十进制

.net - 到 PerformanceCounter 还是编写自定义监控?

node.js - 创建闭源 npm 包

c# - Entity Framework - 为什么 EF 在 1 对 1 关系中使用 LEFT OUTER JOIN?

.net - Delphi vcl.net应用及反编译

javascript - JavaScript 和浏览器的混淆

ios - swift 盾 : Obfuscation using SwiftShield gives error

css - 如何使用 UiBinder 声明依赖样式名称

c# - 运行基本的 orleans 应用程序时出现异常