[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 ######################################################################### |