Most secure way to license software [closed]

2020-02-28 09:42发布

问题:

Closed. This question needs to be more focused. It is not currently accepting answers.

Want to improve this question? Update the question so it focuses on one problem only by editing this post.

Closed 4 years ago.

What is the best and most secure way to license software? Is there an existing program for doing so? I want to sell a script of mine, but I want to make sure that users cannot redistribute or sell it themselves (of course, if they deactivate the registration on their own computer and choose to resell, that is their choice).

The software language is VB.net.

Since I am not sure whether or not I could host a registration database of any sort, is there any way to keep licensing self-contained securely? I would like the user to be able to download the demo and be able to upgrade to the full version somehow.

Thanks for the help!

If there is not currently a software in existence to do this, how would i go about making one?

回答1:

Since I am not sure whether or not I could host a registration database of any sort, is there any way to keep liscensing self-contained securely?

No, there is no way to do it securely. Even if you do have a registration database, it is crackable.

Remove full version code from the demo. If you have a small amount of buyers, this lessens your chance of leakage greatly.

If you want to make copy protection, you should start reading up on it. Since you are asking about this, I can tell that it will take you a very long time to make decent copy-protection. It's best to just hire someone else to do it for you.

A .net obfuscator is probably the easiest and most effective solution for you.



回答2:

If your software is desired enough and done well people will pay for it. You are always going to have a % that never will. Rather than wasting time trying to stop them, focus on improving the product.

99.9% of companies don't want to steal something and rather not change your software for there needs. They rather buy something out of the box that will work.

Keep in mind Fog Bugz from Fog Creek ships with its complete source code, and they have no problems selling there software because it is a quality product.

Quality is important, focus on that not security.



回答3:

Take a look at the article Developing for Software Protection and Licensing; it explains how to choose a solution, why you should obfuscate your application and gives a number of tips for structuring your code to be harder to crack.

The thing to remember is that once your application is running on another machine, there is no 100% guaranteed way to prevent execution. What you can do, if you're careful, is raise the bar sufficiently high that it's easier to purchase your software than to crack it.

Obligatory disclaimer & plug: the company I co-founded produces the OffByZero Cobalt software licensing solution for .NET, which supports VB.NET natively.



回答4:

Generally there is no way to protect .NET software from craking it. It is too easy (especially using Reflector). So you need to perform some steps to be able to protect to some degree:

  1. Obfuscate the code (often very non-trivial task as you cannot obfuscate public interfaces exposed to reference them).
  2. If the software is a development component it can be protected using built-in .NET Licensing (by using .licx files in Visual Studio). One company the helps with this: http://www.infralution.com/
  3. User registration server (this won't protect from cracking, but will protect from "non-licensed" usage).

In any case Obfuscation is the main step as it is the only one thing that puts .NET assemblies closer to native binaries.



回答5:

Don't bother. If a user is determined enough to resell your script, there is absolutely nothing you can do to stop them. By doing so, you limit users who may want to tweak your script for non malicious reasons.



回答6:

with .net? Its very difficult to protect it.

Best bet is only do a trivial system and rely on peoples honesty. Make it easy and simple for those who actually buy your software.

Demo? omit code from the download.

basically, don't be too paranoid...



回答7:

It's not so much an answer to the question of licensing, but if you're concerned about your potential customers decompiling your assemblies then you should look into Obfuscation.

Obfuscation is performed on your release builds and it heavily modifies the naming of classes, methods, and fields within your application. If a user tries to regenerate the source code using a tool such as Reflector they will be met with a high level of difficulty in trying to make the code compile or function.

Update: To answer Cyclone's comment: Dotfuscator is probably the best known since it's been shipping with Visual Studio since 2003 (I think; not sure if it's limited to specific VS editions). Some quick Google searches turned up a tutorial on using it in Visual Studio 2008, and also some alternative options.



回答8:

There is only one way to secure that your software doesn't get pirated and it is to make most of the logic and/or communication reside on a server. Even then, if your product is popular enough, people will try to get hands on your server software to run it privately.