2011-01-09 5 views
2

Ich möchte meine Java-Klasse in eine vorhandene Java-Anwendung unter Windows injizieren.Eine Klasse in die JVM einfügen und mit vorhandenen Klassen interagieren

fand ich einen Artikel ein Verfahren beschreibt, mit CreateRemoteThread-java-code-injection-via-winapis

Aber es ist nicht klar, ob die injizierte Klasse ‚connect‘ mit den bestehenden Klassen können sie und rufen.

Weiß jemand, ob das möglich ist? Gibt es Funktionen in der JNI, mit denen nach bereits laufenden Klassen gesucht werden kann?

Antwort

2

Ich bin sicher, es gibt andere komplizierte Möglichkeiten, um das zu tun, was Sie tun möchten (z. B. mit der Java-Instrumentation Apis). Es gibt jedoch wahrscheinlich einen viel einfacheren Weg.

  1. finden die Klasse, die die Hauptklasse für die Anwendung ist
  2. decompile der Klasse in Java-Code.
  3. einen einfachen Haken fügen Sie Ihren eigenen Code (oder in anderer Weise zu modifizieren diese Klasse an Ihre Bedürfnisse anzupassen) aufzurufen
  4. neu kompilieren die modifizierte Klasse und ersetzen Sie die Klassendatei in der entsprechenden jar
  5. führen Sie Ihre modifizierte Anwendung!
+0

Ich bin kein Java-Experte. Ich benötige jedoch Zugriff auf den Quellcode anderer Module, die von der Klasse verwendet werden, um sie erneut zu kompilieren. – Meh

+0

Java-Code kompiliert gegen Klassen (die normalerweise in Gläsern enthalten sind). Sie sollten in der Lage sein, jede Klassendatei in der Anwendung neu zu kompilieren. – jtahlborn

Verwandte Themen