Frage

Gibt es ein Dienstprogramm ähnlich wie Ollydbg / Softice für Java? IE Execute -Klasse (aus Jar / mit Klassenpfad) und ohne Quellcode die Demontage des Zwischencodes mit der Fähigkeit, über die Referenzen zu gehen / zu suchen / zu suchen / zu suchen / zu suchen / spezifischem Intermediate -Code im Speicher zu bearbeiten / auf Datei zu bearbeiten. .

Wenn nicht, ist es überhaupt möglich, so etwas zu schreiben (vorausgesetzt, wir sind bereit, ohne Hotspot für die Debug -Dauer zu leben)?

EDIT: Ich spreche nicht von Jad, JD oder Cavaj. Dies sind schöne Dekompiler, aber ich möchte aus mehreren Gründen keinen Dekompiler. Am bemerkenswertesten ist, dass ihre Ausgabe nicht falsch ist (bestenfalls einfach einfach falsch). Ich suche nicht nach einem magischen "kompilierten Bytes zum Java -Code" - ich möchte die tatsächlichen Bytes sehen, die gerade ausgeführt werden sollen. Außerdem möchte ich die Fähigkeit, diese Bytes zu ändern (genau wie bei einem Versammlungsdebugger) und hoffentlich den geänderten Teil in die Klassendatei zurückschreiben.

Edit2: Ich weiß, dass Javap existiert - aber es tut nur eine Möglichkeit (und ohne jegliche Art von Analyse). Beispiel (Code aus der VMSPEC -Dokumentation): Aus Java -Code verwenden wir "Javac", um dies zu kompilieren:

void setIt(int value) {
    i = value;
}
int getIt() {
    return i;
}

zu einer Java .class -Datei. Mit Javap -c kann ich diese Ausgabe erhalten:

    Method void setIt(int)
   0    aload_0
   1    iload_1
   2    putfield #4
   5    return
    Method int getIt()
   0    aload_0
   1    getfield #4
   4    ireturn

Dies ist in Ordnung für den Demontage -Teil (ohne Analyse nicht wirklich gut - "Feld #4 ist Beispiel.i"), aber ich kann die beiden anderen "Tools" nicht finden:

  1. Ein Debugger, der die Anweisungen selbst durchläuft (mit Stapel, Speichermumpen usw.), sodass ich den tatsächlichen Code und die tatsächliche Umgebung untersuchen kann.
  2. Eine Möglichkeit, den Prozess umzukehren - bearbeiten Sie den zerlegten Code und erstellen Sie die .class -Datei (mit dem bearbeiteten Code).
War es hilfreich?

Lösung

Versuchen Sie es mit ScriptLink generasacodicetagpre.

oder generasacodicetagpre.

Die ScriptLink-Steuerung stellt sicher, dass das Skript nur einmal und nur einmal geladen wird wird auch sicherstellen, dass andere Abhängigkeiten zuerst geladen wurden

Andere Tipps

Sich ansehen Jad Decomplinierer zum Dekompeten von Java -Code. Sie können dann einen integrierten Debugger einer IDE mit produzierten Quellen ausführen. IDE kann intellij, Sonnenfinsternis oder NetBeans sein. Dieser Ansatz ist nicht vollständig automatisch, sollte aber den Job erledigen.

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