Changed files for new release

git-svn-id: https://svn.code.sf.net/p/jode/code/trunk@1212 379699f6-c40d-0410-875b-85095c16579e
branch_1_1
jochen 25 years ago
parent 7c03c14e23
commit 8481f0f500
  1. 10
      jode/NEWS
  2. 21
      jode/README
  3. 6
      jode/TODO
  4. 20
      jode/configure.in

@ -3,11 +3,11 @@ New in 1.0.93
* replaced a bash specific construct in acinclude.m4 * replaced a bash specific construct in acinclude.m4
* fixed a funny bug: string += "1" was decompiled as string++ * fixed a funny bug: string += "1" was decompiled as string++
* main class of decompiler is now jode.decompiler.Main * main class of decompiler is now jode.decompiler.Main
- better memory usage in decompiler * fixed a bug in ConstantAnalyzer (obfuscator) (produced wrong code)
- fixed a bug in ConstantAnalyzer (produced wrong code) * fixed more bugs in obfuscator
- swingui also uses getopt. * better memory usage in decompiler
- web pages updated. * fixed a bug in decompiler (couldn't handle nop instruction)
- javadoc api added. * web pages updated.
New in 1.0.92 New in 1.0.92
* option --pretty works again * option --pretty works again

@ -1,11 +1,12 @@
JODE (Java Obfuscator/DEcompiler) JODE (Java Optimize and Decompile Environment)
This is a decompiler and optimizer for java I have written in my spare This is a decompiler and optimizer for java I have written in my spare
time. It takes class files as input and produces something similar to time. The decompiler takes class files as input and produces
the original java file. Of course this can't be perfect: There is no something similar to the original java file. Of course this can't be
way to produce the comments or the names of local variables (except perfect: There is no way to produce the comments or the names of local
when the java files were compiled with `-g') and there are often more variables (except when the java files were compiled with `-g') and
ways to write the same thing. But jode does its job quite well. there are often more ways to write the same thing. But jode does its
job quite well.
Please note that most software licenses forbid to decompile class Please note that most software licenses forbid to decompile class
files. Use this decompiler only, if you have legal rights to files. Use this decompiler only, if you have legal rights to
@ -70,8 +71,8 @@ You need java jdk1.2 or above, and the gnu getopt package.
You should also have the jode-x.x.xx.jar file. Read INSTALL how to You should also have the jode-x.x.xx.jar file. Read INSTALL how to
compile it yourself. compile it yourself.
Jode also works with jdk1.1, you need the sun collection classes and Jode also works with jdk1.1, but you need the sun collection classes
swing in that case and you have to compile the jar-file yourself. and swing in that case.
Here are some URLs for the tools and packages you may need: Here are some URLs for the tools and packages you may need:
@ -98,13 +99,13 @@ jode-x.x.xx.jar, the gnu getopt package and the sun collection package
for 1.1. For the swingui program you also need swing in you classpath. for 1.1. For the swingui program you also need swing in you classpath.
You can then decompile a class file with: You can then decompile a class file with:
java jode.Decompiler --classpath jarfile1.jar,jarfile2.jar org.package.Class java jode.decompiler.Main --classpath jarfile1.jar,jarfile2.jar org.package.Class
For a graphical user interface based on swing try: For a graphical user interface based on swing try:
java jode.swingui.Main --classpath jarfile1.jar java jode.swingui.Main --classpath jarfile1.jar
The obfuscator/deobfuscator can be run with: The obfuscator/deobfuscator can be run with:
java jode.obfuscator.Main --script obfuscation.script java jode.obfuscator.Main obfuscation.jos
See XXXX for more information about the script syntax. See XXXX for more information about the script syntax.

@ -1,14 +1,13 @@
This is a list of features, that would be nice to have: This is a list of features, that would be nice to have:
Decompiler: Decompiler:
- deinline inlined methods. - outline inlined methods.
- remove string decrypt method. - remove string decrypt method.
- remove synthetic methods if and only if all calls to them are resolved. - remove synthetic methods if and only if all calls to them are resolved.
~ handle try catch more thouroughly/safely. ~ handle try catch more thouroughly/safely.
~ decompile jode.jvm.Interpreter (hand optimized bytecode) ~ decompile jode.jvm.Interpreter (hand optimized bytecode)
Obfuscator: Obfuscator:
- read options from a script.
- flow obfuscation/optimization. - flow obfuscation/optimization.
- warn about Class.forName and list occurences. - warn about Class.forName and list occurences.
@ -25,7 +24,8 @@ User Interface:
- list fields/method of selected class. - list fields/method of selected class.
- show decompilation of selected method. - show decompilation of selected method.
- show usage of method/fields. - show usage of method/fields.
- syntax highlighting, hyper links etc. (look at java.swing.JEditorPane) - syntax highlighting, hyper links etc.
(look at java.swing.JEditorPane or at Java Insight)
- visual obfuscation/deobfuscation (like klassmaster?, better?) - visual obfuscation/deobfuscation (like klassmaster?, better?)
Internal: Internal:

@ -1,7 +1,7 @@
dnl Process this file with autoconf to produce a configure script. dnl Process this file with autoconf to produce a configure script.
AC_INIT() AC_INIT()
AM_INIT_AUTOMAKE(jode, 1.0.92) AM_INIT_AUTOMAKE(jode, 1.0.93)
dnl Checks for programs. dnl Checks for programs.
dnl AC_PROG_CXX dnl AC_PROG_CXX
@ -102,13 +102,17 @@ AC_MSG_CHECKING(for collection classes)
JODE_CHECK_CLASS(java.util.Set, $CLASSPATH:$CLASSLIB, JODE_CHECK_CLASS(java.util.Set, $CLASSPATH:$CLASSLIB,
[ COLLECTIONS="java.util" [ COLLECTIONS="java.util"
COLLECTIONEXTRA="java.lang" ], COLLECTIONEXTRA="java.lang" ],
[ JODE_CHECK_CLASS(com.sun.java.util.collections.Set, $CLASSPATH:$CLASSLIB, [ JODE_CHECK_CLASS(org.gnu.java.util.collections.Set, $CLASSPATH:$CLASSLIB,
[ COLLECTIONS="com.sun.java.util.collections" [ COLLECTIONS="org.gnu.java.util.collections"
COLLECTIONEXTRA="com.sun.java.util.collections" ], COLLECTIONEXTRA="org.gnu.java.util.collections" ],
[ AC_MSG_RESULT(no) [ JODE_CHECK_CLASS(com.sun.java.util.collections.Set, $CLASSPATH:$CLASSLIB,
AC_MSG_ERROR(You need the Java 1.2 collection classes in your classpath) [ COLLECTIONS="com.sun.java.util.collections"
]) COLLECTIONEXTRA="com.sun.java.util.collections" ],
] ) [ AC_MSG_RESULT(no)
AC_MSG_ERROR(You need the Java 1.2 collection classes in your classpath)
])
])
])
AC_MSG_RESULT($COLLECTIONS) AC_MSG_RESULT($COLLECTIONS)
AC_SUBST(COLLECTIONS) AC_SUBST(COLLECTIONS)
AC_SUBST(COLLECTIONEXTRA) AC_SUBST(COLLECTIONEXTRA)

Loading…
Cancel
Save