CodeMeter CmAct – Software Activations Made Simple
CmAct provides you with a purely software based license management system for software applications, PDFs, audio and video files, and more. Part of the CodeMeter CmContainer architecture, gives you all the same protection and licensing options you get with CmDongles, just without the hardware. It’s a perfect solution for those cases where you don’t need the ultimate in security or can’t reasonably use a hardware device at your customer’s site.
One Architecture, Two Choices
With CodeMeter, you can protect your application or data files once (using AxProtector, IxProtector, Protection API (WUPI), Core API, or a combination of those choices) and select at the time of sale how you want to store the license. For a low-cost, high-trust solution to copy protection and license management, use CmAct. For riskier markets or more valuable IP, use CmDongle. Everything else is the same.
With either implementation of CodeMeter, your executable (or data file) is encrypted with AES 128-bit symmetric encryption technology, preventing piracy and reverse engineering. The license that you provide your customers is used to generate a key to decrypt the files when they are loaded into memory. That license can be stored either in a CmDongle, or in a CmAct implementation, where they are “bound” to a specific PC or laptop computer.
CmAct Binding Schemes
Licenses in a CmAct license file are bound to an individual PC. Specific properties of the PC or the installed OS are used to build up information used as a “Host-ID.” This Host-ID becomes part of the activation code. The activated license can only be used on the PC if the Host-ID has not changed significantly since its activation date.
CmAct’s Host-ID scheme gives you the choice of four binding schemes:
- SmartBind™ (patent pending) eliminates many of the “false positives” that can plague software activation schemes – a situation where a user has a legitimate copy of the product but the license manager tells them they need to re-activate the software.
- Hardware Binding Schemes bind the license to real hardware properties
- Configuration Binding Schemes bind the license to configurable system properties
- CmAct Binding Extensions let you bind the license to a custom value, string, or even a device.
Available only from Wibu-Systems for CodeMeter, SmartBind uses internal heuristics to determine whether a software activation is valid or not. SmartBind is the best choice for CmAct – all the others should be used only in unusual cases. All you have to do is select from three variable settings: Medium (the default and most appropriate for most situations), Tight, or Loose. With SmartBind, you don’t have to worry about the details of which hardware aspects of your customer’s computer might change. The algorithm takes care of it for you.
Want to learn more about SmartBind? Click the button below:
Hardware Binding Schemes
Normally SmartBind is the best choice, but for unusual situations you can also use a hardware binding scheme that uses network adaptor (ie MAC address), hard disk serial number, CPU information, or BIOS data. You can choose up to four and decide how many of the chosen properties must be present for the license to be valid. For example, you can pick all four, and specify that at least two of the four must be present.
Configuration Binding Schemes
Compared to hardware properties, binding to configurable properties is considerably weaker. In addition, the properties cannot be combined. Characteristics like network address, product serial number, etc are all available but rarely recommended instead of SmartBind.
Sometimes for legacy reasons it is necessary to bind a software activation to some additional information, like a custom serial number, custom license information file, third-party data, and so forth. CmAct Binding Extensions allow you to do just this.
A CmAct license that is not bound to a particular PC is used for a trial version. Because it is not bound to a PC, it can be freely installed on multiple computers and shared. Trial Versions are special cases of CmAct licenses, and cannot be re-activated after 90 days unless the user re-formats the hard drive.
A CmAct license can have a binding scheme of “None” which means that it can be licensed but not restricted to a particular PC. This allows for prevention of reverse-engineering and code tampering without protection against copying.
Normally you create the binding scheme with CodeMeter License Central. The end-user receives a license information file (.lif) containing information on the scheme used. This license information file may be shipped together with the software, e.g. as part of the installation, or sent separately to the end-user. This way, the developer is able to individually define the scheme for each installation. The binding scheme used is defined independently from the software.
Upon activation, CmAct uses the binding scheme in the .lif file to create the activation information on the user’s PC. In the event that the user moves the software to a new computer, or changes some or the entire hardware configuration on the bound PC, the ISV can use License Central to “reactivate” the software if the activation fails.
The license information file is comparable to an empty CmDongle, and holds the information of the CmAct Binding Scheme. When automatically activated, a CmAct license (a context file) is generated from the license information file, the product serial number, and the Host-ID.
The context file generated then is sent from the end-user to the developer. For this the following options exist:
- Directly from within your software by SOAP:
- Using CodeMeter License Central Internet Edition, you can automatically generate the context file and install the update file. You are also able to easily integrate the activation using an application automatically protected by AxProtector using an error message interface (DLL).
- Directly over a website:
- An installed CodeMeter Runtime is required, the user accesses the website, and the generation of the context file and the installation of the update file are done automatically.
- Indirectly over a website:
- The context file is generated by the user and is uploaded; afterwards the new update file is downloaded and manually installed by the user. This allows activation of a license on a PC which does not have internet access.
Activation by Telephone
The automated activation requires Internet access, however, not necessarily on the PC where the license has to be activated. But there must be a way to transfer data by files between this PC and another PC with internet access. In cases where this is not possible, Wibu-Systems offers activation by telephone. In contrast to the automatic activation, the license information file is not delivered empty, but holds a large part of the necessary information. Only a final piece – part of the cryptographic key – is transferred by phone for activation.
With “activation by telephone,” an installation identification number (hash) is created for the existing license information file on the user’s PC and consists of the Host-ID and the product serial number. The end user informs the developer’s help line of both this installation identification number and the product serial number over the telephone.
When using CodeMeter License Central the developer calculates the activation code, communicates it to the user, who in turn types it into the application activation window. The license is then activated.
If a developer wants to implement the automatic activation or activation by telephone he is provided with API functions to integrate activation into his software and into his design. For the automatically protected application you will find an implementation example in the error message DLL.
Developers are also able to automate the “activation by telephone.” Here, a voice-controlled computer or a web page is used instead of a person. In this case, the end-user types in the installation identification, and receives the result by telephone or display.
CmAct supports following operating systems (both 32- and 64-bit versions where available):
- Windows 2000
- Windows XP
- Windows Vista
- Windows 7
- Windows 2000 Server
- Windows 2003 Server
- Windows 2008 Server
- Mac OS X