美好的一天!
我想分发c#应用程序并希望保护它。 我需要:
由于混淆可能导致哪些问题(例如序列化/反序列化/反射/全球化)?欣赏这个问题的解决方案的复杂性?
您推荐哪些方法/工具/方法?
感谢您的帮助!
答案 0 :(得分:4)
免责声明:我为Red Gate工作。
SmartAssembly做你想要的。对于你的观点轮流:
1)它确实控制流混淆,方法/字段重命名,资源和嵌入字符串的压缩/加密,以及方法与其包含类的分离。
2)自动错误报告会自动检测并报告未处理的exec(它还会抓取并发送堆栈跟踪,所有本地变量的值以及一些常规系统信息)。
3)模糊的堆栈跟踪会在您的计算机上再次解码,以便您可以清晰地看到它。
4)不是100%,我知道你的意思,但是如果对它进行任何修改,篡改保护会阻止应用程序运行。如果您的意思是您不想对自己的源代码进行更改,则它将作为构建后的过程运行,因此不需要对源进行任何更改。
使用模糊处理可能会遇到的问题,到目前为止最常见的是因为反射(因此WPF经常会导致问题),而数据绑定也会导致很多问题。大多数混淆器应该让你排除有反射问题的个别类型和方法,但显然会使这些类型和方法不受保护。
还有其他混淆器 - 我知道有几个人使用PreEmptive中的一个称为dotfuscator。
答案 1 :(得分:0)
Crypto Obfuscator支持您正在寻找的所有功能,包括模糊处理,代码保护以及Exception Reporting(具有自动去混淆以及所有方法参数和局部变量的完整值)。
Crypto Obfuscator的另一个独特功能是混淆后显示的警告选项卡。这将列出程序集中的所有代码行,这些代码行可能会导致模糊处理程序集失败。所以你不必在黑暗中拍摄,试图找出为什么混淆的组件不起作用。
免责声明:我为Crypto Obfuscator的开发者LogicNP Software工作。