首先,我了解几乎所有应用程序都可以被破解(特别是用C#编写).我的问题是让它更难破解.
假设用户已将Application文件保存在Application.StartupPath下,所有用户都可以读取该文件.
然后,每次应用程序启动时,它都会检查是否可以找到并验证许可证文件.
如果应用程序可以查找和验证,我们让用户继续使用全部功能.
如果没有,我们会提示MessageBox显示"未许可,继续使用试用版,功能有限".
我的问题是,如果我是黑客/黑客,我会尝试绕过或绕过许可检查而不是破解许可文件,因为,如果我们使用RSA签名,则很难破解许可文件.
那么我们应该在哪里进行许可检查?
PS:而且,如果我设置一个全局变量IsLicensed(true/false)来限制功能,它是否安全?黑客是否容易改变IsLicensed = true?
Ben*_*igt 50
软件许可的第一定律:一旦允许将软件安装在您无法控制的计算机上,您就无法控制它.
如果要保持对代码的控制,则需要将其设置为Web服务,并为最终用户提供与该Web服务接口的瘦客户端.
在许多情况下,这是不可接受的,因为即使用户没有互联网连接,用户也希望能够使用他们的软件.
在几乎所有情况下,您应该专注于改善用户体验,并且所有形式的复制保护都会使其变得更糟.一旦你到了从warez网站下载并通过几次病毒扫描运行它的经验比为合法版本进行许可设置更好,你就输了.