混淆是一种方法,但它不能防止破坏应用程序的盗版保护安全性。如何确保应用程序不被篡改,如何确保注册机制不会被逆向工程?

此外,还可以将c#应用程序转换为本机代码,而Xenocode的成本太高。

c#提供了很多特性,是编写代码的理想语言,所以用c++重新编写整个代码库是不可能的。

安全证书可以很容易地从. net中的签名程序集中删除。


当前回答

你可以. .

Microsoft SLP ServicesInishTech的Software Potential提供了在不影响应用程序功能的情况下帮助保护代码的能力。

更新:(披露:我在Eazfuscator.NET工作)微软SLP ServicesSoftware潜在的不同之处在于虚拟化代码的能力,所以你肯定可以。从最初提出这个问题到现在已经过去了好几年;今天,有更多的产品也可以在类似的基础上工作,例如:

敏捷。网 Eazfuscator。网

其他回答

根据我的经验,让你的应用程序或库更难破解会伤害你诚实的客户,而只会稍微延迟那些不诚实的客户。专注于制作一款优秀的,低摩擦的产品,而不是花费大量精力去推迟不可避免的事情。

看起来永远是本地的,现在不需要在混淆器; 看起来像网芯RT可行的解决方案;很快所有的应用程序都将使用。net core;https://www.codeproject.com/Articles/5262251/Generate-Native-Executable-from-NET-Core-3-1-Proje?msg=5753507 xx5753507xx https://learn.microsoft.com/en-us/archive/msdn-magazine/2018/november/net-core-publishing-options-with-net-core

没有测试过,也许用旧的win .net SDK可能做类似的事情。

你可以. .

Microsoft SLP ServicesInishTech的Software Potential提供了在不影响应用程序功能的情况下帮助保护代码的能力。

更新:(披露:我在Eazfuscator.NET工作)微软SLP ServicesSoftware潜在的不同之处在于虚拟化代码的能力,所以你肯定可以。从最初提出这个问题到现在已经过去了好几年;今天,有更多的产品也可以在类似的基础上工作,例如:

敏捷。网 Eazfuscator。网

只是补充一个警告:如果你打算使用混淆,检查一切仍然工作!混淆可能会改变类名和方法名。因此,如果你使用反射来调用某些方法和/或类(就像在插件架构中),你的应用程序在混淆后可能会失败。另外,堆栈跟踪对于跟踪错误可能是无用的。

还有Salamander,这是一个来自Remotesoft的原生。net编译器和链接器,可以在没有。net框架的情况下部署应用程序。我不知道它是否符合它所宣称的。