I'm looking for a tool which will give a acute performance in class or jar obfuscation and can contrive to obfuscate the jar easily. But for few day I stuck on searching for this tool. I know Proguard deserves itself, but I need a tool which will be very friendly and it can able to retrieve all available packages from the jar and show it. So that it will be easy to obfuscate. If I use Proguard I have to manipulate a configuration file called proguard.cfg that will be used during obfuscation and also I have to execute a command line, you know it is not only destructive but also very as tedious as ever. I know there are some available plugins for eclipse which are being used for obfuscation. But it is not acceptable because it is needed to write down a configuration file.
At length I got a tool named Zelix and working well according my requirements. But it can't perform all jar, it is giving some exceptions while analyzing classes and finally ceased to obfuscate.
Anybody can suggest me any other tool which will be better and can perform for all jar. I'm keenly waiting for your reply.
Here are a few good Jar obfusticators:
- Pro Guard
- yGuard
- JShrinker
- CafeBabe
and here is an article on Obfuscation and shows how to use Pro Guard and CafeBabe. Here is a yGuard example. JShrinker is relatively easier thanks to its GUI interface (hence I didn't look for any tutorial).
I used proguard that is very friendly. If you are using its GUI version is a very user friendly. You can use this software GUI very easily by running the giu jar of Proguard.
I have used Zelix succesfully in several large projects where there are thousands of classes that get obfuscated. Zelix can fail when it cant find some third party classes you may directly or indirectly refer. You can try excluding the class / package its failing to obfuscate or tell where to find all third party jars if that where it failing
in the Zelix config script add
exclude com.abc.Myclass;
or
fixedClasses com.abc.MyClass;
to add third party jars
classpath
"e:/META-INF/ant-1.5.1.jar"
"e:/META-INF/spring.jar"
"e:/META-INF/commons-io.jar";
Obfuscate tools may be some useful for your project. But there is no obfuscate tool that fulfill your desire.I give one option that is JavaGuard .But it is not sure as you want.