Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
11 / 10 / 5
Регистрация: 25.07.2020
Сообщений: 302

Инжект

17.06.2021, 04:11. Показов 1674. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, может кто подсказать можно ли запустить программу, и во время того как она работает уже, запустить вторую программу, которая должна будет изменить в первой программе код некоторых классов, а также некоторые классы добавить, то есть это вроде инжект или как это называется и как это сделать, может есть какие-то материалы на эту тему, заранее спасибо. И да, всё на джаве
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.06.2021, 04:11
Ответы с готовыми решениями:

Инжект более узкого скоупа в широкий
Всем привет. Имеем синглтон: @Singleton @LocalBean @Lock(LockType.READ) public class Requester { }

Инжект dll
Хотелось бы увидеть простенькие примеры, статьи и другой обучающий материал на эту тему. Интересует как можно в dll добавить какой либо d3d...

Инжект из ресурсов
Инжект dll прямо из ресурсов в процесс возможен? Хотелось бы услышать "да","нет", но и подробнее об этом, если возможно, то поделиться...

7
226 / 184 / 80
Регистрация: 13.04.2014
Сообщений: 694
17.06.2021, 11:40
из другой программы на java нет

можно в той же самой добавлять новые классы и удалять старые (ну придется classloader выгружать вместе со всеми классами в нем)

или воспользоваться runtime кодогенерацией например вот
https://bytebuddy.net/
этим не пользовался сам, только читал
0
11 / 10 / 5
Регистрация: 25.07.2020
Сообщений: 302
18.06.2021, 22:30  [ТС]
asdzxc, Спасибо за ответ, а где можно подробнее узнать про то как это сделать через classloader, нигде не могу найти того что надо мне
0
Модератор
Эксперт Java
 Аватар для alecss131
2835 / 1344 / 403
Регистрация: 11.08.2017
Сообщений: 4,297
Записей в блоге: 2
18.06.2021, 22:40
Цитата Сообщение от asdzxc Посмотреть сообщение
из другой программы на java нет
вот менять классы можно, про загрузку не знаю, сам менял (только сильно не вникал, заменял методы на свои), в джаве для этого есть встроенные средства, только нужны знания того как работает байткод, так как идет манипуляция с ним пусть и в рантайме
0
226 / 184 / 80
Регистрация: 13.04.2014
Сообщений: 694
19.06.2021, 13:12
Цитата Сообщение от Jorka Посмотреть сообщение
asdzxc, Спасибо за ответ, а где можно подробнее узнать про то как это сделать через classloader, нигде не могу найти того что надо мне
тут побыстрому пример накидал
https://github.com/shaykemelov/dynamic-logic

вот так можно посмотреть как работать будет

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
### Добавляем модуль. Модуль это что-то общее для скриптов
POST http://localhost:8080/module_sources
Content-Type: application/json
 
{
  "code": "Math",
  "source": "package ru.cyberforum public class Math { public int sum(int a, int b) { return a + b; } }"
}
 
### Проверим, какие модули есть
GET http://localhost:8080/module_sources
Content-Type: application/json
 
### Скомпилируем модули
GET http://localhost:8080/modules/reload
Content-Type: application/json
 
 
### Добавим скрипт, который потом выполним
POST http://localhost:8080/script_sources
Content-Type: application/json
 
{
  "code": "test",
  "source": "import ru.cyberforum.Math; def math = new Math(); math.sum(1, 3)"
}
 
### Проверим, что скрипт добавился
GET http://localhost:8080/script_sources
Content-Type: application/json
 
### Выполним скрипт
GET http://localhost:8080/scripts/run/test?args=
Content-Type: application/json
Добавлено через 29 секунд
Цитата Сообщение от alecss131 Посмотреть сообщение
вот менять классы можно
а можно мне показать как это?
1
Модератор
Эксперт Java
 Аватар для alecss131
2835 / 1344 / 403
Регистрация: 11.08.2017
Сообщений: 4,297
Записей в блоге: 2
19.06.2021, 14:02
Цитата Сообщение от asdzxc Посмотреть сообщение
а можно мне показать как это?
подробно расписывать не буду, напишу в общих чертах. Есть такая библиотека https://mvnrepository.com/arti... m/asm-tree и метод
Java
1
public static void premain(String args, Instrumentation inst) {}
который является аналогом всем известного метода main, только который (как можно догадаться из названия) выполняется до него. Все это упаковывается в jar файл с указанием в манифесте класса с этим методом в Premain-Class. Потом полученный джарник добавляется к нужному приложению в параметре jvm -javaagent:
А вот как именно менять классы и методы надо знать как работает байткод и уметь пользоваться библиотекой.
2
226 / 184 / 80
Регистрация: 13.04.2014
Сообщений: 694
19.06.2021, 21:44
Jorka, тебе в итоге подходит такой вариант?
0
11 / 10 / 5
Регистрация: 25.07.2020
Сообщений: 302
20.06.2021, 09:40  [ТС]
asdzxc, да, нашёл что надо, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.06.2021, 09:40
Помогаю со студенческими работами здесь

Инжект кода
Здраствуйте... Пишу простый инжектор кода в процесс(win32). Использую CreateRemoteThread. Внедряю код функции которая должна...

Инжект в окно
Тут вот копался в исходах и нарыл у себя инжектор .dll но только инжект в процесс, а как можно намутить инжект в Window, из Windows list ...

инжект кода
как можно проинжектится в процесс получив при этом системный статус?

Инжект без dll
В общем рассказал мне препод способ как он делал инжект без динамической библиотеки и даже показывал его в деле. И я вроде как даже вдел...

Инжект байтов в браузер
Здравствуйте! Можете помочь пожалуйста, так как я в разработке приложений C# новичёк, направьте меня в нужное русло или если есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru