yGuard is a Java Bytecode Obfuscator and was developed to meet the many needs that our customers might have for obfuscating Java Bytecode. For example, you or your company might be planning to create a library or application that is written in Java and you do not want your customers to gain access to the source code. Giving away the '.class' files only is not a practical way of dealing with this issue as there are a large number of decompilers for Java, which can fairly accurately reproduce the source code of the given bytecode.
yGuard provides a well thought out solution to this problem by replacing the names of the packages, classes, methods, and fields. This means that the resultant decompiled source is completely unreadable to the outsider.
The second significant feature of yGuard is that, as a side effect of the obfuscation process, the size of the resulting Jars is greatly reduced. This brings the added benefits of shortened download time and faster execution, which means greater customer satisfaction.
yGuard uses a patched version of the Retroguard Obfuscator by Retrologic, which is distributed under LGPL. We have greatly improved upon the existing code and built a reusable library out of it. In addition, we created a highly configurable Ant task. This enables software developers to easily integrate the process of obfuscation into their build process. As most of the IDEs support Ant as a build tool nowadays, you can now use the yGuard obfuscation task from within your IDE.
The modifications and improvements we have provided to the library can be downloaded from our site (naturally, they remain under LGPL). yGuard itself is available independently under a separate license and is free of charge. We invite you to download this at no cost as a Jar file, which can then be integrated and immediately used in your Ant scripts.
Why yGuard should be your preferred solution
- yGuard is absolutely free! The commercial products of our competitors usually cost at least USD 100. yGuard is free.
- yGuard can integrate with Ant! Existing tools use proprietary mechanisms to invoke or configure the task of obfuscation. By using XML syntax, yGuard can be completely configured in every Ant task.
- yGuard can create patches! During each obfuscation run, yGuard produces XML output that can be used to create subsequent patches of already deployed obfuscated applications.
- yGuard will fix several severe problems that users tended to experience with the original Retroguard library.
- yGuard will correctly obfuscate programs that depend on external libraries.
- yGuard can automatically rename and adjust textual resource files according to the obfuscation.
- yGuard can scramble and unscramble or shrink line number table information. This means that debugging an obfuscated program is still achievable without weakening the obfuscation.
- yGuard supports JDK 1.5 (aka Java 5, code named Tiger) features and correctly obfuscates classes compiled with its new features.