AxProtector Java

Share:

Automatic Protection for Java Software

AxProtector Java is the ideal solution to save time and effort when it comes to integrating protection in your Java software. With AxProtector Java, you can protect your software against piracy and reverse engineering in a fully automated fashion.

AxProtector Java is available as a command line tool and can run in continuous integration in an automated build system.

A security shell, called AxEngine, is added to your Java application. During the first call of your application, an AxEngine method is registered in the runtime environment. This method is executed automatically during the loading of all classes and methods and makes sure that the protected classes and methods are decrypted automatically. AxEngine consists of Java components and native JNI (Java Native Interface) components.

AxProtector Java 1st generation

AxProtector Java 1st generation is still available for compatibility reasons. It encrypts a Java SE (J2SE) application at class level. Every single class is therefore encrypted separately in your Java application. For performance reasons, it is possible to exclude individual classes.

A security shell, called AxEngine, and a wrapper class are added to the Java application. The wrapper is added as the new main class in the application, and is thus executed first. This wrapper class first loads a Wibu class loader, and then the original main class. The Wibu class loader is responsible for the decryption of the protected classes. It uses AxEngine, which consists of Java components and native JNI components.

Security due to usage of JNI

Decryption and most of the security checks are done in the native JNI part of AxEngine. Without a matching license in a CmDongle or a CmActLicense, decryption is not possible. Compared to Java-only solutions, the use of native components increases security significantly. The native components are available for Windows, macOS, and Linux.

AxProtector Java adds state-of-the-art anti-debugging mechanisms to your Java application. The protected application makes sure that it runs in an original Oracle Java virtual machine. A modified or a homegrown virtual machine, which for instance dumps the decrypted classes, would be detected and the decryption of the protected classes would be refused. Debugging interfaces like JVMTI are identified as well.

Usage of CodeMeter API

When compared with the integration of CodeMeter API, AxProtector Java provides a high level of protection with minimal effort. The additional use of CodeMeter API is also possible.

This allows you to further strengthen software protection with the crypto-functions of our API, add data security and protection, and enter specific license queries.

Individual Licensing

With AxProtector Java, it is possible to encrypt different parts of your Java application using different Product Codes. By creating a license with a subset of all Product Codes, you restrict the usage of your application to the purchased functionality only. When using CodeMeter API, it is also possible to enable or disable graphical elements like buttons or menu entries.

The encryption with different Product Codes offers maximum security. Each Product Code uses a different AES key to encrypt your application. Without a matching Product Code, this key is not available and unauthorized decryption is not possible.

Anti-Reverse Engineering without Licensing

As with any other component of Protection Suite, it is possible to use AxProtector Java 1st and 2nd generation with a Protection-Only License. As a software vendor, you deliver CodeMeter Runtime and a generic license already activated together with your application. The decryption of your application takes place in the native part of CodeMeter Runtime, which improves security standards compared to Java-only solutions.