#I am attempting to test Jode by getting it to do something
#as obfuscate one Java Class with its main method.

#I have examined and edited the example script "myproject.pos",
#and am finding that I am apprently getting a silent error.

#Please, can someone examine my .pos code below, and tell me what I should do,
#in the .pos file and at the prompt (WINXP_SP3)?
#(Where do I specify the .class or .jar/war/ear to be obfuscated just to start with?


#########################################################################




#prompt> java jode.obfuscator.Main myproject.jos

# This is a sample script file to obfuscate my project

# The class path should include everything that is needed to run the
# project.  Don't forget the java base classes (rt.jar or classes.zip).
classpath =
"c:\\Program Files\\Java\\jre6\\bin",
"c:\\Program Files\\Java\\jdk1.6.0_13\\bin",
"c:\\Documents and Settings\\Administrator\\Desktop\\poi-3.6\\poi-contrib-3.6-20091214.jar",
"c:\\Documents and Settings\\Administrator\\Desktop\\poi-3.6\\poi-ooxml-3.6-20091214.jar",
"c:\\Documents and Settings\\Administrator\\Desktop\\poi-3.6\\poi-scratchpad-3.6-20091214.jar",
"c:\\Documents and Settings\\Administrator\\Desktop\\poi-3.6\\poi-3.6-20091214.jar",
"c:\\Documents and Settings\\Administrator\\Desktop\\poi-3.6\\poi-ooxml-schemas-3.6-20091214.jar",
"c:\\Documents and Settings\\Administrator\\Desktop"

# The jar, zip file or directory in which the obfuscated class files
# should be written.
dest = "c:\\Documents and Settings\\Administrator\\Desktop\\obfuscated.jar"

# Write the reverse translation table to translat.tbl.  With the help of
# this table you can later undo the renaming.
#revtable = "translat.tbl"

strip = "unreach","lvt","inner"

# this variable will tell, which classes and packages should be included
# in the obfuscated.jar package.
#load = new WildCard { value = "org.myorg.myproject" },
#       new WildCard { value = "org.myorg.mylib*" },
#       new WildCard { value = "org.otherorg.shortlib" }

# this variable will tell, which classes and packages must not be
# renamed.
#preserve = new WildCard { value = "org.myorg.ApplicationClass.main.*" },
#           new WildCard { value = "org.myorg.AppletClass.<init>.()V" },
#           new WildCard { value = "org.resources.BundleClass*.<init>.()V" },
#           new MultiIdentifierMatcher {
#               and = new WildCard { value = "org.myorg.publiclib.*" },
#                 new ModifierMatcher { access = "PUBLIC" }
#       }

# There are different renamers currently.  This is just an example that
# produces very good obfuscated code, that is still valid bytecode.
renamer = new StrongRenamer {
  charsetStart = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ"
  charsetPart = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ0123456789_$"
  charsetPackage = "abcdefghijklmnopqrstuvwxyz"
  charsetClass = "abcdefghijklmnopqrstuvwxyz"
}

# The constant analyzer does a great job to remove constant fields and
# deadcode.  E.g. if you obfuscate the decompiler applet it will
# remove the whole debugging code, since the applet doesn't need it.
analyzer = new ConstantAnalyzer

# The LocalOptimizer will reorder local variables to use fewer slots.
# It may still have some bugs, so remove it if your applet doesn't
# work (and send me the class).
# The RemovePopAnalyzer will remove instructions that were optimized
# away by the ConstantAnalyzer and LocalOptimizer.
post = new RemovePopAnalyzer


#########################################################################