What is Canner?
Canner protects your code from reverse engineering by creating a native Windows executable (EXE file) that contains an encrypted version of all of your application's classes and resources. The contents are decrypted in memory as they are requested by the JVM.
Canner encrypts and decrypts with the highly secure Blowfish encryption algorithm. The algorithm is implemented in native code, so the run-time overhead of decrypting your classes on the fly is minimal.
Is Canner an obfuscator?
No. Obfuscators transform an application's classes by renaming packages, classes, methods, and variables while preserving the logic of the code. At best, this approach might slow an attacker, but decompilation is still trivial. Even worse, other critical data, such as string constants and resources, are still easily readable.
Additionally, obfuscators often introduce subtle errors into your application, especially when the application uses reflection, serialization, or loads classes by name (via Class.forName(), for example). Such errors can be difficult to anticipate until your application mysteriously fails on a customer's system.
Canner avoids this problem completely since it makes no modifications to the contents of your JAR files apart from the initial encryption.
Is Canner a compiler?
No. Although Canner produces a native Windows executable, a JVM is still required. A "canned" application loads the JVM itself and invokes your main() method, just as Sun's java.exe does.
What is a Canner Template?
A Canner Template is a file which contains the native framework code necessary to create a JVM and decrypt your application's code. During the canning process, your JAR files are encrypted and combined with the template file to create a full-fledged Windows application.
Canner ships with two templates; they provide the same functionality as java.exe and javaw.exe from the standard JRE. In the future, Cinnabar will offer additional templates which provide extra features.
What are the other benefits?
In addition to protecting your code, Canner greatly simplifies distribution and startup. A "canned" application is entirely self-contained, so you don't need to distribute multiple JAR files. (An application can, of course, refer to external JAR files and other resources if you so choose.) And since Canner loads the JVM itself, it is in full control of the environment: there is no need for complicated java.exe command line options, and CLASSPATH headaches are a thing of the past.
How do I use Canner?
Canner can be used either as a command-line tool or interactively, using its built-in GUI. The GUI provides full access to all of Canner's options, allowing you to easily configure and run Canner.
Please click on an image below to see a full-size screenshot.
Application Options
JVM Options
Encryption Options
Canner Progress
|
In addition, Ant tasks are provided so that Canner can be easily integrated into your existing build process.
System Requirements
Cinnabar Canner currently runs on Windows NT 4.0/2000/XP. Canned applications will run on Windows 98/ME/NT 4.0/2000/XP. Canner requires an installed JRE or JDK version 1.2 or higher. If you would be interested in using Cinnabar Canner on other platforms, please contact us.
|