我正在用C ++编写一个软件,该软件针对的是软件传统上严重破解(或者至少是试图破解)的市场。我意识到没有任何东西可以被完全保护,但我觉得尝试是个好主意,而且我认为我所处的情况的某些细节可能会有所帮助。
首先,用户必须具有互联网连接才能使用该软件并不烦人。当游戏等也这样做时我讨厌它,但是由于其目的,软件需要互联网连接才能正常运行,所以这不会妨碍普通用户。
其次,它在很大程度上取决于我编写和/或第三方提供的外部脚本,所以我可以将它们存储在某个网站的某个地方,这意味着破解软件的人也必须追踪新版本的脚本,可能会使它们变得合法化。
第三,根据定义,由于应用的功能,新版本必须经常发布,每周或每两周发布一次。该程序显然会有一个autoupdater,但由于我经常生成(需要运行)更新,任何类型的基于密钥的加密或任何可能有密钥/方法的更改每次更新,我能够打破现有的他们确实发生了裂缝。
是否有人知道我可以实施哪些适合该法案的可用解决方案或技术?
答案 0 :(得分:4)
如果您的应用程序正在进行某种数据处理或分析,您可以通过将该部分放入客户端应用程序连接并进行身份验证然后从中接收结果的Web服务(可能在云中)来保护它。因此,即使您的客户端应用程序是逆向工程的,它也会缺少那么重要的处理。
如果您的应用程序是基于Web的,那么您也可以获得相同的效果。
答案 1 :(得分:1)
我之前已成功使用CrypKey。
答案 2 :(得分:1)
我猜这个软件的旧版本远比最新版本有用。
如果是这种情况,那么您已经拥有了强大的防破解技术:您的更新机制。当您发现软件的黑客版本时,您可以立即检查它,并为被黑客软件的用户带来麻烦。