From 0c1d7a4b7c39783bc47e749dd7c6f1d8acc4bd67 Mon Sep 17 00:00:00 2001
From: hoenicke
Date: Mon, 7 Oct 2002 16:45:47 +0000
Subject: [PATCH] Made HTML/4.0 conform; minor updates
git-svn-id: https://svn.code.sf.net/p/jode/code/trunk@1373 379699f6-c40d-0410-875b-85095c16579e
---
jode/doc/applet.php | 2 +-
jode/doc/bluesky.php | 4 ++--
jode/doc/download.php | 4 ++--
jode/doc/faq.php | 2 +-
jode/doc/footer.inc | 4 ++--
jode/doc/header.inc | 6 +++---
jode/doc/index.php | 16 ++++++++--------
jode/doc/license.php | 6 ++++++
jode/doc/links.php | 2 +-
jode/doc/menu.inc | 2 +-
jode/doc/usage.php | 25 ++++++++++++-------------
11 files changed, 39 insertions(+), 34 deletions(-)
diff --git a/jode/doc/applet.php b/jode/doc/applet.php
index 14c07c5..edb127f 100644
--- a/jode/doc/applet.php
+++ b/jode/doc/applet.php
@@ -6,7 +6,7 @@
My plan is looking at the assignments. If we have locals in
-assignments
+assignments
int l_1 = array.length
String l_2 = object.getName()
@@ -40,7 +40,7 @@ have assignments:
MenuItem local_1 = new MenuItem("Open");
MenuItem local_2 = new MenuItem("Save");
-good names would be miOpen
and miSave
.
+good names would be miOpen
and miSave
.
It is currently possible to assign a (hint name,type) pair
to a local. If the type matches, the local will be named after
diff --git a/jode/doc/download.php b/jode/doc/download.php
index bb7376e..2a0aa80 100644
--- a/jode/doc/download.php
+++ b/jode/doc/download.php
@@ -16,7 +16,7 @@ the swing interface, you have to download swing separately, all other
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.
+without any other package.
CVS Repository
@@ -35,6 +35,6 @@ the configure.in
file resides and run
aclocal && automake -a && autoconf
-Afterwards follow the instruction in the INSTALL file.
+Afterwards follow the instruction in the INSTALL file.
diff --git a/jode/doc/faq.php b/jode/doc/faq.php
index 5aa6d74..e4d4a46 100644
--- a/jode/doc/faq.php
+++ b/jode/doc/faq.php
@@ -50,7 +50,7 @@ library even when you don't want to obfuscate it.
is not what you want. This only makes sure the class won't be
renamed, it doesn't prevent it from being stripped. Instead you
should preserve methods and constructors. The constructor is just a
-method with the special name <init&rt;.
+method with the special name <init>.
Another common mistake is to omit the type
signature, e.g. to preserve Class.main instead of
diff --git a/jode/doc/footer.inc b/jode/doc/footer.inc
index bb3b3d5..c95004a 100644
--- a/jode/doc/footer.inc
+++ b/jode/doc/footer.inc
@@ -2,8 +2,8 @@
|
diff --git a/jode/doc/header.inc b/jode/doc/header.inc
index ed76c8f..e8f8805 100644
--- a/jode/doc/header.inc
+++ b/jode/doc/header.inc
@@ -21,7 +21,7 @@ function selflink($link) {
function sflink($link) {
echo "";
}
-?>
+?>
Java Optimize and Decompile Environment (JODE)
@@ -40,7 +40,7 @@ body { color:#000000; background-color: #FFFFFF; }
-
+
Powered by Best viewed with JODE is a java package containing a decompiler and an
optimizer for java. This package is freely available under the GNU GPL.
+?>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.
The decompiler reads in class files and produces something
similar to the original java file. Of course this can't be
@@ -10,7 +13,8 @@ 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.
+applet. Jode has support for all constructs of JDK-1.3 including
+inner and anonymous classes.
The optimizer transforms class files in various ways with
can be controlled by a script file. It supports the following
@@ -28,12 +32,8 @@ fields
News
-- 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
+- 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.
Known bugs of the decompiler
diff --git a/jode/doc/license.php b/jode/doc/license.php
index ad283f7..08c9a89 100644
--- a/jode/doc/license.php
+++ b/jode/doc/license.php
@@ -8,6 +8,12 @@ href="http://www.gnu.org/copyleft/gpl.html">GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
+You can redistribute some of the packages under the
+terms of the of the GNU Lesser General
+Public License as published by the Free Software Foundation. See
+the copyright headers in the source code.
+
This program is distributed in the hope that it will be useful,
but without any warranty; without even the implied warranty of
merchantability or fitness for a particular purpose. See the
diff --git a/jode/doc/links.php b/jode/doc/links.php
index af6a4cc..0b9fc00 100644
--- a/jode/doc/links.php
+++ b/jode/doc/links.php
@@ -37,7 +37,7 @@ href="http://jedit.standmed.com/plugins/JavaInsight">JavaInsight plugin for
A great place for developing free software is
diff --git a/jode/doc/menu.inc b/jode/doc/menu.inc
index 0e6bfa5..a741623 100644
--- a/jode/doc/menu.inc
+++ b/jode/doc/menu.inc
@@ -13,7 +13,7 @@ $menu =
"Blue Sky" , "selflink", "bluesky");
?>
-
+
Java Interface
Obfuscator
*/ ?>
-
-Using the Decompiler
+
After you have downloaded the jar archive
put it into your CLASSPATH. The package
swingall.jar is also needed if you are using JDK 1.1.
@@ -32,7 +31,7 @@ that you can use. You can extract it with the following command:
Edit the file to adapt it to your paths and put it to a convenient location.
-Command Line Interface
+
The most powerful way to start JODE's decompiler is the command
line interface. Some people don't like long command lines; they
@@ -50,7 +49,7 @@ If you want to decompile a jar package you can do it this way:
If you have installed the batch file/script, you can use it like this:
jode --dest srcdir program.jar
-AWT Interface
+
The AWT Interface looks exactly like the
applet. In fact the applet uses the AWT Interface. You start it
@@ -65,7 +64,7 @@ dot(.) separated name of the class you want to decompile.
Press the start button and the decompiled class should
appear. You can save it via the save button.
-Swing Interface
+
For the swing interface you need java version 1.2 or the separately
available swing package (see link
@@ -86,28 +85,27 @@ you don't have the source code. You can also use it to trace bugs in
library code. It is not meant to generate java files and so
you won't find a save option there.
-Java Interface
+
If you want to integrate JODE into your own java program,
you can use the jode.decompiler.Decompiler
-class. Note that the GPL only allows you to integrate JODE
-into GPL programs. Please tell me if you use JODE in this
-way.
+class. Note that the LGPL allows dynamic linking as long as you don't change
+Jode itself. Please tell me if you use JODE in this way.
You should ship jode-1.1-embedded.jar with your program. This jar file is
available in the sflink("project/showfiles.php") ?>download area.
It works only under JDK 1.2 and above.
-Using the Obfuscator
+
To use the obfuscator you should first create a script file, say myproject.jos. Then you can invoke the
obfuscator with:
java jode.obfuscator.Main myproject.jos
-
+
The script file should contain the following options:
@@ -216,6 +214,8 @@ analyzer is to mark all reachable methods, find out which methods
needs to get the same name (overloading), and which method names
mustn't change (overload of library methods, e.g. nextElement
for Enumerations). There are currently two analyzers.
+
+
- SimpleAnalyzer
- Straight forward analyzer. It is fast and will remove dead code
on method basis.
@@ -227,7 +227,6 @@ and replace constant instruction with a load of the constant, or
remove them completely. This analyzer is especially useful to
revert the flow obfuscation of some other obfuscators.
-
analyzer = new ConstantAnalyzer
| |