masklinn í dag viðrar vel til loftárása | leonhard a écrit :
Si j'ai bien compris ce que tu veux c'est un "decompiler"... Normalement avec le sdk de java, il y a le programme javap qui pourrait t'aider... sinon un petit coup de "java decompiler" sur google devrait de donner des résultats intéressants.
A tites d'exemple, l'output de javap donne :
Code :
- public static double readDouble();
- Code:
- 0: aconst_null
- 1: astore_0
- 2: iconst_0
- 3: istore_2
- 4: invokestatic #5; //Method readLine:()Ljava/lang/String;
- 7: astore_1
- 8: aload_1
- 9: invokestatic #18; //Method java/lang/Double.valueOf:(Ljava/lang/String;)Ljava/lang/Double;
- 12: astore_0
- 13: iconst_1
- 14: istore_2
- 15: goto 19
- 18: astore_3
- 19: iload_2
- 20: ifeq 4
- 23: aload_0
- 24: invokevirtual #19; //Method java/lang/Double.doubleValue:()D
- 27: dreturn
- Exception table:
- from to target type
- 8 15 18 Class java/lang/NumberFormatException
|
|
Non, ce qu'il veut c'est pouvoir obtenir les opcodes depuis le bytecode, les opcodes étant le code exécuté par le processeur.
Leleniniste > je doute qu'il soit parfait (me semble qu'il y a pas mal de trucs pas encore implémentés) et il ne sort sûrement pas les même opcodes que la JVM officielle, mais GCJ est capable de compiler des .java et .class en code natif, tu peux probablement décompiler les executables derrière pour obtenir le bytecode.
Sinon, tu peux aussi essayer de voir dans l'implémentation de la JVM même (elle est passée OSS non?) de quelle manière elle fonctionne.
Alternative à la JVM officielle, il y a aussi Kaffe, une VM java avec JIT. ---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
|