Automatic Software Protection
Microcosm's Shell method is a simple way to automatically add copy protection to your software without having to modify the source code. Code is automatically added to your software which locks it to a licence inside a security key. The security key can be a hardware security dongle (Dinkey Pro) or a purely software-based key (CopyMinder). This process is fast but also very secure because it includes many different protection strategies.
When your software is first launched it will check for the presence of a valid security key. If it is not found then your program will terminate with an error message, otherwise it will run as normal.
While the user runs your software it will continue to check for the security key at regular intervals. If the key is removed then the program is terminated (after a warning to the user).
Encrypts Your Code and Data
The Shell method will encrypt code and data in your executable to prevent reverse engineering and protect your software IP. Additionally this protection continues while the software is being run, with large amounts of your code remaining encrypted even when your software is in memory.
The Shell method employs numerous anti-debug strategies to prevent your software from being debugged when it is run.
Data File Encryption
You can instruct your Shell-protected software to automatically decrypt/encrypt specific data files or types of data file on read and write access. This enables you to encrypt your data files so that they can only be accessed by your protected software and not by other external programs. (This feature is available for Dinkey Pro on Windows only).
Shell Protection and Software Licensing
You can use the Shell method to easily implement different software licensing models: one-off purchase, subscription, network licensing, trials/demos and pay-per-use.
However, to implement the feature-based licensing model you need to use the API method of protection instead. This involves modifying your source code to call our API. It gives you greater flexibility regarding when to check the security key and to use that to control the flow of your code. It also allows you to implement different protection techniques in your software.
For ultimate protection you can use both the API and Shell method to protect your software.