From 7442ded05931066feb5657d050bdd15280e42630 Mon Sep 17 00:00:00 2001
From: hoenicke
Date: Fri, 6 Aug 2004 17:54:28 +0000
Subject: [PATCH] Produce web pages with htp now. Changed gif to png.
git-svn-id: https://svn.code.sf.net/p/jode/code/trunk@1384 379699f6-c40d-0410-875b-85095c16579e
---
jode/build.xml | 22 +--
jode/config.props | 10 +-
jode/doc/a-logo.gif | Bin 894 -> 0 bytes
jode/doc/{applet.php => applet.htp} | 6 +-
jode/doc/{bluesky.php => bluesky.htp} | 13 +-
jode/doc/{download.php => download.htp} | 22 ++-
jode/doc/{faq.php => faq.htp} | 34 ++++-
jode/doc/favicon.xpm | 188 ++++++++++++++++++++++++
jode/doc/{feedback.php => feedback.htp} | 7 +-
jode/doc/{history.php => history.htp} | 7 +-
jode/doc/htp.def | 52 +++++++
jode/doc/{index.php => index.htp} | 39 +++--
jode/doc/jode-logo.gif | Bin 5809 -> 0 bytes
jode/doc/jode-logo.png | Bin 0 -> 5573 bytes
jode/doc/jode.htt | 67 +++++++++
jode/doc/{license.php => license.htp} | 7 +-
jode/doc/{links.php => links.htp} | 12 +-
jode/doc/poweredbyhtp.png | Bin 0 -> 3983 bytes
jode/doc/{usage.php => usage.htp} | 50 ++++---
jode/doc/w3c_ab.png | Bin 0 -> 1035 bytes
20 files changed, 429 insertions(+), 107 deletions(-)
delete mode 100644 jode/doc/a-logo.gif
rename jode/doc/{applet.php => applet.htp} (94%)
rename jode/doc/{bluesky.php => bluesky.htp} (90%)
rename jode/doc/{download.php => download.htp} (69%)
rename jode/doc/{faq.php => faq.htp} (71%)
create mode 100644 jode/doc/favicon.xpm
rename jode/doc/{feedback.php => feedback.htp} (82%)
rename jode/doc/{history.php => history.htp} (92%)
create mode 100644 jode/doc/htp.def
rename jode/doc/{index.php => index.htp} (70%)
delete mode 100644 jode/doc/jode-logo.gif
create mode 100644 jode/doc/jode-logo.png
create mode 100644 jode/doc/jode.htt
rename jode/doc/{license.php => license.htp} (85%)
rename jode/doc/{links.php => links.htp} (93%)
create mode 100644 jode/doc/poweredbyhtp.png
rename jode/doc/{usage.php => usage.htp} (89%)
create mode 100644 jode/doc/w3c_ab.png
diff --git a/jode/build.xml b/jode/build.xml
index c286bf1..4c292d5 100644
--- a/jode/build.xml
+++ b/jode/build.xml
@@ -40,7 +40,6 @@
-
@@ -250,19 +249,14 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/jode/config.props b/jode/config.props
index 3fd79b1..e9bdf86 100644
--- a/jode/config.props
+++ b/jode/config.props
@@ -19,10 +19,10 @@ javadoc.href=http://java.sun.com/products/jdk/1.2/docs/api/
# Remove the next line if perl is not installed.
perl.present=true
-# Is PHP installed on your system?
+# Is HTP installed on your system?
#
-# php is needed to generate html files from php files.
-# You also need perl.
+# htp is needed to generate html files from htp files.
+# see http://htp.sourceforge.net/
#
-# Remove the next line if either perl or php is not installed.
-php.present=true
+# Remove the next line if either htp is not installed.
+htp.present=true
diff --git a/jode/doc/a-logo.gif b/jode/doc/a-logo.gif
deleted file mode 100644
index cf0283900cd3cb32cab907d7bf9ec58f4121f9a9..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 894
zcmV-^1A+WUNk%v~VORhk0K@S>zy}ic0y}h-ywSmLS|9+UIrKNeQ
zt(26M|5JI-gM8aZ0>kl1p5H!|i&%U~d#kEnXN7qA=UshP#^gm!M00JmX)PI6zo0
zL2Nm48ij>~90UT38y+7Kc|K(m0|O2W6IVZi1&3fJgaraQ9u*rKIS~~VcL@d?3k9zY
zNk$WwA_10aKAeVeTp}DABOJnEIuRcU$_WLm6%8J!(*?~=RRaM50G1b47*;*L8NUFA
z5F>`?zlEa(jj|sV&mTGQ6?ms)7Y+^x0UUrMGGPLs9lkVVSO{PtLjVUvtZS!1l$|9@
z@UXgv$Br^cP{26|n5hZ^1{fUwAY_umVTOh-MWlmSj^@HqtQzQKm0%-0JU@X(DT2Vk
ztttT+SW&5jWr3J36^M9glO}}>q=XtM+
z;3`9xd9Fn&;%@>11i92+VH+1N+y`2dRBv%F}
z8AUcif(jZSf`azgryxBxY|sFRs3@~QK0ifZ2Z$b&Mhl5w830XvLpi%cedc3|q-F|=0ilS7>Rk>A
zG-4_(rN$zQDH|lWRV)#NW#lQQ
-The JODE Applet
+
Please be patience, loading the applet may take some time.
@@ -35,4 +34,5 @@ files from the same server as the applet, and this is the reason why
you have to use such a weird URL.
Save probably doesn't work, because it is forbidden by your browser.
-
+
+
diff --git a/jode/doc/bluesky.php b/jode/doc/bluesky.htp
similarity index 90%
rename from jode/doc/bluesky.php
rename to jode/doc/bluesky.htp
index 247df14..b87fc87 100644
--- a/jode/doc/bluesky.php
+++ b/jode/doc/bluesky.htp
@@ -1,10 +1,7 @@
-
-Blue Sky
+
This section contains features that I think would be great to have,
-but are also very hard to implement. The name of the section is
-inspired, by Mozilla.
+but are also very hard to implement.
Currently this are all my own ideas. But if you send me an idea
for an interesting feature, I will add it to this list.
@@ -34,8 +31,8 @@ assignments
int l_1 = array.length
String l_2 = object.getName()
-we could name them "length" and "name". If we
-have assignments:
+we could name them "length" and "name". If we
+have assignments:
MenuItem local_1 = new MenuItem("Open");
MenuItem local_2 = new MenuItem("Save");
@@ -69,4 +66,4 @@ copy them back into the java code.
This doesn't need to be built into the decompiler. A script that takes
the javadoc pages and the decompiled code can easily merge them.
-
+
diff --git a/jode/doc/download.php b/jode/doc/download.htp
similarity index 69%
rename from jode/doc/download.php
rename to jode/doc/download.htp
index 2a0aa80..968d2b8 100644
--- a/jode/doc/download.php
+++ b/jode/doc/download.htp
@@ -1,11 +1,10 @@
-
-Download
+
-Jode is available in the
-sflink("project/showfiles.php")?>download area in source or
-binary form. For compiling the source code, you need several other
-packages, check the links page. You
-need a unix like environment for compilation.
+Jode is available in the download area in source or binary
+form. For compiling the source code, you need several other packages,
+check the links page. You need a unix like
+environment for compilation.
The simplest way to get it, especially for non unix users, is in
precompiled form, though. There are two jar archives in the download
@@ -17,10 +16,10 @@ packages are already included in the archive.
jode-1.1.jar is for JDK 1.2 or better. It should run
without any other package.
+
-CVS Repository
-
-You can get the latest sources from the CVS
+
+You can get the latest sources from the CVS
repository. Follow the instruction on that page; use
jode
as modulename. If you want to checkout a
specific version you can use the -r
option:
@@ -36,5 +35,4 @@ the configure.in
file resides and run
aclocal && automake -a && autoconf
Afterwards follow the instruction in the INSTALL file.
-
-
+
\ No newline at end of file
diff --git a/jode/doc/faq.php b/jode/doc/faq.htp
similarity index 71%
rename from jode/doc/faq.php
rename to jode/doc/faq.htp
index e4d4a46..0de7f09 100644
--- a/jode/doc/faq.php
+++ b/jode/doc/faq.htp
@@ -1,10 +1,26 @@
-
+
+This is a list of some questions that pop up from time to time.
+
-
FAQ - Frequently Asked Questions
+
-This is a list of some questions that pop up from time to time.
+Does Jode support Java 5?
+
+It does not support generics/vararg method or the new for loop at
+the moment. It produces readable code and I think it may even compile
+again. But it is not compatible as the generics and varargs
+information is not included.
+
+Jode crashes with ExceptionHandler order failed
-Decompiler issues
+Try jode-1.1.2pre1 or the latest CVS version. If it still does not
+work rewrite jode.flow.TransformExceptionHandlers
and
+send me the fix :)
+
+Since Java 1.4 the format for finally and synchronized blocks
+changed again. It was always a very difficult task to reconstruct
+finally
blocks correctly and the code is huge and very
+hard to maintain. With Java 5 it gets even worse.
The decompiler crashes with a VerifyException, what can I do?
@@ -13,7 +29,8 @@ information about used classes. See the question about the
classpath.
This could also be caused by malicious bytecode, or because there
-is a bug in Jode's verifier.
+is a bug in Jode's verifier, or because Sun decided to change the
+definition of correct bytecode, again.
What should be included in the classpath?
@@ -37,7 +54,9 @@ it.
You should decompile the outermost class (MyClass
in
this case). The produced code contains the inner class.
-Obfuscator issues
+
+
+
What should be included in the classpath?
@@ -68,5 +87,4 @@ and methods of a class with their type signatures.
If you are interested in the format of type signatures read the
Java Virtual Machine Specification, Chapter 4.3 Descriptors
-
-
+
\ No newline at end of file
diff --git a/jode/doc/favicon.xpm b/jode/doc/favicon.xpm
new file mode 100644
index 0000000..5c02b83
--- /dev/null
+++ b/jode/doc/favicon.xpm
@@ -0,0 +1,188 @@
+/* XPM */
+static char * favicon_xpm[] = {
+"32 32 153 2",
+" c None",
+". c #000000",
+"+ c #686868",
+"@ c #A3A3A3",
+"# c #BFBFBF",
+"$ c #878787",
+"% c #3D3D3D",
+"& c #060606",
+"* c #171717",
+"= c #131313",
+"- c #0A0A0A",
+"; c #030303",
+"> c #090909",
+", c #373737",
+"' c #414141",
+") c #2F2F2F",
+"! c #010101",
+"~ c #020202",
+"{ c #FFFFFF",
+"] c #FBFBFB",
+"^ c #979797",
+"/ c #B1B1B1",
+"( c #C6C6C6",
+"_ c #ECECEC",
+": c #FEFEFE",
+"< c #A8A8A8",
+"[ c #1E1E1E",
+"} c #696969",
+"| c #C2C2C2",
+"1 c #E4E4E4",
+"2 c #EEEEEE",
+"3 c #F8F8F8",
+"4 c #8F8F8F",
+"5 c #ADADAD",
+"6 c #EDEDED",
+"7 c #CCCCCC",
+"8 c #8D8D8D",
+"9 c #FDFDFD",
+"0 c #E3E3E3",
+"a c #EBEBEB",
+"b c #F4F4F4",
+"c c #F1F1F1",
+"d c #E5E5E5",
+"e c #F7F7F7",
+"f c #E7E7E7",
+"g c #D6D6D6",
+"h c #6E6E6E",
+"i c #F2F2F2",
+"j c #656565",
+"k c #070707",
+"l c #BABABA",
+"m c #636363",
+"n c #0E0E0E",
+"o c #606060",
+"p c #262626",
+"q c #3A3A3A",
+"r c #DADADA",
+"s c #8A8A8A",
+"t c #2A2A2A",
+"u c #A5A5A5",
+"v c #FCFCFC",
+"w c #434343",
+"x c #4A4A4A",
+"y c #ACACAC",
+"z c #666666",
+"A c #161616",
+"B c #F6F6F6",
+"C c #2E2E2E",
+"D c #797979",
+"E c #151515",
+"F c #616161",
+"G c #121212",
+"H c #7C7C7C",
+"I c #AEAEAE",
+"J c #242424",
+"K c #DEDEDE",
+"L c #A1A1A1",
+"M c #FAFAFA",
+"N c #C5C5C5",
+"O c #F3F3F3",
+"P c #101010",
+"Q c #BBBBBB",
+"R c #0F0F0F",
+"S c #F9F9F9",
+"T c #494949",
+"U c #E8E8E8",
+"V c #181818",
+"W c #444444",
+"X c #A4A4A4",
+"Y c #272727",
+"Z c #C0C0C0",
+"` c #C3C3C3",
+" . c #404040",
+".. c #080808",
+"+. c #868686",
+"@. c #050505",
+"#. c #0B0B0B",
+"$. c #2C2C2C",
+"%. c #B3B3B3",
+"&. c #4E4E4E",
+"*. c #D3D3D3",
+"=. c #0D0D0D",
+"-. c #8E8E8E",
+";. c #747474",
+">. c #232323",
+",. c #515151",
+"'. c #464646",
+"). c #5A5A5A",
+"!. c #8B8B8B",
+"~. c #757575",
+"{. c #CECECE",
+"]. c #353535",
+"^. c #A9A9A9",
+"/. c #5B5B5B",
+"(. c #E9E9E9",
+"_. c #DFDFDF",
+":. c #E0E0E0",
+"<. c #C7C7C7",
+"[. c #D1D1D1",
+"}. c #BCBCBC",
+"|. c #B9B9B9",
+"1. c #252525",
+"2. c #B0B0B0",
+"3. c #F0F0F0",
+"4. c #C1C1C1",
+"5. c #E6E6E6",
+"6. c #969696",
+"7. c #6F6F6F",
+"8. c #9D9D9D",
+"9. c #3C3C3C",
+"0. c #E1E1E1",
+"a. c #B2B2B2",
+"b. c #B6B6B6",
+"c. c #777777",
+"d. c #7E7E7E",
+"e. c #767676",
+"f. c #949494",
+"g. c #9F9F9F",
+"h. c #D2D2D2",
+"i. c #D5D5D5",
+"j. c #DDDDDD",
+"k. c #EAEAEA",
+"l. c #858585",
+"m. c #CBCBCB",
+"n. c #7D7D7D",
+"o. c #474747",
+"p. c #202020",
+"q. c #5E5E5E",
+"r. c #B5B5B5",
+"s. c #919191",
+"t. c #929292",
+"u. c #4F4F4F",
+"v. c #141414",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+". . . . . ",
+"+ @ # $ % . . . & * = - . . . . ; > , ' ) . . . ! ; ; ; ~ . . ",
+"{ { { { ] ^ / ( _ { { : < [ } | 1 2 3 { { { ( 4 5 1 2 2 2 6 7 8 ",
+"{ { 9 1 0 0 _ { { { a # ( b { { { c 0 0 d e { { { { a 0 0 0 0 f ",
+"{ { g . . . h { i j k . . * l { { m . . ! n o i { : p . . . . q ",
+"{ { r s t . u v w . x y z . A B { C . D D E . F { 6 ~ G H H H I ",
+"{ { { : J . K L . , ] { M E . N O & P M { Q . R S Q . T M M ] { ",
+"{ { { U ~ V 9 W . X { { { Y . Z ` . .{ { U ! ..b +.. @.#.#.$.{ ",
+"{ { { %.. &.{ E . *.{ { e =.~ 1 -.. ;.{ { N . >.: ,.. '.).).!.{ ",
+"{ { { ~.. $ { P . {.{ { < . ].{ ).. ^.{ { /.. H 9 [ . (.{ { { { ",
+"_.:.<.E ! [.{ ' . o 6 }.* ; |.{ 1.. 2.` j ! 1.3.d ! = Z 4.4.5.{ ",
+"6.! . . 7.{ { <.n . ; . > 8.{ 2 ! . . . . 9.0.{ a.. . . . . b.{ ",
+"7 c.d.l { { { { 1 -.e.f.1 { { a g.g.g.< h.{ { { *.g.g.g.g.g.c { ",
+"{ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ",
+"i.j.M { { { { { { { { { { { { { { { { { { { { { { { { { { { k.l.",
+". . R F H l.{.9 { { { { { { { { { { { { { { { ] U m.8 n.+ o.... ",
+" . . . . E p.q.~.~.r.(.i.s.).t.[.@ d.u. .v.! . . . . ",
+" . . . . ! . . . . . . . . ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" "};
diff --git a/jode/doc/feedback.php b/jode/doc/feedback.htp
similarity index 82%
rename from jode/doc/feedback.php
rename to jode/doc/feedback.htp
index ee5b665..d260c0f 100644
--- a/jode/doc/feedback.php
+++ b/jode/doc/feedback.htp
@@ -1,6 +1,4 @@
-
-
-Feedback
+
You can report bugs to the bug forum.
@@ -10,5 +8,4 @@ users.sourceforge.net. Please mention jode in the
subject.
There is a mailing list. Check this page for subscription informations.
-
-
+
\ No newline at end of file
diff --git a/jode/doc/history.php b/jode/doc/history.htp
similarity index 92%
rename from jode/doc/history.php
rename to jode/doc/history.htp
index 9ed1962..f12e608 100644
--- a/jode/doc/history.php
+++ b/jode/doc/history.htp
@@ -1,6 +1,4 @@
-
-History
-
+
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
@@ -19,5 +17,4 @@ 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.
-
-
+
\ No newline at end of file
diff --git a/jode/doc/htp.def b/jode/doc/htp.def
new file mode 100644
index 0000000..b53a900
--- /dev/null
+++ b/jode/doc/htp.def
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jode/doc/index.php b/jode/doc/index.htp
similarity index 70%
rename from jode/doc/index.php
rename to jode/doc/index.htp
index 6454670..4952c8d 100644
--- a/jode/doc/index.php
+++ b/jode/doc/index.htp
@@ -1,20 +1,16 @@
-
+
JODE is a java package containing a decompiler and an
-optimizer for java. This package is freely available under the GNU GPL.
-New: The bytecode package and the core decompiler is now under
-GNU Lesser General Public License, so you can integrate it in your
-project.
+optimizer for java. This package is freely
+available under the GNU GPL.
The decompiler reads in class files and produces something
similar to the original java file. Of course this can't be
perfect: There is no way to produce the comments or the names of local
variables (except when compiled with debuging) and there are often
more ways to write the same thing. However, JODE does its job quite
-well, so you should give it a try and selflink("applet") ?>start the
-applet. Jode has support for all constructs of JDK-1.3 including
-inner and anonymous classes.
+well, so you should give it a try and start the
+applet.
The optimizer transforms class files in various ways with
can be controlled by a script file. It supports the following
@@ -29,14 +25,25 @@ fields
Optimizing local variable allocation
-News
+
+
+
-- JODE 1.1.1 is out. With support for javac v8 (jdk 1.3).
-- The license changed to LGPL for the bytecode interface and decompiler.
+- JODE 1.1 is out. With support for javac v8 (jdk 1.3).
+- JODE is now hosted by SourceForge.
+- Now long lines are automatically broken.
+- Inner and anonymous classes are automatically decompiled.
+- The optimizer (aka obfuscator) can be customized via a small
+config file
+
+
+
-Known bugs of the decompiler
+The current version has problems try/catch/finally code produced
+ by java 1.4 compiler. You may try the latest CVS version or pre-release
+ instead.
Some jdk1.3 synthetic access functions aren't understood. The
produced source contains access$xxx functions, but it still compiles.
@@ -45,7 +52,9 @@ fields
If you have such a problems don't hesitate to issue a bug report.
Please include the class
file if possible.
-Limitations
+
+
+
If not all dependent classes can be found, the verifier (which is
run before decompilation starts) may exit with a type error. You
@@ -64,4 +73,4 @@ the code should still be compileable. This does especially happen
when you compile with `-O' flag and javac has inlined some
methods.
-
+
\ No newline at end of file
diff --git a/jode/doc/jode-logo.gif b/jode/doc/jode-logo.gif
deleted file mode 100644
index e22ca73259daa28d8197f7b70bfd380bbf92523f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 5809
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