The Enigma Protector
The Enigma Protector is a powerful tool designed for complex protection of program modules. Program modules include the following types of objects:
- Win32 Portable Executable file (*.exe);
- Windows Screen saver files (*.scr);
- Dynamic Link Libraries (*.dll);
- 32 bit ActiveX control files (*.ocx);
- .NET executables (*.exe).
In this context the term "protection" means realization of two major ideas. The first one is "try before you buy" concept support system (the mentioned concept is the main principle of the shareware marketing method). And the second one is protection of program module machine code from analysis and cracking. As it can be seen, the protection is realized in different, but nevertheless greatly interrelated aspects which are protection of the developer's economic interests and technical protection of a software product. Later we will consider these ideas in more detail.
The Enigma Protection and motivation for buying
"Try before you buy" conception support system
Almost every commercially distributed software product has a customer-key protection system. The software developers have to build various enciphering algorithms into their programs. In many cases these algorithms have low anti-cracking and anti-direct-enumeration protection rate. Suggested "try before you buy" concept support system provides functionality which is necessary to work with registration keys. It gives easy ways of interaction between the software developer and the user (customer). Functions of unique keys generation (within a certain project scope) have a high protection rate. The Enigma Protector uses enciphering algorithms which are congruous to RSA algorithm with the key of 512 bit length. This makes it impossible for a cracker to create spurious registration keys. Functionality of the program module trial limitation is also provided. The user who works with the protected program has an ability to try its operational capability within some period of time. At the end of this period, the program module can no longer work normally. To restore this ability, it is necessary to perform the ordering procedure (which usually requires payment).
Protection of program module machine code
During the distribution of their own program product, every shareware developer faces the problem of cracking. Herewith serial numbers, spurious key generators and so on get a wide access. The effect of this "try before you buy" concept is invalidated and the shareware marketing method loses its efficiency. For the developer this reveals itself in reduction of amount of monthly sales and loss of profit. The suggested protection of machine code inckudes creation of series of considerable hardships on the way of persons (crackers) who try to perform an unauthorized code analysis and modifications for the purpose of illegal use. Machine code compression and enciphering are supported. It is possible to make a considerable reduction of the program module size without the loss of its working capacity.
To start working with The Enigma Protector read the following sections:
Managing of licenses
The Enigma Protector includes several unique tools for managing licenses:
- License manager serves for storing licenses generated for the registered users. License manager allows to create customer records and generate licenses. It is a very useful, user-friendly and simple manager!
- Mailer serves for automatic generation and sending of emails to the users stored in the database. For any software developer sending notification emails to the registered users is a common thing. For example, if the newest version of the software has been released or a new registration scheme has been implemented, the Mailer provides you with a very simple way of automatic email generation and sending.
What can The Enigma Protector do?
The Enigma Protector has a hard scheme of registration keys generation:
- comfortable interface for creating and verifying registration keys. You do not need to look for any safe decisions on how to generate registration keys for customers. The Enigma Protector helps you to create keys with a very safe algorithm like RSA with up to 512-bits key length!
- special Enigma API. Enigma API is a set of special functions to communicate between the module and the Enigma loader. You are able to get full information about registration keys, current trial parameters, etc.
- hardware locking of registration keys. This perfect feature helps you to generate registration keys for a particular computer only! The registration key generated with the hardware locking function enables work only on one PC you have chosen.
- time limited registration keys. If you need to limit the time of usage of a registered version of the module, you will be able to do it, just create a time-limited registration key!
The Enigma Protector has a wide range of features to limit time of module usage:
- executions, days, date, time limitations. The main idea of shareware modules is "try before you buy". The customer should see how the application works and what features it has, let's show these features but do not forget to limit usage time to increase motivation to buy application.
- system clock control. This feature is used to control system clock reversing. It helps you to avoid dishonest customers.
The Enigma Protector has a lot of features to make your software resistant to cracking:
- anti-debugger tricks. Debuggers are the special tools that allow you to reverse source machine codes of the executed module. All reverse engineers use these tools to understand how your module works or how the module protection works. Using this feature helps to avoid simultaneous execution of the protected module with debug tools.
- control sum checking. Control sum is special data which helps to understand if the data region is modified or not. Every crack (removing of protection etc.) needs to modify some of machine code region. The Enigma Protector is able to check if the sources are modified and an alert is made. The Enigma Protector checks not only machine codes of the protected module, but also own sources!
- set startup password. Sometimes you need to limit count of users who are using protected module to a particular group, startup password feature is the most safe decision.
- any additional features to check number of simultaneously executed copies of the protected module, file name of the module, disk type where the module is executed.
- checkup of external files. If your application package contains any other files except the main protected executable module you may use this feature to control these files against modifications.
- checkup of executed processes. This feature is used for checking if some files/processes are executed. It is performed by checking of module file name, process windows text or class. This may help to avoid execution of protected module if any debuggers/screencaptures/monitores are executed.
- checkup of installed services.
- checkup of Windows version.
- checkup of Virtual Machines. If the file is executed under Virtual Machine (VMWare, Virtual PC etc) the execution is terminated.
- hard modifications of import table of the executable. Nobody will know what import libraries your module uses.
The Enigma Protector has features to help the programmer to add beautiful things into existing module without writing any additional sources strings:
- splash screen. Add splash screen to the module startup. Choose your own picture to be shown when the module starts.