混淆是一种方法,但它不能防止破坏应用程序的盗版保护安全。如何确保应用程序不被篡改,如何确保注册机制无法被逆向工程?
还可以将 C# 应用程序转换为本机代码,并且Xenocode http://en.wikipedia.org/wiki/Spoon_%28software%29成本太高了。
C# 提供了很多功能,并且是我的代码的理想语言,因此用 C++ 再次编写整个代码库是不可能的。
可以轻松地从 .NET 中的签名程序集中删除安全证书。
你不能。
您可以采取一些步骤来使其成为little更困难,但最终本地计算机上的任何可执行文件都是可破解的。最终,该代码必须转换为本机机器代码,并且每个可运行的应用程序都容易受到攻击。
你想做的只是让它变得足够难以破解,以至于不值得人们去麻烦。
我为您提供一些有助于保护您的应用程序的建议:
-
混淆你的代码。点模糊器 http://en.wikipedia.org/wiki/Dotfuscator有免费版本并附带 Visual Studio。
- Use 公钥/私钥 http://en.wikipedia.org/wiki/Public-key_cryptography or 非对称加密生成您的产品许可证。这确保了只有you可以生成您的许可证代码。即使您的申请is破解后,您可以确定他们不会为您的应用程序发布密钥生成器,因为不可能逆转密钥生成算法。
- Use a 第三方加壳器将 .NET 可执行文件打包到加密的 Win32 包装应用程序中。Themida http://www.oreans.com/是较好的之一。这会阻止人们反映您的申请.NET反射器 http://www.red-gate.com/products/reflector/并使得打开包装倒车变得很痛苦。
- 写你自己的定制包装机。如果第三方打包程序太贵,请考虑编写自己的打包程序。有时,自定义加壳程序可能非常有效,因为还没有关于如何解压它们的明确发布的方法。教程如何编写自己的加壳器 http://www.stonedcoder.org/~kd/lib/61-267-1-PB.pdf提供了大量有关编写自己的 Win32 加壳程序的好信息。
但最终,如果人们希望你的应用程序被破解,他们就会这么做。看看所有拥有大量资源来保护其应用程序的商业软件,但它们在应用程序向公众发布之前就被破解了。
熟练的逆向工程师可以启动IDA-Pro http://www.hex-rays.com/idapro/无论你做什么,都像切黄油一样切开你的申请。打包的应用程序可以被解包,混淆只会阻止它变得轻松自如。您使用复杂的许可证代码所做的所有努力都可以通过一个字节补丁来撤销。
您只需要接受这样一个事实:人们很有可能会盗版您的软件。有一些人是never无论如何都会支付你的申请费用,这些人是你不需要担心的人。
然而,有许多企业永远不会冒诉讼的风险并乐意购买软件许可证,而许多计算机用户要么不想冒这个风险,要么发现它是错误的,要么不精通技术而无法进行盗版。这些是您真正的客户,您应该集中精力为他们提供良好的用户体验,而忽略破解您软件的人。
我的应用程序以前曾被盗版过,我认为这是对我个人的侮辱。我,一个小开发者,全心全意地投入到一个应用程序中,而这些人竟然厚颜无耻地盗用我的作品?!他们直接从我口袋里拿钱!
我立即添加了一堆严厉的 DRM 代码,并试图使用非法或破解的副本来破坏任何人。我当然应该努力让我的应用程序变得更好,而不是试图阻止不可避免的事情发生。不仅如此,还伤害了我true客户会认可我所采取的所有这些额外保护措施。
经过长时间的战斗,我意识到我正在与潮汐搏斗,浪费的所有时间都是徒劳的。我拿出了除了准系统许可证功能之外的所有回拨代码,并且再也没有回头。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)