Hallo zusammen,
vielen von euch ist der Disassembler für Java-Klassendateien bcel.sourceforge.net/JasminVisitor.java bekannt.
Die Java-Klasse JasminVisitor ist ein Disassembler für die Jasmin-Assemblersprache (jasmin.sourceforge.net).
JasminVisitor.java benötigt die Bytecode Engineering Library (BCEL) - siehe jakarta.apache.org und bcel.sourceforge.net.
Ein weiterer Disassembler mit dem Namen "Clara" ist unter clara.javaseiten.de verfügbar. Es kann die Datei clara.jar heruntergeladen werden.
Beispielaufruf:
> java -jar clara.jar HelloWorld.class
Die Klassendatei HelloWorld.class im aktuellen Verzeichnis wird dann in die Jasmin-Assemblersprache übersetzt, wie z.B.
Der zugehörige Java-Quelltext wäre
Clara ist freie Software (GPL) und der Quellcode des Disassemblers kann heruntergeladen werden. Für alle, die NetBeans als Entwicklungsumgebung verwenden, steht ein NB-Projekt für Clara zum Download bereit.
Gruß hansz :wink:
vielen von euch ist der Disassembler für Java-Klassendateien bcel.sourceforge.net/JasminVisitor.java bekannt.
Die Java-Klasse JasminVisitor ist ein Disassembler für die Jasmin-Assemblersprache (jasmin.sourceforge.net).
JasminVisitor.java benötigt die Bytecode Engineering Library (BCEL) - siehe jakarta.apache.org und bcel.sourceforge.net.
Ein weiterer Disassembler mit dem Namen "Clara" ist unter clara.javaseiten.de verfügbar. Es kann die Datei clara.jar heruntergeladen werden.
Beispielaufruf:
> java -jar clara.jar HelloWorld.class
Die Klassendatei HelloWorld.class im aktuellen Verzeichnis wird dann in die Jasmin-Assemblersprache übersetzt, wie z.B.
Code:
; HelloWorld.j
; Generated by Clara
; Disassembler for Java class files
; Jasmin-Syntax 2, [url]http://jasmin.sourceforge.net[/url]
;
; Clara, Version 0.6.2 beta
.bytecode 50.0
.source HelloWorld.java
.class public HelloWorld
.super java/lang/Object
.method public <init>()V
.limit stack 1
.limit locals 1
.line 3
0: aload_0
1: invokespecial java/lang/Object/<init>()V
4: return
.end method
.method public static main([Ljava/lang/String;)V
.limit stack 2
.limit locals 1
.line 6
0: getstatic java/lang/System/out Ljava/io/PrintStream;
3: ldc "Hello World!"
5: invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
.line 7
8: return
.end method
Der zugehörige Java-Quelltext wäre
Code:
/* HelloWorld.java */
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Clara ist freie Software (GPL) und der Quellcode des Disassemblers kann heruntergeladen werden. Für alle, die NetBeans als Entwicklungsumgebung verwenden, steht ein NB-Projekt für Clara zum Download bereit.
Gruß hansz :wink: