From 8d1b0b36d26f8d47ff583aadb6452ad36cf0c2eb Mon Sep 17 00:00:00 2001
From: "(no author)" <(no author)@379699f6-c40d-0410-875b-85095c16579e>
Date: Thu, 8 Jul 1999 14:59:00 +0000
Subject: [PATCH] This commit was manufactured by cvs2svn to create tag
'mergedstable'.
git-svn-id: https://svn.code.sf.net/p/jode/code/tags/mergedstable@1060 379699f6-c40d-0410-875b-85095c16579e
---
jode/.cvsignore | 9 +
jode/AUTHORS | 1 +
jode/ChangeLog | 0
jode/INSTALL | 33 ++++
jode/Makefile.am | 5 +
jode/NEWS | 10 ++
jode/README | 106 +++++++++++
jode/acinclude.m4 | 44 +++++
jode/bin/.cvsignore | 2 +
jode/bin/Makefile.am | 4 +
jode/bin/jode.in | 14 ++
jode/configure.in | 139 +++++++++++++++
jode/doc/.cvsignore | 2 +
jode/doc/Makefile.am | 5 +
jode/{ => doc}/jode-applet.html | 4 +-
jode/{ => doc}/jode-obfuscator.html | 1 +
jode/{ => doc}/jode-unix.html | 3 +-
jode/{ => doc}/jode-useapplet.html | 2 +-
jode/{ => doc}/jode-win.html | 2 +-
jode/{ => doc}/jode.html | 5 +-
jode/jode/.cvsignore | 4 +
jode/jode/Decompiler.java | 2 +
...obalOptions.java => GlobalOptions.java.in} | 43 +++--
jode/jode/Makefile.am | 54 ++++++
jode/jode/bytecode/.cvsignore | 2 +
jode/jode/bytecode/ClassInfo.java | 25 ++-
jode/jode/bytecode/FieldInfo.java | 1 +
jode/jode/bytecode/Makefile.am | 46 +++++
jode/jode/bytecode/MethodInfo.java | 2 +
jode/jode/decompiler/.cvsignore | 2 +
jode/jode/decompiler/Makefile.am | 46 +++++
jode/jode/expr/.cvsignore | 2 +
jode/jode/expr/Makefile.am | 73 ++++++++
jode/jode/flow/.cvsignore | 2 +
jode/jode/flow/FlowBlock.java | 2 +
jode/jode/flow/Makefile.am | 70 ++++++++
.../jode/flow/TransformExceptionHandlers.java | 122 ++++++++-----
jode/jode/jvm/.cvsignore | 2 +
jode/jode/jvm/Makefile.am | 39 +++++
jode/jode/obfuscator/.cvsignore | 2 +
jode/jode/obfuscator/ClassBundle.java | 6 +-
jode/jode/obfuscator/ClassIdentifier.java | 164 +++++++++++-------
jode/jode/obfuscator/ConstantAnalyzer.java | 16 +-
jode/jode/obfuscator/FieldIdentifier.java | 2 +
jode/jode/obfuscator/Identifier.java | 5 +-
jode/jode/obfuscator/Main.java | 2 +-
jode/jode/obfuscator/Makefile.am | 53 ++++++
jode/jode/obfuscator/ModifierMatcher.java | 19 +-
jode/jode/obfuscator/SimpleAnalyzer.java | 106 ++++++-----
jode/jode/swingui/.cvsignore | 2 +
jode/jode/swingui/{Main.java => Main.java.in} | 16 +-
jode/jode/swingui/Makefile.am | 32 ++++
...eeModel.java => PackagesTreeModel.java.in} | 19 +-
jode/jode/type/.cvsignore | 2 +
jode/jode/type/Makefile.am | 38 ++++
jode/jode/util/.cvsignore | 2 +
jode/jode/util/Makefile.am | 60 +++++++
jode/test/.cvsignore | 2 +
jode/test/Makefile.am | 0
59 files changed, 1263 insertions(+), 215 deletions(-)
create mode 100644 jode/.cvsignore
create mode 100644 jode/AUTHORS
create mode 100644 jode/ChangeLog
create mode 100644 jode/INSTALL
create mode 100644 jode/Makefile.am
create mode 100644 jode/NEWS
create mode 100644 jode/README
create mode 100644 jode/acinclude.m4
create mode 100644 jode/bin/.cvsignore
create mode 100644 jode/bin/Makefile.am
create mode 100644 jode/bin/jode.in
create mode 100644 jode/configure.in
create mode 100644 jode/doc/.cvsignore
create mode 100644 jode/doc/Makefile.am
rename jode/{ => doc}/jode-applet.html (88%)
rename jode/{ => doc}/jode-obfuscator.html (90%)
rename jode/{ => doc}/jode-unix.html (98%)
rename jode/{ => doc}/jode-useapplet.html (96%)
rename jode/{ => doc}/jode-win.html (97%)
rename jode/{ => doc}/jode.html (97%)
create mode 100644 jode/jode/.cvsignore
rename jode/jode/{GlobalOptions.java => GlobalOptions.java.in} (79%)
create mode 100644 jode/jode/Makefile.am
create mode 100644 jode/jode/bytecode/.cvsignore
create mode 100644 jode/jode/bytecode/Makefile.am
create mode 100644 jode/jode/decompiler/.cvsignore
create mode 100644 jode/jode/decompiler/Makefile.am
create mode 100644 jode/jode/expr/.cvsignore
create mode 100644 jode/jode/expr/Makefile.am
create mode 100644 jode/jode/flow/.cvsignore
create mode 100644 jode/jode/flow/Makefile.am
create mode 100644 jode/jode/jvm/.cvsignore
create mode 100644 jode/jode/jvm/Makefile.am
create mode 100644 jode/jode/obfuscator/.cvsignore
create mode 100644 jode/jode/obfuscator/Makefile.am
create mode 100644 jode/jode/swingui/.cvsignore
rename jode/jode/swingui/{Main.java => Main.java.in} (96%)
create mode 100644 jode/jode/swingui/Makefile.am
rename jode/jode/swingui/{PackagesTreeModel.java => PackagesTreeModel.java.in} (91%)
create mode 100644 jode/jode/type/.cvsignore
create mode 100644 jode/jode/type/Makefile.am
create mode 100644 jode/jode/util/.cvsignore
create mode 100644 jode/jode/util/Makefile.am
create mode 100644 jode/test/.cvsignore
create mode 100644 jode/test/Makefile.am
diff --git a/jode/.cvsignore b/jode/.cvsignore
new file mode 100644
index 0000000..92379e3
--- /dev/null
+++ b/jode/.cvsignore
@@ -0,0 +1,9 @@
+Makefile
+Makefile.in
+configure
+config.log
+config.cache
+config.status
+stamp-h
+libtool
+aclocal.m4
diff --git a/jode/AUTHORS b/jode/AUTHORS
new file mode 100644
index 0000000..fc38b9f
--- /dev/null
+++ b/jode/AUTHORS
@@ -0,0 +1 @@
+Jochen Hoenicke -g
) and there are often more ways to write
+the same thing. But it does its job quite well.
You can donwload the files in zip form.
+The sources contain only the
+java
files, the classes
+contain only the class
files.
I also have a tar.gz file containing only
+the RCS
directories. This is the form I maintain the
+project, but you probably need unix and a few tools to use them.
There are also some snapshots that have new +features like inner and anonymous classes.
+ +Click here to browse the files online. +
+ + + +I have some simple step by step pages. There are three +possibilities: +
There may be situations, where the code doesn't understand complex +expressions. In this many ugly temporary variables are used, but the +code should still be compileable. This does especially happen when +you compile with `-O' flag and javac has inlined some methods.
+ +Sometimes this program may exit with an Exception
or
+produce incorrect code. Most time the code can't be compiled, so that
+it can be easily spotted. If you have one of these problems (except
+those that occur on some of the jode.test
files, I would
+be very interested in a bug report (including the class
+file, if possible).
Sometimes it generates some GOTO
expression and
+labels. This can't be compiled, but shouldn't happen any more with
+javac or jikes.
It doesn't handle inner and anonymous classes, yet. You can
+decompile them separately, though (use `+$
' switch under
+jikes), but there is a bug in javac, so that a final variable is twice
+initialized. If you encounter this problem just remove the doubled
+line by hand.
New! The latest snapshot can handle +inner and anonymous classes.
+ + +Someday I found guavad
, a disassembler for java byte
+code (it does similar things like javap -c
). I used
+it on a class file, and found that it was possible to reconstruct the
+original java code. First I did it by hand on some small routines,
+but I soon realized that it was a rather stupid task, and that I could
+write a perl
script
+that does the same. At the end of the next day I had a working
+decompiler.
Now while it was working, it was not easy to use. You had to
+decompile the code first with a disassembler, cut the method, you
+wanted to decompile and then run the perl script on it. So I decided
+to get some information of the class files and do this all
+automatically. I decided to write it in java
now,
+because it suited best.
Just for the records: the java code is now more than 50 times +bigger than the original perl script and is still growing.
+ +This code is under GNU GPL. That basically means, that you can copy +or modify this code, as long as you put all your modification under +the GPL again. Look +here for the complete license.
+ ++http://www.informatik.uni-oldenburg.de/~delwi/jode/jode.html, last +updated on 17-Jun-1999.
+ +