JVM Bytecode tools
Soot
A frightenly comprehensive framework for the analysis of Java Bytecode. Soot has four intermediate representations of bytecode of various levels of abstraction, has extensive flow graph analysis, and can output in Jasmine format.
:: Main Soot site
:: A Survivors guide to Soot.
BCEL
http://bcel.sourceforge.net/downloads/BCEL.jar
BCEL verifier
java -cp bcel.jar \ org.apache.bcel.verifier.Verifier <CLASSFILE-TO-BE-VERIFIED>
java -cp bcel-5.3-beta-694866.jar \ org.apache.bcel.verifier.GraphicalVerifier \ <CLASSFILE-TO-BE-VERIFIED>
jvm-verifier
Kersten's Verifier for Java Byte Codes
can
http://classfileanalyzer.javaseiten.de/
After building classfileanalyzer.jar, classes can be decompiled into Jasmin assembler format ("*.j") via
java -jar ~/work/classfileanalyzer/classfileanalyzer.jar -file 144c_1.class
jasmin-mode
Jasmine is the defacto assembler format for JVM bytecode.
An Emacs mode jasmin.el exists for visiting these files.
Some funkiness in the highlighting can be fixed in the attachment:jasmin-line-numbers.diff.
Online JVM reference
http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html::
JVM specification.
http://www.daimi.au.dk/dOvs/jvmspec/ref-Java.html::
Annotation of JVM instructions from J. Meyer and T. Downing, __Java Virtual Machine__, O'Reilly Associates, 1997. Some errors [unverified], but often more understandable than the JVM specification as it comes with short examples.
JustIce
http://bcel.sourceforge.net/justice/justice.html
A command line tool that produces diagnostics about incorrect bytecode. Now folded as part of BCEL.
Attachments (1)
-
jasmin-line-numbers.diff (2.3 KB) - added by 13 years ago.
Patch to fix display of line numbers in jasmin.el
Download all attachments as: .zip