The Obsidium software protection and licensing system allows
you to protect your program from unauthorized modifications (i.e. "cracking")
and provides you with a reliable yet easy to implement licensing system.
It supports almost all types of natively compiled 32-bit x86 applications.
Protected programs are compatible with any Windows operating system ranging from Windows 95
to Windows 7 (both 32 and 64-bit versions).
-
Code virtualization
Code Virtualization allows you to transform certain parts of your application's
code in order to make it harder to reverse-engineer, understand or modifiy.
Native machine code will be converted into functionally equivalent byte code that
is interpreted during runtime.
-
Encryption and compression of application code and data
In order to prevent disassembly and static analysis or modification
of your program file on disk, all code and data of your application will
be encrypted using a strong yet fast cipher (AES) and its integrity verified.
Additionally, you may choose to compress your application which will reduce
the size of the executable by up to 50 percent.
-
Time trials
Obsidium allows you to easily integrate time trial
functionality into your software. You may set a fixed expiration date or have the
application expire after a user defined number of days or executions.
-
Integrated licensing systems using strong public key cryptography
Obsidium offers two built-in licensing systems
that take advantage of high security asymmetric encryption to prevent generation
of fake license keys. Depending on your individual needs, you may choose
between long and short license keys (using RSA and elliptic curve cryptography,
respectively) which can be distributed to your customers in binary or textual form. Both types
of license keys support fixed expiration dates, hardware locking and license dependent
code encryption. Both internal systems allow you to store some additional data in
generated license keys.
-
Protection SDK directly supporting Delphi, C++ Builder, Visual C++, Visual Basic and others
Include files and sample applications demonstrating
the use of advanced features and the protection API are included in the
Obsidium package.
-
Transparency and ease of implementation
Implementing Obsidium in your application is quite easy and does not
require any advanced programming skills.
The protection system is completely self-contained and does not depend on the
installation of additional components such as services or drivers.
-
Counter-measures against disassembling, debugging, dumping and patching
Obsidium implements a number of counter-measures
against various techniques and tools commonly used by crackers.
-
Blacklisting of stolen or compromised license keys
License keys that were stolen (e.g. by credit
card fraud) or leaked by a customer can be added to a blacklist thus invalidating
the offending licenses in the next release of your software.
-
Integrated customer database
Obsidium's integrated user database allows you to keep track of your customers
and any license keys you issued to them.
-
Runtime code encryption
Important parts of your code can be protected
individually, providing extra protection against modifications while the
program is being executed. You may also protect code in such a way
that it can only be decrypted if a valid license key is present.
-
Automation of protection and license generation
If supported by your development
environment, newly compiled applications can be protected immediately.
Moreover, a license key generation library is included (as a Windows DLL
and Linux shared library) that can easily be integrated into your own
or a third party online registration service.
-
Hardware locking
License keys may be locked to a specific system
by validating a customizable list of components such as CPU, operating system,
harddisk and MAC address.
-
Password protection
For additional protection or to prevent unauthorized
use of your software, a password may be selected that has to be entered
in order to start the program.
-
Transparent data file encryption
Data file encryption will transparently intercept read/write operations to a
user-defined set of files and encrypt/decrypt any data written to/read from these files.
This feature allows your application to securely read to and write from data files
containing sensitive information without having to implement any encryption routines yourself.
-
Multilingual user interface