2011-01-09 4 views
2

Я хочу ввести свой Java-класс в существующее Java-приложение в Windows.Внедрение класса в JVM и взаимодействие с существующими классами

Я нашел статью, описывающую метод с использованием CreateRemoteThread - java-code-injection-via-winapis

Но это не ясно, если введен класс может «подключиться» с существующими классами и называть их.

Кто-нибудь знает, возможно ли это? Существуют ли функции в JNI, которые можно использовать для поиска и получения ссылки на уже запущенные классы?

ответ

2

Я уверен, что существуют другие сложные способы делать то, что вы хотите сделать (например, с помощью java-инструментария apis). однако, вероятно, гораздо проще.

  1. найти класс, который является основным классом для применения
  2. декомпилировать класс в Java код.
  3. добавить простой крюк, чтобы вызвать свой собственный код (или иным образом модифицировать этот класс, чтобы удовлетворить ваши потребности)
  4. перекомпилировать измененный класс и заменить файл класса в соответствующем банке
  5. запустить измененную приложение!
+0

Я не эксперт по Java. Я, тем не менее, вам нужен доступ к исходному коду других модулей, используемых классом, чтобы снова перекомпилировать его. – Meh

+0

java code компилируется против классов (которые обычно содержатся в баночках). вы должны иметь возможность перекомпилировать любой файл класса в приложении. – jtahlborn

Смежные вопросы