wiki:jvm-bytecode-tools

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

http://www.sable.mcgill.ca/soot/

:: A Survivors guide to Soot.

http://www.brics.dk/SootGuide/

BCEL

http://bcel.sourceforge.net/downloads/BCEL.jar

BCEL verifier

java -cp bcel.jar \
   org.apache.bcel.verifier.Verifier <CLASSFILE-TO-BE-VERIFIED>

http://www.jresearchsoft.com:9091/nexus/content/repositories/thirdparty/org/apache/bcel/bcel/5.3-beta-694866/bcel-5.3-beta-694866.jar

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.

Last modified 6 years ago Last modified on 05/24/12 08:23:06

Attachments (1)

Download all attachments as: .zip