C# 保护.NET代码不受反向工程的影响?
模糊处理是一种方法,但它不能防止破坏应用程序的盗版保护安全。如何确保应用程序未被篡改,以及如何确保注册机制不能被反向工程 此外,还可以将C#应用程序转换为本机代码,而且成本太高C# 保护.NET代码不受反向工程的影响?,c#,.net,obfuscation,reverse-engineering,C#,.net,Obfuscation,Reverse Engineering,模糊处理是一种方法,但它不能防止破坏应用程序的盗版保护安全。如何确保应用程序未被篡改,以及如何确保注册机制不能被反向工程 此外,还可以将C#应用程序转换为本机代码,而且成本太高 C提供了很多特性,是我的代码的理想语言,所以用C++编写整个代码库是不可能的。 安全证书可以很容易地从.NET中的签名程序集中删除。真的值得吗?只要有足够的决心,就可以打破每一种保护机制。考虑你的市场,产品的价格,客户的数量等等。 如果您想要更可靠的东西,那么就使用硬件密钥,但这相当麻烦(对于用户)而且更昂贵。软件解决
C提供了很多特性,是我的代码的理想语言,所以用C++编写整个代码库是不可能的。
安全证书可以很容易地从.NET中的签名程序集中删除。真的值得吗?只要有足够的决心,就可以打破每一种保护机制。考虑你的市场,产品的价格,客户的数量等等。 如果您想要更可靠的东西,那么就使用硬件密钥,但这相当麻烦(对于用户)而且更昂贵。软件解决方案可能会浪费时间和资源,它们唯一能给你的是错误的“安全感” 几乎没有其他想法(没有完美的,因为没有完美的想法)
- 改变语言,使用作者使用的好技巧
- 许可证服务器
不要在这上面浪费太多时间,因为破解者对典型技术有很多经验,而且比你领先几步。除非您想使用大量资源,否则可能需要更改编程语言(使用Skype方式)。这真的值得吗?只要有足够的决心,就可以打破每一种保护机制。考虑你的市场,产品的价格,客户的数量等等。 如果您想要更可靠的东西,那么就使用硬件密钥,但这相当麻烦(对于用户)而且更昂贵。软件解决方案可能会浪费时间和资源,它们唯一能给你的是错误的“安全感” 几乎没有其他想法(没有完美的,因为没有完美的想法)
- 改变语言,使用作者使用的好技巧
- 许可证服务器
不要在这上面浪费太多时间,因为破解者对典型技术有很多经验,而且比你领先几步。除非您想使用大量资源,否则可能需要更改编程语言(使用Skype方式)。如果它是用.NET编写并编译成的,则可以反映出来。如果安全性是一个问题,并且需要避免混淆,那么我建议使用非托管语言编写应用程序,这从本质上来说,更难进行反向工程。如果是在.NET中编写并编译为,则可以反映出来。如果安全性是一个问题,并且需要避免混淆,那么我建议您使用非托管语言编写应用程序,这在本质上更难进行反向工程。您不能 您可以采取一些步骤使其更加困难,但最终本地计算机上的任何可执行文件都是可破解的。最终,该代码必须转换为本机代码,并且每个可运行的应用程序都有漏洞 你想做的只是让它变得很难破解,让它不值得人们的麻烦 我为您提供了一些帮助保护您的应用程序的建议:
- 混淆您的代码。有一个免费版本,并随Visual Studio提供
- 使用或非对称加密生成产品许可证。这确保只有您才能生成许可证代码。即使您的应用程序被破解,您也可以确定他们不会为您的应用程序释放密钥生成器,因为不可能反转密钥生成算法
- 使用第三方包装器将.NET可执行文件打包到加密的Win32包装应用程序中。是比较好的一种。这会阻止人们在中反映您的应用程序,并使您很难打开包进行反向操作
- 编写您自己的自定义包装器。如果第三方封隔器太贵,请考虑自己编写。有时,定制的打包程序可能非常有效,因为没有关于如何解包的好方法。本教程提供了大量关于编写自己的Win32 packer的有用信息