C++ API : license management to protect a software

标签 c++ api licensing

<分区>

我正在寻找一个 C++ 和开源库来保护商业软件再次破解等...

你认识一个吗?

最佳答案

我喜欢用一句话来形容这些类型的情况:“你不能用技术解决方案来解决社会问题”。如果某人有足够的动力去做你不喜欢的事情,你就无法阻止他们。你越努力去做某事,他们就越难绕过你的障碍。最后,唯一的办法就是削弱他们的积极性,而这需要一个社会解决方案。

有效防止软件被破解是一场异常艰难的猫捉老鼠游戏。随着您在保护您的程序方面取得的每一项进步,总会有人想出办法并绕过它。毕竟,您的程序确实必须在计算机上运行,​​如果计算机能够理解它在做什么,只要有足够的时间,一个有足够动力的人就可以做到。

我并不是说破解保护没有用。如果你让它足够难,破解者将花费很长时间来颠覆你的软件,以至于一旦他们这样做,那个版本就太过时了,以至于毫无用处。但正确地做到这一点非常困难,不幸的是,没有简单的创可贴解决方案可供外行人拍打。喜欢Tom said ,任何“只需将其插入”的防裂方法都可以很容易地“剪掉”。您的程序需要从一开始就设计为具有反破解方法。

无意侮辱你,如果你问这个问题,那么很明显你对软件保护的了解不够,无法设计或有效使用它,而且你显然没有准备好您需要参加军备竞赛,才能真正有效地保护您的软件。

很可能无论您正在写什么,都不值得将其锁定到极端水平。采取简单的方法。你的目标应该是让诚实的人保持诚实。只需编写一个普通的、简单的验证例程来检查用户的 key 在与用户的姓名、地址和其他信息结合时是否通过了一些校验和。对于您出售的每份拷贝,获取用户信息,生成 key 并将其提供给他们。更改每个版本的校验和,以便用户不能使用旧 key 。如果必须的话,将其与互联网上某种类型的定期“电话回家”系统相结合,在该系统中发布泄露(并因此被撤销)的 key 列表。

请记住,家庭电话系统往往会激怒您的诚实客户,而用糟糕的复制保护来伤害好客户(您永远不会再进行销售)比阻止非客户获得更糟糕你的程序的拷贝(无论如何你都不会得到的销售)。

破解者当然可以绕过它,但破解者不是您的客户。您无法阻止他们或改变他们的动机。最后,他们会做他们想做的事。

当然,坏客户可能会泄露他们的 key ,或者违反您的许可条款使用它(比如在太多计算机上运行它)。 key 可能会泄露或被盗,坏人可能会使用它,或者他们可能会使用破解版。你无法阻止这些事情的发生,但你确实有法律制度(一种社会解决方案)来处理它。

重要的是,您要避免花费太多精力来锁定事情,并避免让事情对您的合法客户来说过于严厉。毕竟,您是为那些客户而不是破解者编写软件的。激怒您的客户以让 cookies 变得更难一点是不值得的。

关于C++ API : license management to protect a software,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8294475/

相关文章:

git - 如何在 Github 上更改项目的许可证?

c++ - 盒子碰撞代码

Qt5 中带有 pigpio 库的 C++ 回调函数

api - Angular 2应用程序中的elasticsearch api

PHP-获取与 api 一起使用的单元格的值

licensing - 用于数据的 GNU GPL?

cocoa - 应用许可证生成器

c++ - 如何为 QTreeView 中的特定行创建自定义 QItemDelegate?

C++ 结构 - 错误 1 ​​错误 C2143 : syntax error : missing ';' before '*'

java - 在 Java 中生成 CSS 的 API