[Jode-users] Jode
Brought to you by:
hoenicke
|
From: Me M. a. I <sta...@li...> - 2010-10-14 09:33:01
|
#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
#########################################################################
|