CodeMeter SDK Quick Start Guide
CodeMeter SDK Quick Start Guide
CodeMeter®
■ Protection
■ Licensing
■ Delivery
About this Quick Start Guide
The Quick Start Guide is part of the CodeMeter media kit. It includes:
■ A DVD with the CodeMeter SDK (including CodeMeter Protection Suite) and CodeMeter
License Central
■ Two CmDongles that can be used as user dongle or developer dongle (Firm Security Box / FSB)
■ This Quick Start Guide.
The first part of the Quick Start Guide introduces you to the basic information about
CodeMeter, your options for integrating CodeMeter in your applications, and ways to create
licenses.
The second part includes step-by-step instructions for protecting an application and creating
licenses for it in only 30 minutes. This example uses CodeMeter Protection Suite for the quick
and secure encryption of a demo application from the CodeMeter SDK and a demo system of
CodeMeter License Central hosted in the Wibu Cloud for the creation of licenses.
If you want to start immediately with the step-by-step instructions, you can skip the next
three chapters.
2
Overview
Overview
Protecting and licensing your software with CodeMeter is a simple two-step process:
Both steps are completely independent, so you can choose which order you prefer.
While you integrate CodeMeter only once into every application, licenses are created multiple
times, individually for each client (called ‘user’ in this guide). For the simple and automated
creation of these licenses, you can integrate the license creation process into your processes
and tools as a third, optional step.
The licenses you create for your users can be stored in secure hardware (CmDongles) or an
encrypted, hardware-bound license file (CmActLicense). Both options are called CmContainers.
The licenses stored in a CmContainer can also be used in the LAN, WAN or in the cloud via
a license server.
3
Options for Software Integration
Target platforms AxProtector AxProtector AxProtector AxProtector AxProtector AxProtector AxProtector AxProtector
Windows macOs Linux .NET Python JavaScript Java Android
Windows x86 – – –
Windows x86_64 – – –
macOS x86_64 – – –
macOS ARM – – –
4
Options for Software Integration
application is launched. These check whether a valid license is available and then use secret
keys in the license to decrypt the application. The original code of your application will only
run after this process has been completed.
Protection Suite uses a two-step encryption process. Large amounts of data are decrypted
in the computer’s main memory. The keys needed for that purpose are decrypted via the
license they are stored on. In the case of CmDongles, this means that the keys never leave
their native hardware.
This two-step process offers two great advantages: Performance and security. Performance
is guaranteed by encryption in the main memory. For encrypting the keys, many alternative
sequences are integrated in the protected application, of which only one is selected at a
time during runtime. This means that the interface between the protected application and
CodeMeter will always be dealing with different data. This two-step encryption process that
relies on many alternative sequences is one of the key traits that make CodeMeter stand out
from normal obfuscators and other software protection products.
The integration happens on two levels: You request WUPI functions in your application.
During development, this uses a special library with wildcard functions that always return true
values. Before delivering your applications, you use CodeMeter Protection Suite to replace
these wildcards with cryptographic functions. This ensures that communication between your
application and CodeMeter uses only current protection mechanisms and does not rely on
simple yes-no decisions.
5
Options for Software Integration
When using CodeMeter Protection Suite, you decide whether you only replace the WUPI
functions or add automatic encryption.
WUPI is available for native Windows, macOS, and Linux applications and libraries as well
as .NET assemblies.
There are examples for using the CodeMeter Core API in a range of programming languages.
You can also use the interactive CodeMeter API Guide software to learn how to navigate
through the CodeMeter Core API, test queries, and create the code to be integrated in your
software.
6
Options for Creating Licenses
All four options are based on the same basic principle and use a High Level Programming
API (HIP).
All four options give you an opportunity for creating licenses directly and via a file-based
offline process. This offline process creates a fingerprint of the target CmContainer. A remote
context file (WibuCmRaC) includes the fingerprint and the licenses already contained in
CmContainer. You then create a remote update file (WibuCmRaU) that is imported into the
target CmContainer. The licenses are created immediately in that container. The remote
update file can only be imported once and only into the specified CmContainer.
7
Options for Creating Licenses
Own Applications
You have the option of developing your own application with which to create licenses that
match your requirements and processes. To do so, you can use either our traditional API (High
Level Programming API) or a web-based SOAP interface with CodeMeter License Central.
CodeMeter License Central is available both as an on-premise and cloud-based solution. You
can run the on-premise version yourself in your network or data center; the cloud-based
solution is maintained for you in the Wibu Cloud by our Operating Services Team. Both
solutions are fully compatible, and you can switch from on-premise to cloud-based versions
at any time. For a quick and easy start with CodeMeter License Central, we recommend to
use the cloud-based version.
The basic process for creating a license with CodeMeter License Central is simple: You
configure your products via CodeMeter License Central. This is done a single time for every
new product you want to license.
8
Options for Creating Licenses
Depot
Sales License
e-Commerce
Database Portal
Ticket Ticket +
Fingerprint
Admin
Ticket:
ABCDE-FGHIJ-KLMNO-PQRST-UVWXY
To create a license, you create a new order. This automatically produces an activation code
(ticket). You can use this ticket to create a license directly in the target CmContainer, or you
send the ticket to your user who can then retrieve the license and transfer it into an approved
CmContainer of his choosing. You also define which CmContainers are approved: CmDongles
or CmActLicenses. You can choose whether your users can return licenses and transfer them
to other CmContainers. CodeMeter License Central gives your user a self-service portal and
reduces your support efforts considerably.
CodeMeter License Central can use WebServices to connect with ERP systems, e-commerce
platforms, and CRM solutions.
9
Step-by-Step Instructions
Step-by-Step Instructions
Firm Code and Product Code
A license essentially includes two codes: The Firm Code and a Product Code. The Firm Code is
the code given to you by Wibu-Systems. The Firm Code 6000010 is a public evaluation code
that is already included in the Firm Security Box. You can choose any Product Code you want.
Typically, you would use a separate Product Code for each separate feature. In the following
example, we are using the code 201000. This Product Code has already been pre-configured
in the demo version of CodeMeter License Central, which we will use to create a license in
the next step.
If you want to protect a native application or Java app, you should select the correct project
type. The first steps are identical for all application types.
10
Step-by-Step Instructions
File Selection
The File Selection page lets you choose the application you want to protect.
In our example, we are using a simple sample application included in the CodeMeter SDK.
It is called SampleNotePad and can be found in a subfolder of “Public Documents”,
named “WIBU-SYSTEMS\Software Protection\C#\FirstSample\SampleNotePad\bin\
Release”. The filename is “[Link]”. Enter this application in the “Source File”
field. By clicking on the “…” button, you can select it in a “File Open” window. Similar
examples for native code can be found in the “Delphi” and “C++” folders.
AxProtector allows you to encrypt executable files (exe) and dynamic libraries (dll). The Java
variant supports Java Archives (JAR). Click “Continue” to get to the Licensing.
11
Step-by-Step Instructions
Licensing Systems
The Licensing Systems page lets you define which licenses are needed to start the protected
application.
Choose “CodeMeter” and enter the following values in the following fields:
12
Step-by-Step Instructions
These settings mean that your application will require a license with the Firm Code 6000010
and Product Code 201000 to run. Licenses with a Firm Code of > 6000000 can be stored
in secure hardware (CmDongle), or an encrypted license file bound to the computer
(CmActLicense).
You can skip through the next pages by clicking “Continue” until you reach the Summary page.
Summary
The Summary page shows you an overview of the configurations you have chosen.
Select “Finish” to complete the process and encrypt your application automatically. Your
encrypted application will now be placed in the folder “protected”.
13
Step-by-Step Instructions
[Link]
14
Step-by-Step Instructions
The additional modules “ChangeFont” and “HexView” can be used to create modular pro-
tections for your applications. This specialist approach is not covered in this Quick Start Guide.
When you have checked the right licenses, you click “Create Demo Ticket”.
The license was created in CodeMeter License Central and is ready to be retrieved by the user.
In actual operations, this would mean that you send your users the tickets they need.
In our example, we now switch sides with the user and transfer the licenses to our computers.
To do so, simply click the ticket.
15
Step-by-Step Instructions
6
6
We – acting as the developers – selected both options (CmDongle and CmActLicense) in this
example. As users, we can now select where the license should be stored. For our example,
we choose a CmActLicense bound to a computer.
The next page shows all suitable CmContainers for the selected license type. When running
this process for the first time, you will not yet have a fitting CmActLicense. The selection box
should display “Retrieve CmContainer automatically”.
16
Step-by-Step Instructions
A new CmActLicense is being created in the background. The fingerprint of your machine is
then sent to CodeMeter License Central, which will check whether a license can be created.
The license is then created and a license update returned to you. The license update is
imported into CmActLicense, and a receipt is sent to CodeMeter License Central.
After the successful activation of the license, you can start the protected application.
Congratulations! You have just protected and licensed an application successfully with
CodeMeter.
17
Next Steps
Next Steps
The licenses created in this example can be deactivated. As long as you have the ticket,
you can remove them from CmActLicense via WebDepot and reactivate them in another
CmActLicense on another computer or CmDongle.
When creating the license, you had the option to use the additional modules “ChangeFont”
and “HexView”. In the third example, these were used for modular protection to show you
how you can include features on demand.
The CodeMeter SDK includes the image of CodeMeter License Central for use on virtual
machines. Import this image into the virtualization software of your choice and configure
your products and modules.
This option allows you to create licenses completely offline and distribute them on ready-
to-use dongles or license files. Neither you nor your users need any Internet connection. An
activation wizard is available to help you move licenses into your application in addition or
as an alternative to WebDepot. You can find the relevant examples in the CodeMeter License
Central Internet Extensions.
18
4D interoperability in secure license management
Headquarters
WIBU-SYSTEMS AG
Zimmerstrasse 5
76137 Karlsruhe, Germany
Telephone: +49 721 93172-0
sales@[Link]
[Link]
Wibu-Systems is an innovative technology leader in the global software license lifecycle management market. In its mission
to monetize the business of software publishers and intelligent device manufacturers, Wibu-Systems has developed a
secure, unique, versatile, and award-winning suite of interoperable solutions that protect the integrity of digital assets,
technical know-how, and intellectual property against piracy, reverse engineering, tampering, sabotage, and cyberattacks.
CodeMeter, Wibu-Systems’ flagship technology, encrypts software, firmware, and sensitive data with the strongest
cryptographic algorithms and methods. The licenses generated are stored in secure elements, including industry-grade
portable hardware containers (USB dongles, secure memory cards, ASICs, TPMs), soft containers bound to the digital
fingerprint of the endpoint device, and cloud containers.
CodeMeter is available for PC, mobile, embedded, PLC, and microcontroller systems; its seamless integration with
existing back-office processes, such as ERP, CRM, and e-commerce platforms, provides an additional boost to operational
performance and logistics cost savings.
Ultimately, with CodeMeter, established sales processes can be redesigned to enable new customer-centric business
schemes that truly respond to the regional needs of the market.
WIBU-SYSTEMS WIBU-SYSTEMS
Spain | Portugal Scandinavia | Baltics
+34 91 123 0762 +46 8 5250 7048
sales@[Link] sales@[Link]
Wibu-Systems expressly reserves the right to change programs or this documentation without
prior notice.
® ® ® ® ®
© 2021 Wibu-Systems. WIBU , CodeMeter , SmartShelter , SmartBind and Blurry Box are reg-
istered trademarks of WIBU-SYSTEMS AG. All other brand names and product names used in
this documentation are trade names, service marks, trademarks, or registered trademarks of
their respective owners.