You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
5.8 KiB
131 lines
5.8 KiB
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
|
|
<html>
|
|
<head>
|
|
<title>Java Optimize and Decompile Environment (JODE)</title>
|
|
<meta name="date" content="2000-06-30">
|
|
<meta name="description" content="JODE - Java Optimize and Decompile Environment.">
|
|
<meta name="author" content="Jochen Hoenicke">
|
|
<meta name="keywords" content="jode, java, decompiler, obfuscator, deobfuscator, reverse engineering, free, GPL">
|
|
</head>
|
|
|
|
<BODY bgcolor=#FFFFFF topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" marginheight="0" marginwidth="0">
|
|
<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">
|
|
<table cellspacing=0 cellpadding=3 width=100% border=0 bgcolor=eeeef8>
|
|
<tr bgcolor="7272cc">
|
|
<td align="center"><font color="ffffff"><b>Jode</b></font></td></tr>
|
|
<tr><td align="right">
|
|
<a href="./"><B>Home</B></a><br>
|
|
<a href="http://sourceforge.net/project/?group_id=3790">Project page</a><br>
|
|
<br>
|
|
<a href="./applet.html">Applet</a><br>
|
|
<a href="./download.html">Download</a><br>
|
|
<a href="./usage.html">Documentation</a><br>
|
|
<a href="./license.html">License</a><br>
|
|
<a href="./history.html">History</a><br>
|
|
<a href="./links.html">Links</a><br>
|
|
<a href="./bluesky.html">Blue Sky</a><tr bgcolor="7272cc">
|
|
<td align="center"><font color="ffffff"><b>Feedback</b></font></td></tr>
|
|
<tr><td align="right">
|
|
<a href="http://sourceforge.net/bugs/?group_id=3790">Bug Tracking</a><br>
|
|
<a href="http://sourceforge.net/forum/?group_id=3790">Public Forums</a><br>
|
|
<a href="http://lists.sourceforge.net/mailman/listinfo/jode-users">Mailing List</a><br>
|
|
<a href="http://sourceforge.net/sendmessage.html?touser=18252">Private Mail</a><tr bgcolor="7272cc">
|
|
<td align="center"><font color="ffffff"><b>Download</b></font></td></tr>
|
|
<tr><td align="right">
|
|
<a href="ftp://jode.sourceforge.net/pub/jode/">FTP server</a><br>
|
|
<a href="http://sourceforge.net/project/filelist.html?group_id=3790">Source releases</a></td></tr>
|
|
<tr bgcolor="ffffff"><td align="center"><br>Powered by <br>
|
|
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.html?group_id=3790&type=1" border=0 width=88 height=31 alt="SourceForge"></a><br>
|
|
<br>Best viewed with <br>
|
|
<a href="http://www.anybrowser.org/campaign/"><img src="a-logo.gif" border=0 width=88 height=31 alt="Any Browser"></a><br>
|
|
</td></tr></table>
|
|
</td>
|
|
<td valign="top">
|
|
|
|
|
|
<P><i>JODE</i> is a java package containing a decompiler and an
|
|
optimizer for java. This package is freely available under the GPL
|
|
(see <a href="./license.html">license</a>).<p>
|
|
|
|
<P>The decompiler takes <tt>class</tt> files as input and produces
|
|
something similar to the original <tt>java</tt> 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. But <i>JODE</i> does its job
|
|
quite well, so you should give it a try: <a href="./applet.html">start
|
|
the applet</a>.</P>
|
|
|
|
<P>The optimizer transforms <tt>class</tt> files in various ways with
|
|
can be controlled by a script file. It supports the following
|
|
operations:</p>
|
|
<ul>
|
|
<li>Renaming class, method, field and local names to shorter,
|
|
obfuscated, or unique names or according to a given translation
|
|
table</li>
|
|
<li>Removing debugging information</li>
|
|
<li>Removing dead code (classes, fields, methods) and constant
|
|
fields</li>
|
|
<li>Optimizing local variable allocation</li>
|
|
</ul>
|
|
|
|
<h2>News</h2>
|
|
|
|
<ul>
|
|
<li><i>JODE</i> is now hosted by <a href="http://sourceforge.net/">SourceForge</a>.</li>
|
|
<li>The latest <a href="http://sourceforge.net/cvs/?group_id=3790">CVS</a> version breaks long lines</li>
|
|
<li>I can now decompile <b>inner and anonymous</b> classes.</li>
|
|
<li>The optimizer (aka obfuscator) can be customized via a small
|
|
config file</li>
|
|
<li>Jode is <tt>autoconf</tt>igured.</li>
|
|
</ul>
|
|
|
|
<h2>Limitations</h2>
|
|
|
|
<p>If not all dependent classes can be found, the verifier (which is
|
|
run before decompilation starts) may exit with a type error. You
|
|
can decompile it with <tt>--verify=off</tt>, but take the warning
|
|
serious, that types may be incorrect. There's sometimes no way to
|
|
guess the right type, if you don't have access the full class
|
|
hierarchie.<br>
|
|
|
|
This is not a bug in the verifier: java will complain the same way,
|
|
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
|
|
expressions. In this case many ugly temporary variables are used, but
|
|
the code should still be compileable. This does especially happen
|
|
when you compile with <tt>`-O'</tt> flag and javac has inlined some
|
|
methods. </p>
|
|
|
|
<p>Sometimes this program may exit with an <code>Exception</code> 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 <code>jode.test</code> files, I would
|
|
be very interested in a bug report (including the <code>class</code>
|
|
file, if possible). </p>
|
|
|
|
<p>Sometimes <i>JODE</i> generates some GOTO expression and labels.
|
|
This shouldn't happen any more with code produced by javac or jikes.
|
|
But some flow obfuscator may provoke this. In that case you can run
|
|
the Obfuscator first (to optimize away the flow obfuscation ;-).</p>
|
|
</td></tr>
|
|
</table>
|
|
<TABLE width="100%" border="0" cellspacing="0" cellpadding="2" bgcolor="737b9c">
|
|
<TR>
|
|
<TD align="center"><FONT color="#ffffff"><SPAN class="titlebar">
|
|
All trademarks and copyrights on this page are properties of their respective owners. <br>
|
|
Last updated on 8-May-2000,
|
|
Copyright © 1998-2000 by Jochen Hoenicke.</SPAN></FONT>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
|
|
</BODY>
|
|
</HTML>
|
|
|