Frage

Ich habe ein Glas, in dem alle Klassendateien ihre magische Zahl und einen Typ entfernt haben, ich bin nicht sehr gut über diesen bestimmten Bereich.Was wäre der beste Weg, um in den 0xcafebabe hinzufügen und den Typ in jeden Klassifizieren zurückzunehmen und das Glas aufzupacken?

edit: Ich habe geprüft, nur die magische Zahl fehlt, die Dateien sind intakt, wenn ich sie manuell hinzufüge.

War es hilfreich?

Lösung

Wenn Sie dies zur Laufzeit tun möchten, können Sie Ihren eigenen Klassenloader erstellen.Ich habe einen Pseudo-Code angehängt, der Sie auf dem Weg bringen könnte: generasacodicetagpre.

Aber ich denke, es ist besser, die JAR-Datei einfach mit einigen Betriebssystem-Tools zu beheben.

Andere Tipps

Wenn Sie nur die Magic-Nummer in die Klassendateien hinzufügen möchten, können Sie dafür ein einfaches Shell-Skript verwenden (vorausgesetzt, Sie befinden sich auf Linux oder haben Cygwin unter Windows.

Erstellen Sie zuerst eine Datei mit nur der 4 Byte des Headers (CafeBabe).

extrahieren Sie dann die Klassendateien aus dem JAR in ein anderes Verzeichnis und führen Sie diesen Befehl am root aus: generasacodicetagpre.

Hinweis: Das obige Skript arbeitet in Bash, aber Sie sollten in der Lage sein, etwas Ähnliches für jede Shell oder sogar für Windows zu schreiben.

Aber was meinen Sie damit, "haben ihre magische Zahl und den -typ entfernt "?Wenn der Bytecode in irgendeiner Weise gestattet wurde, könnten die Änderungen möglicherweise viel schwieriger sein, wenn nicht unmöglich zu fixieren.

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