Frage

Ich versuche, was ist ein Java-Applet, um herauszufinden, Klassendatei unter der Haube tut. Öffnen Sie mit Notepad oder Textpad up zeigt nur ein paar gobbledy-gook.

Gibt es eine Möglichkeit, es zanken wieder in ein etwas lesbares Format, so kann ich versuchen, um herauszufinden, was es tut?

  • Umwelt == Windows-w / VS 2008 installiert.
War es hilfreich?

Lösung

jd-gui ist der beste Decompiler im Moment. es kann neue Funktionen in Java behandeln, im Vergleich zu dem Einstiegs- staubigen JAD.

Andere Tipps

Wenn Sie nichts dagegen nicht Bytecode lesen, sollten javap gut funktionieren. Es ist Teil der Standard-JDK-Installation.

Usage: javap <options> <classes>...

where options include:
   -c                        Disassemble the code
   -classpath <pathlist>     Specify where to find user class files
   -extdirs <dirs>           Override location of installed extensions
   -help                     Print this usage message
   -J<flag>                  Pass <flag> directly to the runtime system
   -l                        Print line number and local variable tables
   -public                   Show only public classes and members
   -protected                Show protected/public classes and members
   -package                  Show package/protected/public classes
                             and members (default)
   -private                  Show all classes and members
   -s                        Print internal type signatures
   -bootclasspath <pathlist> Override location of class files loaded
                             by the bootstrap class loader
   -verbose                  Print stack size, number of locals and args for methods
                             If verifying, print reasons for failure

Sie möchten ein Java Decompiler, können Sie das Kommandozeilen-Tool javap, dies zu tun verwenden. Auch Java Decompiler HOW-TO beschreibt, wie Sie dekompilieren eine Klassendatei.

, was Sie suchen ist ein Java-de-Compiler. Ich empfehle JAD http://www.kpdus.com/jad.html Es ist für nicht frei ist kommerzielle Nutzung und bekommt den Job zu erledigen.

Hinweis: Dies wird nicht den Code macht genau das gleiche wie das, was geschrieben wurde. das heißt Sie gehen Kommentare zu verlieren und möglicherweise Variablennamen, so ein wenig härter sein, es geht nicht nur normale Quellcode zu lesen. Wenn der Entwickler wirklich geheimnisvoll ist, werden sie ihren Code und haben verschleiert, so dass es noch schwieriger zu lesen.

cpuguru, wenn Ihr Applet wurde mit javac 1.3 (oder weniger) zusammengestellt worden, die beste Option ist Jad zu verwenden.

Leider ist die letzte JDK unterstützt von JAD 1.5.8 (14. April 2001) ist JDK 1.3.

Wenn Ihr Applet wird mit einem neueren Compiler kompiliert worden ist, könnten Sie versuchen, JD-GUI : diese Decompiler der Entwicklung, doch es richtig Java Quellen erzeugt, die meisten der Zeit, für die Klassen mit dem 1.4 JDKs zusammengestellt, 1.5 oder 1.6.

darenw, vielen Dank für Ihren Beitrag. JD-GUI ist nicht der beste Decompiler noch ... aber ich arbeite:)

Wie @MichaelMyers wies darauf hin, verwenden Sie

javap -c <name of java class file> 

den JVM Assembler-Code zu erhalten. Sie können auch die Ausgabe in eine Textdatei für eine bessere Sichtbarkeit umleiten.

javap -c <name of java class file> > decompiled.txt

Mit Jad dekompilieren es wahrscheinlich die beste Wahl ist. Es sei denn, der Code verschleiert wurde, wird es ein okayes Ergebnis.

Das ist Code kompiliert, benötigen Sie einen Decompiler wie JAD verwenden: http: // www. kpdus.com/jad.html

Sie benötigen einen Decompiler zu verwenden. Andere haben JAD vorgeschlagen, gibt es andere Möglichkeiten, JAD das Beste ist.

Ich werde die Kommentare Echo, dass Sie ein wenig verlieren können den ursprünglichen Quellcode im Vergleich zu. Es wird besonders komisch aussehen, wenn der Code Generika verwendet, wegen Löschung.

JAD und / oder JadClipse Eclipse-Plugin, das ist sicher.

Wenn die Klasse Datei, die Sie in aussehen soll Open Source ist, sollten Sie es nicht dekompilieren, sondern die Quelldateien anhängen direkt in Ihr IDE. auf diese Weise können Sie nur den Code einiger Bibliotheksklasse betrachten, als wäre es Ihr eigenes

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top