W
Will
I am looking for any Java class obfuscators that meet these requirements for
a large custom Java application:
1. The obfuscator must be controllable with text file.
- Mandatory: It must be possible to protect some classes and interfaces
from obfuscation. This means that class name and names of public methods and
fields must not be changed.
- Nice to have: It must be possible to specify list of classes to obfuscate
instead of or in addition to the list of classes protected from obfuscation.
- Nice to have: Support of regular expressions in the configuration files.
For example: com.uscsw.xload.cons*
2. Mandatory: Persistent names map. We must be able to rebuild parts of the
system keeping the same obfuscation map.
3. Mandatory: The obfuscator should not change names of the packages without
explicit permission.
4. It must be possible to run obfuscator as a command line utility.
5. Mandatory: The obfuscator should not dictate the structure of the
project. It must be possible to specify source and target directories as
parameters
6. Mandatory: Obfuscator should do obfuscation only. It should not build jar
files.
7. Mandatory: Obfuscator should not rely on class loading tricks. It should
work on the source level only. We are using custom class loaders all over
the code.
Those class loaders are relying on standard jar file structure where package
name corresponds to the directory name and class name equal to jar entry
name.
So we cannot allow other custom class loaders except ours to run. Otherwise
their API must allow creation of standard Class object from raw bytes so we
could call it in our custom class loaders.
Is there anything that comes close to meeting the requirements shown above?
a large custom Java application:
1. The obfuscator must be controllable with text file.
- Mandatory: It must be possible to protect some classes and interfaces
from obfuscation. This means that class name and names of public methods and
fields must not be changed.
- Nice to have: It must be possible to specify list of classes to obfuscate
instead of or in addition to the list of classes protected from obfuscation.
- Nice to have: Support of regular expressions in the configuration files.
For example: com.uscsw.xload.cons*
2. Mandatory: Persistent names map. We must be able to rebuild parts of the
system keeping the same obfuscation map.
3. Mandatory: The obfuscator should not change names of the packages without
explicit permission.
4. It must be possible to run obfuscator as a command line utility.
5. Mandatory: The obfuscator should not dictate the structure of the
project. It must be possible to specify source and target directories as
parameters
6. Mandatory: Obfuscator should do obfuscation only. It should not build jar
files.
7. Mandatory: Obfuscator should not rely on class loading tricks. It should
work on the source level only. We are using custom class loaders all over
the code.
Those class loaders are relying on standard jar file structure where package
name corresponds to the directory name and class name equal to jar entry
name.
So we cannot allow other custom class loaders except ours to run. Otherwise
their API must allow creation of standard Class object from raw bytes so we
could call it in our custom class loaders.
Is there anything that comes close to meeting the requirements shown above?