WinLicense combines the same protection-level as Themida with the power of advanced license control, offering the most powerful and flexible technology that allows developers to securely distribute trial and registered versions of their applications. WinLicense is a powerful protection system designed for software developers who wish to protect their applications against advanced reverse-engineering and software cracking. Developers do not need any source code changes or programming experience to protect their applications with WinLicense.
WinLicense uses SecureEngine® protection technology, which is able to run its code at the highest priority level to implement never before seen protection techniques; this protects any application with the highest level of security.
Here are just a few of WinLicense's protection features:
Multilevel encryption to protect code and data in an application.
Advanced detection of cracking tools.
Execution of code the highest level of priority to implement never before seen protection techniques.
Scrambles executable code, data, and APIs in the application to avoid any possible reconstruction of the original application.
Protection against all disassemblers and debuggers.
SDK offers two-way communication with SecureEngine® and the protected application.
Advanced technology which prevents dumping from memory to disk.
Fully customizable protection options and dialogs.
The main objective of WinLicense is to cover all current vulnerabilities in software protection. Most software protection programs claim to be the perfect solution against cracking, but this is far from reality. In the following list, we present the two main weaknesses in most software protectors and how WinLicense covers them.
• Obsolete protection techniques: Normally, software protectors use obsolete protection techniques that can be easily defeated with newest cracking tools. Even the newest software protectors are just a copy of older software protectors with just some new and not-very powerful techniques against software cracking. WinLicense uses a new and very advanced technology that detects any possible cracking attempt of an application and ensures each application is uniquely protected to avoid general attacks.
• Restricted execution by the OS: Current software protectors can only run their code with a “normal” privileges level. This means that they cannot implement advanced protection techniques which can only be executed in Kernel Mode, the highest operating system priority level. WinLicense runs parts of its code in Kernel Mode to implement the most advanced techniques against modern cracking, making it a unique protector.
WinLicense offers the widest range of options and features to create both trial and registered versions for an application. Developers can communicate with WinLicense to check the current state of the trial or registered versions of their application through a complete SDK. WinLicense also offers the capability to automatically handle all possible situations, such as when an application expires, a license is corrupted, etc., saving developers from including extra code into their applications.
Some of the most important licensing features included in WinLicense are:
Possibility to create Trial versions with multiple different expiration types like: expiration by days, by executions, by specific date, by minutes, by runtime, etc.
Possibility to extend the trial period in an application with Trial Extension Keys.
Powerful engine to store the trial status in the system to avoid trial period resetting by possible attackers.
Possibility to create different types of license keys for different developer needs.
Lock trial and license keys to a specific country.
Machine binding, which allows an application to run on a specific computer only.
Custom trial counters to keep control of limited resources in your trial versions.
Independent password protection for both Trial and Registered versions.
Possibility to create your own automation system with help from the external WinLicense DLL.
Complete SDK with over 50 different functions.
.NET SDK support for Trial and Registered versions.
Database-driven implementation to keep safe records of all your software, customers and licenses.
Embedded generators to create license keys, trial extension keys, and passwords for an application.
Customization for all trial/registration messages with possibility to include/exclude them from being displayed.
Many license managers seem very easy to use to add trial and licensing support inside an application. Then, when the developer needs extra licensing features or extra protection to protect sensible trial data, they get frustrated with the license manager that they use. In many cases, even amateur programmers that don't have knowledge in cracking and reversing tools can easily reset the trial period in protected applications. WinLicense was developed specifically to cover this vulnerability.
In the following, we present the main weaknesses in current license managers and how WinLicense solves them.
• Rigid License registration: Most license managers define the way that an application can be registered, offering limited ways to license an application. This forces developers to adapt their applications to the licensing system that they use, instead of the license manager adapting to a specific application. WinLicense offers multiple ways to license an application, fitting into any kind of program without limiting the developer's ideas to license his/her applications.
• Limited SDK to control the trial/licensing status: Most license managers offer a limited set of SDK functions to interact with the license manager. Subsequently, developers are limited in implementing their licensing ideas due to the lack of a function in the license manager. WinLicense exports more than 50 functions with its SDK to allow full control over the trial/licensing status in an application; many of these functions will give ideas to the developer for adding extra features into the application.
• Easy resetting of the trial period: Many license managers look very attractive and appear to be good solutions for creating trial periods in an application. The problem appears when a developer protects an application and realizes how easy it is to reset the trial period in the protected application by using cracking tools, leaving the trial application totally unprotected and open to infinite use. WinLicense offers the strongest solution available to store the trial period in a system through a complex engine called Trial Storing Manager®. This engine makes it extremely difficult for attackers to reset the trial period in any protected application with WinLicense.
• Weaknesses in machine-locked licenses: Many license managers offer support to lock a license key to a specific machine. To get the ID for a specific machine, they rely on specific Windows registry keys or common Windows API to get hardware information about a machine. This presents a major vulnerability in locked license keys due to the possibility of manually changing the machine ID and running an application that was locked to another machine. WinLicense is aware of that vulnerability, so the machine ID is obtained directly from the hardware using the SecureEngine® Kernel Mode technology. Attackers are unable to manipulate the real machine ID in their computers, so they cannot run applications that were locked to another computer.
If you are in software development, be it something as simple as a shareware programmer or a position as high as a project manager, you need to protect your software. While estimates on how much money is lost annually from cracking and fraudulent use of software vary wildly, the point is that money is lost…not just money, but your money. All software developers need to take steps to protect their programs from being used illegitimately; let WinLicense do that for you.