Differences between current version and revision by previous author of HowToJavaDecompilerHOWTO.
Other diffs: Previous Major Revision, Previous Revision, or view the Annotated Edit History
Newer page: | version 3 | Last edited on Tuesday, October 26, 2004 1:35:46 am | by StuartYeates | |
Older page: | version 2 | Last edited on Friday, June 7, 2002 1:06:51 am | by perry | Revert |
@@ -1,585 +1 @@
-
-
-
-Java Decompiler HOW-TO
-
-
-
-----
-
-!!! Java Decompiler HOW-TO
-
-!!Al Dev (Alavoor Vasudevan)
-alavoor
[[AT
]yahoo.comv4.4, 27 April 2002
-
-
-----
-''This document will help you to de-compile the Java class programs. This documents gives a list of decompilers which can reverse
-engineer the Java class files and generate the Java source code files.
-Thie is very helpful if you do not have the Java source code file and have only
-the Java class files. The information in this document applies to all
-the operating sytems where Java language/Java VM runs.''
-----
-
-
-
-
-!!1. Introduction
-
-
-
-
-!!2. How can I trust Java Decompiler ??!!
-
-
-
-
-!!3. Related URLs
-
-
-
-
-!!4. Other Formats of this Document
-
-
-*4.1 Acrobat PDF format
-
-*4.2 Convert Linuxdoc to Docbook format
-
-*4.3 Convert to MS !WinHelp format
-
-*4.4 Reading various formats
-
-
-
-
-
-!!5. Copyright
-----
-
-!!1. Introduction
-
-
-__(The latest version of this document is at
-http://www.milkywaygalaxy.freeservers.com. You may
-want to check there for changes).__
-
-
-Java compiler compiles the Java source code files (*.java) into
-binaries files (*.class). You would use the Java de-compiler to
-convert java class files into source code files (*.java).
-
-
-Java de-compiler is very useful especially if you have *.class
-files and you do not have access to the source code. Some vendors
-do not ship the source code for java class files, in which case
-you use the java decompiler to look at the source code.
-
-
-See also the "javap" command from Sun Microsystems. This command is
-available as soon as you install the JDK from Sun Microsystems.
-At unix prompt type -
-----
-
-bash$ javap -help
-bash$ javap -c <filename>.class
-
-----
-
-
-The following are the list of Java decompilers available -
-
-
-* Free "Jad" Java Decompiler at
-http://www.geocities.com/!SiliconValley/Bridge/8617/jad.html#general
-and at
-http://www.geocities.com/!SiliconValley/Bridge/8617/jad.html#gui
-
-
-
-
-
-
-
-*
-
-* List of Decompilers, disassemblers and obfuscators are at
-http://dmoz.org/Computers/Programming/Languages/Java
-
-
-
-
-
-
-
-*
-
-* Free "Mocha" Java Decompiler at
-http://www.brouhaha.com/~eric/computers and download at
-http://www.brouhaha.com/~eric/computers/mocha-b1.zip
-
-
-
-
-
-
-
-*
-
-* "!DeCafe Pro" from !DeCafe, France at
-http://decafe.hypermart.net/index.htm
-
-
-
-
-
-
-
-*
-
-* "!SourceTech Java decompiler" from Source Tech corp at
-http://www.srctec.com
-and at
-http://members.tripod.com/~!SourceTec/jasmine.htm
-
-
-
-
-
-
-
-*
-
-* "!SourceAgain" from Ahpah corp at
-http://www.ahpah.com
-
-
-
-
-
-
-
-*
-
-* "Class Cracker" from Mayon Software, Australia at
-http://www.tip.net.au/~mayon/classcracker/ccorder.html and at
-http://www.pcug.org.au/~mayon
-
-
-
-
-
-
-
-*
-
-* "!IceBreaker" from !BreakerTech corp, U.K. at
-http://www.breakertech.com
-and at
-http://www.breakertech.com/breaker/ice/ice.html#download
-
-
-
-
-
-
-
-*
-
-* "NMI Java decompiler" from NMI at
-http://njcv.htmlplanet.com
-and at
-http://njcv.htmlplanet.com/njcv.html
-
-
-
-
-
-
-
-*
-
-* DJ Java Decompiler at
-DJ decompiler
-
-
-
-
-
-
-
-*
-
-* Google
-http://directory.google.com/Top/Computers/Programming/Languages/Java/Development_Tools/Translators/Decompilers_and_Disassemblers/?tc=1
-
-*
-
-
-
-
-----
-
-!!2. How can I trust Java Decompiler ??!!
-
-
-For 100% assurance you need a __SCIENTIFIC__ way to
-validate and trust the Java Decompiler program. The method described
-in this section will enable the decompiler program to be accepted
-as "trust-worthy" and reliable.
-
-
-In order to verify that the decompiler program
-is regenerating the Java source-code properly,
-use the following technique -
-
-
-Generate the class file from the generated
-source code using the compiler -
-----
-
-bash$ mv myprogram.class myprogram_orig.class
-bash$ javac myprogram.java
-
-----
-
-
-Now use the unix 'diff' command to compare the two class files -
-----
-
-bash$ diff myprogram.class myprogram_orig.class
-
-----
-Both these files __MUST BE IDENTICAL__. This verifies that
-decompiler program is working perfectly. On DOS or Windows 95 you may want to use
-the free
-Cygnus Cygwin
-'diff' or 'MKS' utilities.
-
-
-This step gives 100% guarantee and 100% quality assurance
-and life term or long term __WARRANTY__ on decompiler programs.
-
-
-It is strongly recommended that you do these steps
-every time you run decompiler programs.
-----
-
-!!3. Related URLs
-
-
-Visit following locators which are related to Java -
-
-
-*
-http://www.linuxdoc.org/HOWTO/Enterprise-Java-for-Linux-HOWTO.html
-*
-
-*
-http://www.linuxdoc.org/HOWTO/Java-CGI-HOWTO.html
-*
-
-*
-http://www.linuxdoc.org/HOWTO/!JavaStation-HOWTO/index.html
-*
-
-*
-Vim color text editor for Java, C++, C
-*
-
-*
-Beautifier HOWTO for Java and C++ programs
-*
-
-*
-C++ Programming HOWTO has support for Java like String objects
-*
-
-* Linux goodies main site is at
-http://www.milkywaygalaxy.freeservers.com
-Mirror sites are at -
-http://aldev0.webjump.com,
-angelfire,
-geocities,
-virtualave,
-50megs,
-theglobe,
-NBCi,
-Terrashare,
-Fortunecity,
-Freewebsites,
-Tripod,
-Spree,
-Escalix,
-Httpcity,
-Freeservers.
-
-*
-
-----
-
-!!4. Other Formats of this Document
-
-
-This document is published in 14 different formats namely - DVI, Postscript,
-Latex, Adobe Acrobat PDF,
-LyX, GNU-info, HTML, RTF(Rich Text Format), Plain-text, Unix man pages, single
-HTML file, SGML (Linuxdoc format), SGML (Docbook format), MS !WinHelp format.
-
-
-This howto document is located at -
-
-
-*
-http://www.linuxdoc.org and click on HOWTOs and search
-for howto document name using CTRL+f or ALT+f within the web-browser.
-*
-
-
-
-You can also find this document at the following mirrors sites -
-
-
-*
-http://www.caldera.com/LDP/HOWTO
-*
-
-*
-http://www.linux.ucla.edu/LDP
-*
-
-*
-http://www.cc.gatech.edu/linux/LDP
-*
-
-*
-http://www.redhat.com/mirrors/LDP
-
-*
-
-* Other mirror sites near you (network-address-wise) can be found at
-http://www.linuxdoc.org/mirrors.html
-select a site and go to directory /LDP/HOWTO/xxxxx-HOWTO.html
-*
-
-
-
-
-
-
-
-
-
-*You can get this HOWTO document as a single file tar ball in HTML, DVI,
-Postscript or SGML formats from -
-ftp://www.linuxdoc.org/pub/Linux/docs/HOWTO/other-formats/
-and
-http://www.linuxdoc.org/docs.html#howto
-
-
-
-
-*
-
-*Plain text format is in:
-ftp://www.linuxdoc.org/pub/Linux/docs/HOWTO
-and
-http://www.linuxdoc.org/docs.html#howto
-
-
-
-
-*
-
-*Single HTML file format is in:
-http://www.linuxdoc.org/docs.html#howto
-
-
- Single HTML file can be created with command (see man sgml2html) -
-sgml2html -split 0 xxxxhowto.sgml
-
-
-
-
-*
-
-*Translations to other languages like French, German, Spanish,
-Chinese, Japanese are in
-ftp://www.linuxdoc.org/pub/Linux/docs/HOWTO
-and
-http://www.linuxdoc.org/docs.html#howto
-Any help from you to translate to other languages is welcome.
-*
-
-The document is written using a tool called "SGML-Tools" which can be got from -
-http://www.sgmltools.org
-Compiling the source you will get the following commands like
-
-
-*sgml2html xxxxhowto.sgml (to generate html file)
-*
-
-*sgml2html -split 0 xxxxhowto.sgml (to generate a single page html file)
-*
-
-*sgml2rtf xxxxhowto.sgml (to generate RTF file)
-*
-
-*sgml2latex xxxxhowto.sgml (to generate latex file)
-*
-
-
-!! 4.1 Acrobat PDF format
-
-
-
-PDF file can be generated from postscript file using
-either acrobat __distill__ or __Ghostscript__.
-And postscript file is generated
-from DVI which in turn is generated from !LaTex file.
-You can download distill software from
-http://www.adobe.com. Given below
-is a sample session:
-----
-
-bash$ man sgml2latex
-bash$ sgml2latex filename.sgml
-bash$ man dvips
-bash$ dvips -o filename.ps filename.dvi
-bash$ distill filename.ps
-bash$ man ghostscript
-bash$ man ps2pdf
-bash$ ps2pdf input.ps output.pdf
-bash$ acroread output.pdf &
-
-----
-Or you can use Ghostscript command __ps2pdf__.
-ps2pdf is a work-alike for nearly all the functionality of
-Adobe's Acrobat Distiller product: it
-converts !PostScript files to Portable Document Format (PDF) files.
-__ps2pdf__ is implemented as a very small command script
-(batch file) that invokes Ghostscript, selecting a special "output device"
-called __pdfwrite__. In order to use ps2pdf, the pdfwrite
-device must be included in the makefile when Ghostscript was compiled;
-see the documentation on building Ghostscript for details.
-
-!! 4.2 Convert Linuxdoc to Docbook format
-
-
-
-This document is written in linuxdoc SGML format. The Docbook SGML format
-supercedes the linuxdoc format and has lot more features than linuxdoc.
-The linuxdoc is very simple and is easy to use. To convert linuxdoc SGML
-file to Docbook SGML use the program __ld2db.sh__ and some perl scripts.
-The ld2db output is not 100% clean and you need to use the __clean_ld2db.pl__
-perl script. You may need to manually correct few lines in the document.
-
-
-* Download ld2db program from
-http://www.dcs.gla.ac.uk/~rrt/docbook.html
-or from
-Milkyway Galaxy site
-*
-
-* Download the cleanup_ld2db.pl perl script from
-from
-Milkyway Galaxy site
-*
-
-The ld2db.sh is not 100% clean, you will get lots of errors when you run
-----
-
-bash$ ld2db.sh file-linuxdoc.sgml db.sgml
-bash$ cleanup.pl db.sgml > db_clean.sgml
-bash$ gvim db_clean.sgml
-bash$ docbook2html db.sgml
-
-----
-And you may have to manually edit some of the minor errors after
-running the perl script. For e.g. you may need to put closing tag <
-/Para> for each <
-Listitem>
-
-!! 4.3 Convert to MS !WinHelp format
-
-
-
-You can convert the SGML howto document to Microsoft Windows Help file,
-first convert the sgml to html using:
-----
-
-bash$ sgml2html xxxxhowto.sgml (to generate html file)
-bash$ sgml2html -split 0 xxxxhowto.sgml (to generate a single page html file)
-
-----
-Then use the tool
-!HtmlToHlp.
-You can also use sgml2rtf and then use the RTF files for generating winhelp files.
-
-!! 4.4 Reading various formats
-
-
-
-In order to view the document in dvi format, use the xdvi program. The xdvi
-program is located in tetex-xdvi*.rpm package in Redhat Linux which can be
-located through !ControlPanel | Applications | Publishing | TeX menu buttons.
-To read dvi document give the command -
-
-
-xdvi -geometry 80x90 howto.dvi
-man xdvi
-
-
-And resize the window with mouse.
-To navigate use Arrow keys, Page Up, Page Down keys, also
-you can use 'f', 'd', 'u', 'c', 'l', 'r', 'p', 'n' letter
-keys to move up, down, center, next page, previous page etc.
-To turn off expert menu press 'x'.
-
-
-You can read postscript file using the program 'gv' (ghostview) or
-'ghostscript'.
-The ghostscript program is in ghostscript*.rpm package and gv
-program is in gv*.rpm package in Redhat Linux
-which can be located through !ControlPanel | Applications | Graphics menu
-buttons. The gv program is much more user friendly than ghostscript.
-Also ghostscript and gv are available on other platforms like OS/2,
-Windows 95 and NT, you view this document even on those platforms.
-
-
-
-
-
-*Get ghostscript for Windows 95, OS/2, and for
-all OSes from
-http://www.cs.wisc.edu/~ghost
-*
-
-
-
-To read postscript document give the command -
-
-
-gv howto.ps
-ghostscript howto.ps
-
-
-
-
-You can read HTML format document using Netscape Navigator, Microsoft Internet
-explorer, Redhat Baron Web browser or any of the 10 other web browsers.
-
-
-You can read the latex, LyX output using LyX a X-Windows front end to latex.
-----
-
-!!5. Copyright
-
-
-Copyright policy is GNU/GPL as per LDP (Linux Documentation project).
-LDP is a GNU/GPL project.
-Additional requests are - you retain the author's name, email address
-and this copyright notice on all the copies. If you make any changes
-or additions to this document then you should
-intimate all the authors of this document
.
-----
+Describe
[HowToJavaDecompilerHOWTO
] here
.