Poly Polymorphic Engine

Poly Polymorphic Engine is a programming encryption library that randomly generates an encryption algorithm & generates a corresponding decryption routine that is attached to the encrypted data.

What is a polymorphic engine?

Poly Polymorphic Engine is a programming library, created for encryption of data & code. It differs from other encryption libraries by its unique functionality: the construction of a different encryption algorithm during every encryption process, built from randomly selected encryption operations. The encrypted data is then packaged with an OS-independent decryption routine for the x86 Intel architecture.

Poly Polymorphic Engine is the only commercial polymorphic engine available on the market. It's a highly specialized cryptographic solution which is used in anti-cracking software protection systems and anti-reverse engineering systems. Due to the complicated nature of their code, polymorphic engines aren't publicly available, and creating one requires highly specialized knowledge in low level assembly programming and reverse engineering as well as an extensive testing process.

Security

Security

By using polymorphic encryption, you can be sure the encryption algorithm is different every time, because it's randomly generated. The encrypted data cannot be decrypted with generic decryption methods. The generated decryption routine is further protected against reverse engineering analysis with code mutation and obfuscation.

Stability

Stability

Poly Polymorphic Engine has been used for many years in our anti-cracking solution PELock. The library is stable and production verified, having been used in thousands of applications protected with PELock which are used by hundreds of thousands of customers.

Ease of use

Ease of use

The Poly engine library is available as 32 bit LIB and DLL libraries, as well as a source code package. The engine library is not dependent on any additional libraries and doesn't use any system functions. Universal programming interfaces for C/C++, Delphi and Assembler programming languages are available.

Compatibility

Compatibility

The generated decryption routine is compatible with even the oldest as well as the newest x86 and x86-64 architecture CPUs. It can run on any operating system, because it doesn't invoke any system functions.

Polymorphic engine usages

Poly Polymorphic Engine can be employed in any data encryption system, and especially in software protection solutions against cracking and reverse engineering.

Software protection tools
Software protection
Anti-piracy and DRM solutions
Anti-piracy & DRM solutions
Encryption systems
Encryption systems
Shellcode encoder
Shellcode encoder

Polymorphic engines are common among anti-cracking and anti-piracy tools like exe-protectors, virtualizers or crypters.

It is also used in shellcode encoders to hide static signatures of the common shellcodes from the IDS and antivirus software.

By using polymorphic encryption, it's not possible to create generic decryption tools for the encrypted data or the code encrypted in this way. Its strength relies on the fact that the encryption algorithm is randomly generated every time, as is the decryption routine. There is no encryption key constant or table, and additional code mutations and obfuscation measures make reverse engineering analysis extremely hard.

Better encryption

Polymorphic encryption will be of use in any application where you want to hide chunks of data, strings, messages or the content of additional application files in a non-trivial way.

Generated Poly Polymorphic Engine decryption routine.
Generated Poly Polymorphic Engine decryption routine.

Protection against modifications

Polymorphic encryption also protects encrypted data from unwanted modifications. If you select a popular symmetrical encryption algorithm, an attacker could easily decrypt the data, make modifications to the original data and re-encrypt the data again (e.g. to bypass security checks). When polymorphic encryption is used, this task is very complicated due to the uniqueness of the encryption algorithm and the additional protections against code analysis used in the decryption routine itself (like code mutations and obfuscation).

Questions?

If you would like to ask me about Poly Polymorphic Engine, or something's not clear, mail me. I'll be happy to answer all of your questions.