How do you protect your software from illegal dist

2019-01-03 07:36发布

I am curious about how do you protect your software against cracking, hacking etc.

Do you employ some kind of serial number check? Hardware keys?

Do you use any third-party solutions?

How do you go about solving licensing issues? (e.g. managing floating licenses)

EDIT: I'm not talking any open source, but strictly commercial software distribution...

25条回答
2楼-- · 2019-01-03 08:01

If you are a software developer, one of the possible solutions is to embed a meta data direct into your product. Check out for an instance Destruction Security tool from theredsunrise.

查看更多
我命由我不由天
3楼-- · 2019-01-03 08:02

Make part of your product an online component which requires connection and authentication. Here are some examples:

  • Online Games
  • Virus Protection
  • Spam Protection
  • Laptop tracking software

This paradigm only goes so far though and can turn some consumers off.

查看更多
女痞
4楼-- · 2019-01-03 08:03

Even if you used some kind of biometric fingerprint authentication, someone would find a way to crack it. There's really no practical way around that. Instead of trying to make your software hack-proof, think about how much extra revenue will be brought in by adding additional copy protection vs. the amount of time and money it will take to implement it. At some point, it gets to be cheaper to go with a less rigorous copy protection scheme.

It depends on what exactly your software product is, but one possibility is to move the "valuable" part of the program out of the software and keep it under your exclusive control. You would charge a modest fee for the software (mostly to cover print and distribution costs) and would generate your revenue from the external component. For example, an anti-virus program that is sold for cheap (or bundled for free with other products) but sells subscriptions to its virus definitions update service. With that model, a pirated copy that subscribes to your update service wouldn't represent much of a financial loss. With the increasing popularity of applications "in the cloud", this method is becoming easier to implement; host the application on your cloud, and charge users for cloud access. This doesn't stop someone from re-implementing their own cloud to eliminate the need for your service, but the time and effort involved in doing so would most likely outweigh the benefits (if you keep your pricing model reasonable).

查看更多
【Aperson】
5楼-- · 2019-01-03 08:03

I suggest simple activation key (even if you know that it can be broken), you really don't want your software to get in your users way, or they'll simply push it away.

Make sure that they can re-download the software, I suggest a web page where they can logging and download your software only after they paid (and yes they should be able to download as many times they wish it, directly, without a single question about why on your part).

Thrust your paid users above all, there is nothing more irritating that being accused from being a criminal when you are a legit users (DVD's anti-piracy warnings anyone).

You can add a service that checks the key against a server when online, and in case of two different IPs are using the same key, popup a suggestion to buy another license.

But please don't inactivate it, it might be a happy user showing your software to a friend!!!!

查看更多
【Aperson】
6楼-- · 2019-01-03 08:07

The simple, and best solution, is just to charge them up front. Set a price that works for you and them.

Asking paying customers to prove that they are paying customers after they've already paid just pisses them off. Implementing the code to make your software not run wastes your time and money, and introduces bugs and annoyances for legitimate customers. You'd be better off spending that time making a better product.

Lots of games/etc will "protect" the first version, then drop the protections in the first patch due to compatibility problems with real customers. It's not an unreasonable strategy if you insist on a modicum of protection.

查看更多
Evening l夕情丶
7楼-- · 2019-01-03 08:08

Generally there are two systems that often get confused -

  • Licensing or activation tracking, legal legitimate usage
  • Security preventing illegal usage

For licensing use a commercial package, FlexLM many companies invest huge sums of money into licensing think they also get security, this is a common mistake key generators for these commercial packages are prolifically abundant.

I would only recommend licensing if your selling to corporations who will legitimately pay based on usage, otherwise its probably more effort than its worth.

Remember that as your products become successful, all and every licensing and security measure will be breached eventually. So decide now if it is really worth the effort.

We implemented a clean room clone of FlexLM a number of years ago, we also had to enhance our applications against binary attacks, its long process, you have to revisit it every release. It also really depends on which global markets you sell too, or where your major customer base is as to what you need to do.

Check out another of my answers on securing a DLL.

查看更多
登录 后发表回答