added bluesky

decompiler and applet changed the package


git-svn-id: https://svn.code.sf.net/p/jode/code/trunk@1197 379699f6-c40d-0410-875b-85095c16579e
branch_1_1
jochen 25 years ago
parent 80e2a7916c
commit 23d5d05fe3
  1. 11
      jode/doc/applet.html
  2. 95
      jode/doc/applet.html.in
  3. 110
      jode/doc/bluesky.html
  4. 1
      jode/doc/download.html.in
  5. 1
      jode/doc/history.html
  6. 26
      jode/doc/jode.html
  7. 1
      jode/doc/license.html
  8. 5
      jode/doc/usage.html

@ -24,16 +24,19 @@
<li><a href="usage.html">Usage</a></li> <li><a href="usage.html">Usage</a></li>
<li><a href="license.html">License</a></li> <li><a href="license.html">License</a></li>
<li><a href="history.html">History</a></li> <li><a href="history.html">History</a></li>
<li><a href="bluesky.html">Blue Sky</a></li>
</ul> </ul>
</td> </td>
<td> <td>
<h1>The <i>JODE</i> Applet</h1> <h1>The <i>JODE</i> Applet</h1>
<applet code="jode/JodeApplet.class" archive="jode-applet.jar" width=540 height=400> <applet code="jode/decompiler/Applet.class" archive="jode-applet.jar" width=540 height=400>
<param name=classpath <param name=classpath
value="http://www.informatik.uni-oldenburg.de/~mw/plasma.jar"> value="http://www.informatik.uni-oldenburg.de/~mw/plasma.jar">
<param name=class value="PlasmaApplet"> <param name=class value="PlasmaApplet">
</applet><br><br>http://www.informatik.uni-oldenburg.de <p>Sorry you need a java enabled browser to test a java applet :-p</p>
<p>Don't read the rest, it only contains information about the applet.</p>
</applet><br><br>
Press the start button to decompile <a Press the start button to decompile <a
href="http://www.informatik.uni-oldenburg.de/~mw/">Michael</a>'s <a href="http://www.informatik.uni-oldenburg.de/~mw/">Michael</a>'s <a
@ -46,12 +49,12 @@ Save probably doesn't work, because it is forbidden by the browser.<br><br>
You may give multiple entries in the class path field separated by a You may give multiple entries in the class path field separated by a
comma. The components may be local or remote zip or jar files or comma. The components may be local or remote zip or jar files or
directories. Note that browsers deny access to different hosts or directories. Note that browsers deny accesses to different hosts or
local files that are not in a subdirectory of the applet local files that are not in a subdirectory of the applet
directory.<br><br> directory.<br><br>
<h1>Removing security restrictions with Internet Explorer</h1> <h1>Removing security restrictions under Internet Explorer</h1>
<p>This information was submitted by <a <p>This information was submitted by <a
href="mailto:PopescuM@health.missouri.edu">Mihail Popescu href="mailto:PopescuM@health.missouri.edu">Mihail Popescu

@ -1,95 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
<html>
<head>
<title>Java Optimize and Decompile Environment (JODE)</title>
<meta name="robots" content="noindex">
<meta name="date" content="1999-10-24">
</head>
<body>
<table cellpadding=4 cellspacing=1 width=100%>
<tr>
<td></td>
<td> <img src="jode-logo.gif" alt="JODE" width=286 height=110></td>
</tr>
<tr>
<td valign="top">
<B><a href="http://www.informatik.uni-oldenburg.de/~delwi">Homepage</a></B>
<br><br>
<a href="jode.html">
<B>Jode</B></a>
<ul>
<li>Test It Online</li>
<li><a href="download.html">Download</a></li>
<li><a href="usage.html">Usage</a></li>
<li><a href="license.html">License</a></li>
<li><a href="history.html">History</a></li>
</ul>
</td>
<td>
<h1>The <i>JODE</i> Applet</h1>
<applet code="jode/JodeApplet.class" archive="jode-applet.jar" width=540 height=400>
<param name=classpath
value="http://www.informatik.uni-oldenburg.de/~mw/plasma.jar">
<param name=class value="PlasmaApplet">
</applet><br><br>http://www.informatik.uni-oldenburg.de
Press the start button to decompile <a
href="http://www.informatik.uni-oldenburg.de/~mw/">Michael</a>'s <a
href="http://www.informatik.uni-oldenburg.de/~mw/plasma">Plasma
applet</a>. You may change the classpath and class name to point to a
class file of your choice. But note that most browsers doesn't allow
loading files from a different server.<br><br>
Save probably doesn't work, because it is forbidden by the browser.<br><br>
You may give multiple entries in the class path field separated by a
comma. The components may be local or remote zip or jar files or
directories. Note that browsers forbid accesses to different hosts or
local files that are not in a subdirectory of the applet
directory.<br><br>
<h1>Removing security restrictions under Internet Explorer</h1>
<p>This information was submitted by <a
href="mailto:PopescuM@health.missouri.edu">Mihail Popescu
<PopescuM@health.missouri.edu></a>. Please note that this will
<i>give all applets on our web server full access to your computer</i>,
so use it at your own risk.</p>
<p>Go to the View/Internet Options... dialog<br>
Select the "Security" tab</p>
<ul>
<li>Set "Zone:" to "Trusted sites zone"</li>
<li>Click "Add Sites..."
<ul><li>Add http://www.informatik.uni-oldenburg.de</li>
<li>Uncheck "Requires server verificaton..."</li>
<li>Click "OK"</li>
</ul></li>
<li>Check "Custom (for expert users)"</li>
<li>Click "Settings..."
<ul><li>Under Java/Java permissions, check "Custom"</li>
<li>Click "Java Custom Settings"
<ul><li>Select "Edit Permissions" tab</li>
<li>Under "Unsigned Content"/"Run Unsigned Content", make sure
"Run in sandbox" is checked and then check all the "Enable"
buttons under "Additional Unsigned Permissions"</li>
<li>Click "OK"</li>
</ul></li>
<li>Click "OK"</li>
</ul></li>
<li>Click "OK"</li>
</ul>
</td>
</table>
<hr>
<p><A HREF="mailto:Jochen.Hoenicke@Informatik.Uni-Oldenburg.DE">
http://www.informatik.uni-oldenburg.de/~delwi/jode/applet.html</A>, last
updated on <em>24-Okt-1999</em>.</p>
</body>
</html>

@ -0,0 +1,110 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
<html>
<head>
<title>Java Optimize and Decompile Environment (JODE)</title>
<meta name="description" content="The home page of jode, my Java decompiler.">
<meta name="author" content="Jochen Hoenicke">
<meta name="robots" content="noindex">
<meta name="robots" content="nofollow">
<meta name="date" content="1999-10-24">
</head>
<body>
<table cellpadding=4 cellspacing=1 width=100%>
<tr>
<td></td>
<td> <img src="jode-logo.png" alt="JODE" width=286 height=110></td>
</tr>
<tr>
<td valign="top">
<B><a href="http://www.informatik.uni-oldenburg.de/~delwi">Homepage</a></B>
<br><br>
<a href="jode.html"><B>Jode</B></a>
<ul>
<li><a href="applet.html">Test It Online</a></li>
<li><a href="download.html">Download</a></li>
<li><a href="usage.html">Usage</a></li>
<li><a href="license.html">License</a></li>
<li><a href="history.html">History</a></li>
<li>Blue Sky</li>
</ul>
</td>
<td>
<h1>Blue Sky</h1>
<p>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 <a
href="http://www.mozilla.org/blue-sky/">Mozilla</a>.</p>
<p>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.</p>
<h2><i>Out</i>line inlined methods</h2>
<p>If java gets called with `<code>-O</code>' switch, it inlines methods,
that are private, final, or static and contain no loops. When
decompiling this it sometimes produces really ugly code. The right
way to solve this would be to <i>out</i>line the code again. This is
possible but requires to find the inlined method. </p>
<p>The name `outline' was suggested by <a
href="http://www.informatik.uni-oldenburg.de/~mw">Michael</a>.
</p>
<h2>Better names of local variables</h2>
<p>The local variable naming is very stupid. Even with pretty it just
names the variable after the type with a unifying number appended. A
method containing very much objects of the same type looks very
ugly. </p>
<p>My plans here are to look at the assignments. If we have locals in
assignments
<pre>
int l_1 = array.length
String l_2 = object.getName()
</pre>
we could name them "length" and "name". If we
have assignments:
<pre>
MenuItem local_1 = new MenuItem("Open");
MenuItem local_2 = new MenuItem("Save");
</pre>
good names would be <code>miOpen</code> and <code>miSave</code>. </p>
<p>It is currently possible to assign a <i>hint name,type</i> pair to
a local. If the type matches, the local will be named after <i>hint
name</i>. This could be extended by giving them several weighted
hints and constructing the name in an intelligent way. </p>
<h2>Better deobfuscation features</h2>
<p>First there should be a good Renamer: Methods that simply
return a fields value should be renamed to get<i>FieldName</i>.
Fields should be named after their type, maybe also by assignments
(see section about local variable names).</p>
<p>The deobfuscator should detect inner and anonymous variables,
synthetic methods and so on, and rename them accordingly.</p>
<h2>Handling of Class.forName in obfuscator</h2>
<p>The obfuscator should detect Class.forName constructs (and
similarly for methods and fields) and if their parameters are constant
it should change the parameter according to the rename function. </p>
<h2>Merging javadoc comments</h2>
<p>It would be nice if the decompiler could merge the javadoc comments
into the class file. More and more people use javadoc to comment the
public api of their java classes. It shouldn't be too difficult to
take them and back into the java code. </p>
</td>
</table>
<hr>
<p><A HREF="mailto:Jochen.Hoenicke@Informatik.Uni-Oldenburg.DE">
http://www.informatik.uni-oldenburg.de/~delwi/jode/jode.html</A>, last
updated on <em>24-Okt-1999</em>.</p>
</body>
</html>

@ -24,6 +24,7 @@
<li><a href="usage.html">Usage</a></li> <li><a href="usage.html">Usage</a></li>
<li><a href="license.html">License</a></li> <li><a href="license.html">License</a></li>
<li><a href="history.html">History</a></li> <li><a href="history.html">History</a></li>
<li><a href="bluesky.html">Blue Sky</a></li>
</ul> </ul>
</td> </td>
<td> <td>

@ -24,6 +24,7 @@
<li><a href="usage.html">Usage</a></li> <li><a href="usage.html">Usage</a></li>
<li><a href="license.html">License</a></li> <li><a href="license.html">License</a></li>
<li>History</li> <li>History</li>
<li><a href="bluesky.html">Blue Sky</a></li>
</ul> </ul>
</td> </td>
<td> <td>

@ -30,6 +30,7 @@ href="http://www.informatik.uni-oldenburg.de/~delwi/jode/jode.html">
<li><a href="usage.html">Usage</a></li> <li><a href="usage.html">Usage</a></li>
<li><a href="license.html">License</a></li> <li><a href="license.html">License</a></li>
<li><a href="history.html">History</a></li> <li><a href="history.html">History</a></li>
<li><a href="bluesky.html">Blue Sky</a></li>
</ul> </ul>
</td> </td>
<td> <td>
@ -76,6 +77,20 @@ config file</li>
<h2>Known Bugs</h2> <h2>Known Bugs</h2>
<p>Small bugs, that should be fixed in the next release:</p>
<ul>
<li>If there is more than one assignment to a final local variable
(they can be conditionally, so that only one is actually excuted),
jode refuses to mark it as final. This can make decompilation of
method scoped classes wrong. </li>
<li>There's a bug in ConstantAnalyzer (part of the obfuscator). It is
triggered very seldom, and produces incorrect code. Use it with
care.</li>
</ul>
<p>Now follows a list of oddities, that will probably never get
completely fixed.</p>
<p>If not all dependent classes can be found, the verifier (which is <p>If not all dependent classes can be found, the verifier (which is
run before decompilation starts) may exit with a type error. You run before decompilation starts) may exit with a type error. You
can decompile it with <tt>--verify=off</tt>, but take the warning can decompile it with <tt>--verify=off</tt>, but take the warning
@ -83,13 +98,14 @@ config file</li>
to guess the right type, if you don't have access the full class to guess the right type, if you don't have access the full class
hierarchie.<br> hierarchie.<br>
But if you don't have the dependent classes, you can't compile the This is not a bug in the verifier: java will complain the same way,
code again, anyway, so why do you want to decompile it?</p> if it is run with bytecode verification turned on. And if you don't
have the dependent classes, you can't compile the code again.</p>
<p>There may be situations, where the code doesn't understand complex <p>There may be situations, where the code doesn't understand complex
expressions. In this many ugly temporary variables are used, but the expressions. In this case many ugly temporary variables are used, but
code should still be compileable. This does especially happen when the code should still be compileable. This does especially happen
you compile with <tt>`-O'</tt> flag and javac has inlined some when you compile with <tt>`-O'</tt> flag and javac has inlined some
methods. </p> methods. </p>
<p>Sometimes this program may exit with an <code>Exception</code> or <p>Sometimes this program may exit with an <code>Exception</code> or

@ -24,6 +24,7 @@
<li><a href="usage.html">Usage</a></li> <li><a href="usage.html">Usage</a></li>
<li>License</li> <li>License</li>
<li><a href="history.html">History</a></li> <li><a href="history.html">History</a></li>
<li><a href="bluesky.html">Blue Sky</a></li>
</ul> </ul>
</td> </td>
<td> <td>

@ -29,6 +29,7 @@
</li><br> </li><br>
<li><a href="license.html">License</a></li> <li><a href="license.html">License</a></li>
<li><a href="history.html">History</a></li> <li><a href="history.html">History</a></li>
<li><a href="bluesky.html">Blue Sky</a></li>
</ul> </ul>
</td> </td>
<td> <td>
@ -54,10 +55,10 @@ The most powerful way to start <I>JODE</I>'s decompiler is the command
line interface. Some people don't like long command lines; they line interface. Some people don't like long command lines; they
should go to the next section. <br> should go to the next section. <br>
Start the class <tt>jode.Decompiler</tt> with the options. The Start the class <tt>jode.decompiler.Main</tt> with the options. The
following command will give a complete list of the available commands: following command will give a complete list of the available commands:
<pre>java jode.Decompiler --help</pre> <pre>java jode.decompiler.Main --help</pre>
<a name="awt"><h3>AWT Interface</h3></a> <a name="awt"><h3>AWT Interface</h3></a>

Loading…
Cancel
Save