Software Protection

PELock Software Protection & Software License Key System

Software copy protection against cracking & reverse engineering with anti-cracking & anti-debugging techniques. Software license key system with time trial options.

PELock Software Protection & Software License Key System

Software copy protection against cracking & reverse engineering with anti-cracking & anti-debugging techniques. Software license key system with time trial options.

PELock Software Protection & Software License Key System

Software copy protection against cracking & reverse engineering with anti-cracking & anti-debugging techniques. Software license key system with time trial options.

Can you say that your software is protected in all aspects? PELockgives you solutions for all of the above threats, so you don’t have to design, implement and test your own software protection using your customers’ systems as a testing ground for your non-standard methods.

Intellectual property theft

Unprotected software is highly vulnerable to reverse engineering analysis, and by using specialized reverse engineering tools it’s possible to gather a lot of information from a compiled application. It’s possible to recover fragments of original source code, e.g. secret algorithms, and in certain conditions it’s even possible to restore the entire source code of the application.

Competitors can take advantage of the technical knowledge obtained in the process of reverse engineering to clone functionality of your software. These are not things taken from movies about hackers but harsh realities that can affect any software maker.

Decompiled software function

are not things taken from movies about hackers but harsh realities that can affect any software maker.

Game hacks

Computer games are exposed to hacks — applications that can modify a game’s internal code and algorithms to give an unfair advantage over other players in online battles and tournaments.

An example of a game hack is a popular modification for FPS games called a wallhack. It allows you to see other players’ positions through the walls. Another popular modification is called aimbot, an automated bot that can perfectly aim your gun at your opponents and fire.

Proliferation of game hacks can kill the popularity of a game, since the game is ruined for honest players.

Conclusions

Losses to software developers due to cracking and reverse engineering can be huge, for both large and small companies, and it can hurt even more if you are an independent software developer, so you should always consider the appropriate software protection during the software design process.

In-house protections are not alwaysreally secure and safe. It pays to use a time-tested solution such as PELock, which uses the latest technical achievements in the field of software protection, and at the same time guaranteeing the maximum level of compatibility and stability.

What is required to protect an application?

To protect your software with PELock, all you need is the compiled application file. If you have access to the source code it’s highly recommended to use PELock SDKsystem functions to introduce additional protections and to use license key system functions.

SDK & usage examples

The SDK provides dedicated macros and functions which are responsible for communication between the protected application and the protection layer.

The more SDK features you will use, the better the protection and application integration will be, and so cracking or reverse-engineering the application will be more difficult for the attacker. The SDK and its usage examples are available in many programming languages e.g.:

C & C++ Programming Languages

C & C++

Are you programming in C or C++PELock has hundreds of usage examples, and SDKscompatible with many popular compilers and programming environments including Visual C++Intel C++ CompilerGCCMinGWG++ClangC++BuilderWatcom C++LCCPelles CDigital Mars.

Delphi & Pascal Programming Languages

Delphi & Pascal

If you’re building software in Delphi, no matter the version, you will find many usage examples and an additional component that makes PELock SDK usage even easier. You can also find usage examples for the Lazarus IDE and FreePascalcompiler.

PureBasic Programming Language

PureBasic

PureBasic is a modern version of the BASIC language with excellent code optimization, many built-in language functions and a devoted fan basePELock fully supports this programming language and provides a dedicated SDKwith hundreds of usage examples.

PowerBASIC Programming Language

PowerBASIC

PowerBASIC is an another version of the BASIC language, dedicated to building GUI and console Windows applications with a huge developer communityPELock fully supports this programming language and provides a dedicated SDK with hundreds of usage examples.

Assembler

Assembler

Are you coding in assembler for 32 bit x86 architecture processors with the MASMcompiler? The PELock SDKprovides everything that’s available to high-level languages and additional protections available exclusively for assembly code.

D Programming Language

D

The D programming language is gaining more and more popularity; it’s flexible, provides plenty of features and has great compilation speed. It’s used and supported by such companies as FacebookPELock provides a dedicated SDK and many usage examples for the D language.

What does the protection process look like?

The protection process is fully automated (it can be run from the command line) and consists of rebuilding, modification and encryption of the compiled software, its code, data structures, and adding additional code which manages the protection.

Application and protection code integration example

Below you can find sample usage of the basic encryption macros from the licensing system. Code between the two markers is encrypted during the protection process, and after the application is launched, the code is decrypted and executed only if a valid license key is found. The license key contains the decryption keys, so decryption is impossible without it. After the code is executed it gets re-encrypted.

  • C / C++
  • Delphi / Pascal
  • D
  • PowerBASIC
  • PureBasic

#include <windows.h> #include <stdio.h> #include <conio.h> #include "pelock.h" int main(int argc, char *argv[]) { // code between DEMO_START and DEMO_END will be encrypted in the // protected file and will not be available without the license key DEMO_START printf("Hello world from the full version of my software!"); DEMO_END printf("\n\nPress any key to exit . . ."); getch(); return 0; }

Protected & unprotected application differences

After protection, the application code is modified to protect it from reverse engineering analysis and attempts to recover its original form, which would make it possible to analyze or modify its code and data. Code, data and additional application resources are encrypted using strong cryptographic algorithms and multilayer polymorphic encryption. The protection code itself is transformed into a highly secure form using innovative metamorphic engine. It makes the analysis of the entire protection an extremely technically difficult and time consuming task, even for reverse engineering professionals.

It’s worth mentioning that after the protection, the application code is strictly integrated with the protection code; if an attacker tries to remove the protection code, the application itself will remain safe and it will be impossible to run and use it.

Software licensing

PELock provides a feature-rich license key system. It lets you control your software’s features using license key settings.

With its built-in license key manager you can easily add and manage license keys and users for your software, generate and verify license keys, and block illegally shared keys.

License key menager
Adding new user
Blocked and blacklisted keys
Adding license template

The license key system provides many API functions that can be used to read the name of the registered user from the key, verify key validity or read additional integer values and other data saved in the license key.

License key system usage example

Below you will find an example of how to read additional integer values stored in the license key that can be used anyway you want in your software:

  • C / C++
  • Delphi / Pascal
  • D
  • PowerBASIC
  • PureBasic

#include <windows.h> #include <stdio.h> #include <conio.h> #include "pelock.h" int main(int argc, char *argv[]) { unsigned int nNumberOfItems = 0; // code between DEMO_START and DEMO_END will be encrypted in the // protected file and will not be available without the license key DEMO_START printf("Hello world from the full version of my software!\n"); // read key integer value - you can use it however you want // you can store up to 16 integer values in license key nNumberOfItems = GetKeyInteger(5); printf("You can store up to %u items in the database\n", nNumberOfItems); DEMO_END printf("\n\nPress any key to exit . . ."); getch(); return 0; }

License keys are generated using strong cryptographic algorithms like RSA-2048. It’s impossible to create unauthorized license keys without the PELock project file.

Virtual DLL libraries

PELock has a built-in binder for additional application DLL libraries. It’s possible to merge your main application EXE file with any number of extra DLL libraries into a single output EXE file.

Virtual DLL library binder

If your application uses or requires additional DLL libraries you can hide them inside the protected application; no third party will be able to view it, nor will any other program have access to it, because the whole loading process is emulated in memory and nothing is written to disk, and it’s completely transparent from the application’s perspective.

Configuration flexibility

For proper application protection you don’t have to change any of the default settings. But if you want, take a look at the Options tab. You’ll find a variety of additional configuration settings that allow you to adjust the protection to the smallest detail to suit your needs.

Software protection settings
Advanced software protection settings
Application password protection
Custom active protection against cracking tools
Regions and language lock
Special options
Configuration
Application digital signature

Discover hundreds of extra PELockfeatures, so that you will not need to use any other protection tools for your application.

All options are described in detail in the help file. Do not be afraid to experiment; with just one click you can restore all default settings.

Compatibility & stability

PELock has been tested for allavailable 32 and 64 bit versions of the Windows operating system. And I’m not talking here only about the latest two or three versions of Windows.

Both PELock and the protection code added to the applications are compatible with:

Windows 10
Windows 8.1
Windows 8
Windows 7
Windows Vista
Windows XP
Windows Server 2012
Windows Server 2008
Windows Server 2003
Windows 2000
Windows NT 4
Windows ME
Windows 98
Windows 95

Guaranteed stability