我很好奇你如何保护你的软件免受破解,黑客攻击等.
你是否采用某种序列号检查?硬件钥匙?
您使用任何第三方解决方案吗?
您如何解决许可问题?(例如管理浮动许可证)
编辑:我不是说任何开源,但严格的商业软件分发...
有许多很多很多保护措施可供使用.关键是:
评估您的目标受众,以及他们愿意忍受的内容
了解您的观众无需付费的愿望
评估某人愿意提供的金额以打破您的保护
应用足够的保护措施,以防止大多数人避免付款,同时不会使那些使用您的软件的人烦恼.
没有什么是坚不可摧的,所以更重要的是要衡量这些东西,并选择一个良好的保护,而不是简单地打击你能够负担得起的最好(最差)的保护.
简单的注册码(在线验证一次).
简单注册可重新启动的密钥,经常在线验证.
加密密钥保存程序算法的一部分(不能只是跳过检查 - 它必须运行才能使程序工作)
硬件密钥(公钥/私钥加密)
硬件密钥(包括在密钥上运行的程序算法的一部分)
Web服务运行关键代码(黑客永远不会看到它)
以及上述的变化.
-亚当
无论您走哪条路线,都要收取合理的价格,轻松激活,提供免费的小更新,永远不要停用他们的软件.如果您尊重用户,他们会奖励您.不过,无论你做什么,有些人最终会盗版.
别.
海盗会盗版.无论你提出什么解决方案,都可以并且将会破解.
另一方面,您的实际付费客户是那些被废话困扰的客户.
使购买比偷窃更容易.如果你放置了复制保护的土墩,那么它只会让拥有真实交易的价值相当低.
使用简单的激活密钥,并向客户保证,如果他们丢失了软件,他们可以随时获得激活密钥或重新下载软件.
任何版权保护(除了在线组件,如多人游戏和连接到您的银行的财务软件等),您可以假设将被击败.你想要非法下载你的软件,至少要比购买它稍微困难一些.
我有一个我从未打开过的PC游戏,因为它上面有很多版权保护垃圾,下载假版本实际上更容易.
软件保护是不值得的 - 如果您的软件需求,它将被击败,无论如何.
也就是说,硬件保护可以很好地工作.它可以很好地工作的一个示例方法是:找到一个(相当)简单但必要的软件组件,并在Verilog/VHDL中实现它.生成一个公共 - 私有密钥对,并创建一个Web服务,该服务接受挑战字符串并使用私钥对其进行加密.然后制作一个包含公钥的USB加密狗,并生成随机挑战字符串.您的软件应该向USB加密狗询问挑战字符串并将其发送到服务器进行加密.然后软件将其发送到加密狗.加密狗使用公钥验证加密的质询字符串,并进入"启用"模式.然后,只要需要执行您在HDL中编写的操作,您的软件就会调用加密狗.
编辑:刚刚意识到一些验证的东西是它应该是倒退的,但我很确定这个想法会遇到.
微软软件许可证计划对于小型企业来说是非常昂贵的.如果你想自己设置,服务器成本约为12,000美元.我不推荐它用于佯攻.
我们实际上只是在我们的产品中实现了Intellilock.它可以让您做出有关您希望获得许可的严格程度的所有决策,并且它也非常具有成本效益.另外它还有混淆,编译器预防等.
我见过的小型/ 中型企业使用的另一个好方法是SoloServer.它更像是一个电子商务和许可控制系统.它非常易于配置,可能有点过于复杂.但从我所听到的情况来看,它做得非常好.
我过去也使用过网络的Desaware许可证系统.与上述两个相比,它是一个非常轻量级的系统.就加密声音而言,它是一个非常好的许可控制系统.但它是一个非常低级的API,您必须实现您的应用程序实际使用的几乎所有内容.
数字"权利"管理是业内最大的软件蛇油产品.借用经典密码学中的页面,典型的情况是Alice想要在没有Charlie能够阅读的情况下向Bob发送消息.DRM不起作用,因为在其应用中,Bob和Charlie是同一个人!
你最好问一个相反的问题,即"如何让人们购买我的软件而不是偷它?" 这是一个非常广泛的问题.但它通常从做研究开始.你弄明白谁买了你想卖的软件,然后生产出吸引那些人的软件.
对此的额外支持仅限于对合法副本的更新/附加组件.这可以像购买交易期间收到的订单代码一样简单.
查看Stardock软件,WindowBlinds的制造商和诸如Sins of a Solar Empire等游戏,后者没有DRM,并从200万美元的预算中获得可观的利润.
有几种方法,例如使用处理器ID生成"激活密钥".
最重要的是,如果有人想要它足够糟糕 - 他们将对你拥有的任何保护进行逆向工程.
最安全的方法是在运行时或硬件搭扣中使用在线验证.
祝好运!