Gibt es einen Java Classfile / Bytecode-Editor, um Anweisungen zu bearbeiten?
Gibt es ein utility (oder eclipse-plugin) für die Bearbeitung von java-class-Dateien?
Ich möchte zu manipulieren, um den bytecode einer java-class-Datei, ohne neu zu kompilieren, noch ist eine vollständige buildpath.
E. g. umbenennen von Methoden, add/delete-Anweisungen ändern, Konstanten etc.
Nur die Dienstprogramme, die ich gefunden habe sind:
- classeditor
aber es ist sehr eingeschränkte Funktionalität (z.B. umbenennen der Dinge und die Manipulation von Anweisungen ist nicht möglich). - jbe nicht speichern Sie die änderungen (vielleicht, weil die Klasse die überprüfung fehlschlägt, bevor ich alle änderungen vorgenommen haben, obwohl die Klasse läuft perfekt)
(jbe hatte anfangs ein classpath-Problem, indem die Klasse Pfad des jbe.bat Datei geholfen)
InformationsquelleAutor der Frage MRalwasser | 2010-07-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe nicht gesehen, jede byte-code -> byte-code-frontends an, aber viele backends.
Ich würde vorschlagen, dass Sie einen Blick auf die vielen byte-code-manipulation Bibliotheken, wie
javassist
die es erlauben, laden von byte-code, Bearbeiten Sie und speichern Sie Sie zurück auf die Festplatte, und dann schreiben Sie ein kleines Haupt, das genau das tut.InformationsquelleAutor der Antwort Thorbjørn Ravn Andersen
Benutze ich reJ für die Bearbeitung von class-Dateien direkt.
Ermöglicht es Ihnen, zu Bearbeiten, Anweisungen, Methoden, Konstanten-pool, diff-Klassen, und eine geteilte Ansicht mit einem hex-editor.
Es ist Super lächerlich.
InformationsquelleAutor der Antwort nahsra
Schrieb ich einen open-source-Java-assembler und dissasemblerdie Sie nützlich finden können.
Er lässt Sie zerlegen ein classfile in lesbarer Montage, Bearbeiten, und dann wieder zusammenbauen, Sie in eine Klasse. Es wurde ursprünglich entwickelt für das schreiben verschleiert crackmes, so gibt es eine Menge obskuren features, die es unterstützt, dass viele andere tools nicht. Wenn Sie alle features, die es derzeit nicht unterstützen, fühlen Sie sich frei, mich zu Kontaktieren und ich werde sehen was ich tun kann.
InformationsquelleAutor der Antwort Antimony
Finden diese Liste von byte-code-manipulation/code-Generierung-Bibliotheken hilfreich?
InformationsquelleAutor der Antwort Guy Sensei