Online activation license management is a proven and generally accepted way to register and protect software.
A software product today is usually a free-to-try product of a kind. This means anyone can download it and use it without paying money. At the same time, such downloadable version is usually limited – either time limited or limited in its functions. In order to unlock the entire possibilities of a product and to be able to use it beyond the trial period, a user must purchase the software.
So let’s say, some user purchases the software. The vendor of the software gets notified about the purchase and now should unlock the full functionality of the product and remove any time restriction it has. How is this done?
Time and functional limitations are implemented using some kind of software protection system like VMProtect Ultimate. So the trick is to let this protection system know that the software is now purchased and should work in its full strength. Registration keys (license keys, activation codes) are used for that. Surely, you have seen many of them. Here is how it works.
Upon purchase, a user receives his personal registration key. Then, he should enter this key in the application. The application sends an encrypted query to the activation server and passes the registration key to it. The activation server checks if the key is valid, generates a serial number and sends it back to the software. The protection system of the software applies the serial number and finally unlocks certain functions of the application and removes all time limitations.
Since every user registers via the activation system, a vendor can manage and control every issued license: limit the number of times a license can be activated, block compromised registration keys, re-send lost keys and so on.
At the same time, online activation prevents unauthorized usage of the same license on multiple computers, stealing of the key and other types of frauds.
What is VMProtect Web License Manager (WebLM)?
Basically, any software vendor can take benefit of using VMProtect Web License Manager. WebLM delivers simple, fast and user-friendly way to embed an online activation system to software, track licenses and installations and manage license keys.
Web License Manager or simply WebLM is a full-featured software licensing and activation system. With it you can track online purchases, manage customers and license numbers, and control the number of installations of your programs.
WebLM easily integrates to all major e-commerce providers and automates most of routine license management and control tasks – keeping registration information, sending and re-sending license keys, blocking stolen license keys and managing online activations.
WebLM works in conjunction with VMProtect Ultimate. The former provides firm and secure protection of your software from attacks, while WebLM simplifies managing and distribution of license keys.
Who needs WebLM?
Here is a simple questionnaire to see, if you need WebLM:
1. You want to safely keep customer data and be able to refer to them at any time, regardless of the e-commerce provider.
2. You need a web-based activation system to restrict unauthorized installs of your product.
3. You want short, easy-to-type activation codes for your software without jeopardizing its hack-proof capabilities.
4. You want to send license keys to users automatically upon purchase.
5. You need a way to block stolen or compromised license keys.
WebLM is all of the above, but if you answered Yes to at least one question, you still want to try it.
How it works?
Here is a more technical description of how online activation is implemented in VMProtect Ultimate.
Whenever a user attempts to activate the software with an activation code the following happens:
1. The software calls VMProtectActivateLicense function. This function compiles and sends a POST request to the activation server containing all parameters specified in the settings of this VMProtect project. It also sends the activation code entered by a user and the hardware ID of the computer.
2. WebLM receives this request and looks for the specified activation code in the database. There can be several possible outcomes depending on whether the code is found or not.
a. If the activation code isn’t found in the DB, WebLM returns the ACTIVATION_BAD_CODE error;
b. If the code is found, but is blocked, WebLM returns the ACTIVATION_BANNED error to the app.
c. If the code is found, but it doesn’t match the product field, WebLM returns the ACTIVATION_BAD_CODE error. Obviously, a user can only activate the product or the product mode he did purchase. So if the hash of licensing parameters doesn’t match the hash of the given product, WebLM returns the ACTIVATION_BAD_CODE error. The hash of licensing parameters is encoded in the activation URL and is send along with other parameters upon activation attempt.
3. Then WebLM checks if the product or the product mode uses hardware id protection. If HWID binding is used, WebLM looks for a previously issued non-blocked license for that HWID. Otherwise, WebLM takes the very first license with no hardware binding. If a suitable license was found here, WebLM returns the corresponding serial number it to the application.
4. On the next step, WebLM calculates the number of available activations as follows: the amount of activations the activation code has minus the number of non-blocked licenses already issued for this activation code. If the result is zero or less, WebLM returns the ACTIVATION_ALREADY_USED error.
5. Next, WebLM checks the expiry date of the activation code. If such date is specified and that date has passed, WebLM returns the ACTIVATION_EXPIRED error.
6. If the number of available activations calculated on the step 4 is greater than zero, WebLM creates a license in accordance with product/mode parameters. The registration name and the e-mail of a customer are taken from the activation URL.
7. Finally, a new license (serial number) is returned back to the application.