I am trying to use your JODE obfuscator code on a JDK1.3.1_01 java project. I get the following
error. Any ideas?
.......
used after analyze: 18630456
Renaming methods
Time used: 1082
Transforming the classes
Time used: 2603
used after transform: 20784888
Writing new classes
java.lang.ArrayIndexOutOfBoundsException
at jode.bytecode.BytecodeInfo.calculateMaxStack(BytecodeInfo.java:955)
at jode.bytecode.BytecodeInfo.prepareWriting(BytecodeInfo.java:1199)
at jode.bytecode.MethodInfo.prepareWriting(MethodInfo.java:97)
at jode.bytecode.ClassInfo.prepareWriting(ClassInfo.java:376)
at jode.bytecode.ClassInfo.write(ClassInfo.java:470)
at jode.obfuscator.ClassIdentifier.storeClass(ClassIdentifier.java:673)
at jode.obfuscator.PackageIdentifier.storeClasses(PackageIdentifier.java:381)
at jode.obfuscator.PackageIdentifier.storeClasses(PackageIdentifier.java:373)
at jode.obfuscator.PackageIdentifier.storeClasses(PackageIdentifier.java:373)
at jode.obfuscator.PackageIdentifier.storeClasses(PackageIdentifier.java:373)
at jode.obfuscator.PackageIdentifier.storeClasses(PackageIdentifier.java:373)
......
Logged In: NO
If I preserve all classes JODE works.
When I try to selectively to preserve classes I get the
same error, and earlier on I get a series of:
java.util.NoSuchElementException
at jode.bytecode.BytecodeInfo$1.next
(BytecodeInfo.java:123)
at
jode.obfuscator.modules.LocalOptimizer.calcLocalInfo
(LocalOptimizer.j
ava:370)
at
jode.obfuscator.modules.LocalOptimizer.transformCode
(LocalOptimizer.j
ava:916)
at
jode.obfuscator.MethodIdentifier.doTransformations
(MethodIdentifier.j
ava:175)
........
at
jode.obfuscator.PackageIdentifier.doTransformations
(PackageIdentifier
.java:322)
at jode.obfuscator.ClassBundle.doTransformations
(ClassBundle.java:421)
at jode.obfuscator.ClassBundle.run
(ClassBundle.java:526)
at jode.obfuscator.Main.main(Main.java:189)
Logged In: YES
user_id=563223
I seem to get this bug if I don't strip unreachable code
eg:
strip="lvt"
will fail but:
strip="unreach","lvt"
works!