C++ API:许可证管理以保护软件 [英] C++ API : license management to protect a software

查看:49
本文介绍了C++ API:许可证管理以保护软件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm searching for a C++ and open source library to protect a commercial software again crack etc...

你认识一个吗?

推荐答案

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

I have a phrase I like to use for these types of situations: "You can't solve a social problem with a technological solution". If someone is sufficiently motivated to do something you don't like, you can't stop them. The harder you make it to do something, the harder they'll try to get around your barrier. In the end, the only way is to diminish their motivation, and that needs a social solution.

有效防止软件被破解是一个非常困难的猫捉老鼠游戏.随着您可以保护您的程序的每一项进步,有人会弄清楚并绕过它.毕竟,您的程序确实必须在计算机上运行,​​而且如果计算机能够理解它在做什么,那么只要有足够的时间,一个有足够动力的人就可以做到.

Effectively preventing software from being cracked is an incredibly hard cat and mouse game. With every advancement you can make protecting your program, someone is going to figure it out and get around it. After all, your program does have to run on a computer, and if the computer can understand what it's doing, given enough time, a sufficiently motivated person can do it.

我并不是说裂纹保护没有用.如果你让它足够难,破解者需要很长时间才能颠覆你的软件,一旦他们这样做,那个版本就已经过时了,以至于它没有用.但要做到这一点非常困难,不幸的是,没有简单的创可贴解决方案,外行人可以随便拍打.就像汤姆说的,任何坚持下去"的防裂方法都可以很容易地直接剪掉".您的程序需要从一开始就设计为具有防破解方法.

I'm not saying that crack-protecting isn't useful. If you make it hard enough, it will take crackers so long to subvert your software that once they do, that version's so out of date that it's useless. But doing this right is very difficult, and unfortunately there are no simple band-aid solutions that a lay-person can just slap on. Like Tom said, any "just stick it in" method of crack proofing can be just as easily be "snipped right out". Your program needs to be designed from the start to have an anti-cracking approach.

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

With no intention to insult you, if you're asking this question, then its clear that you don't know enough about software protection to design it in or to use it effectively, and you clearly aren't prepared for the arms race you need to be in to keep your software really powerfully protected.

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

Most likely whatever you're writing isn't worth the effort of locking it down to an extreme level. Take the simple approach. Your goal should be to keep honest people honest. Just write a plain old, simple verification routine to check if the user's key, when combined with the user's name, address, and other info, passes some checksum. For every copy you sell, take the user's info, generate the key and give that to them. Change the checksum with each version so users can't use old keys. If you must, combine that with some type of periodic "phone home" system over the internet, where a list of leaked (and thus rescinded) keys is published.

请记住,电话首页系统往往会惹恼您的诚实客户,而且用糟糕的版权保护(您永远不会再获得的销售)烧毁好客户比阻止非客户获得更糟糕您的程序的副本(无论如何您都不会获得销售).

Keep in mind that phone home systems tend to piss off your honest customers, and it's far worse to burn a good customer with bad copy protection (a sale you'll never get again) than to keep a non-customer from getting a copy of your program (a sale you wouldn't have gotten anyway).

当然,饼干可以绕过它,但饼干不是您的客户.你无法阻止他们或改变他们的动机.最后,他们将做他们将要做的事情.

Sure a cracker can get around it, but crackers aren't your customers. You can't stop them or change their motivations. In the end, they're going to do what they're going to do.

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

Sure a bad customer could give out their key, or use it against the terms of your license (like run it on too many computers). A key could leek out or be stolen, and a bad person could use it, or they could use a cracked version. You can't prevent those things from happening, but you do have the legal system (a social solution) to deal with it when it does.

重要的是,您要避免在锁定问题上花费太多精力,并避免对合法客户过于严苛.毕竟,您是为这些客户编写软件,而不是为破解者编写软件.惹恼你的客户,让饼干变得更难做一点是不值得的.

The important thing is that you avoid spending too much effort on locking things down and that you avoid making things too draconian for your legitimate customers. After all, you write software for your those customers, not for the crackers. Pissing off your customers to make thing just a little harder for the crackers is never worth it.

这篇关于C++ API:许可证管理以保护软件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆