Восстановить Jar из запущенного приложения - PullRequest
2 голосов
/ 12 марта 2020

Контекст: у меня запущено приложение Maven, но я удалил каталог, в котором оно работает, вместе со всем кодом.

Вопрос: Можно ли где-нибудь найти работающий .jar? Я знаю, что если я это сделаю, я могу запустить его через декомпилятор и вернуть свой код.

Редактировать: Больше контекста. Я запустил приложение. Затем во время работы приложения весь каталог был удален. Команда для запуска была ./mvnw spring-boot: run, поэтому я не могу найти пакет в репозитории maven.

1 Ответ

1 голос
/ 12 марта 2020

Я не уверен насчет файла jar. Однако отдельные классы запущенного приложения можно восстановить.

Я считаю, что есть несколько вариантов.

Вы можете вывести всю память процесса и использовать инструменты для анализа его содержимого.

Вы также можете написать агент Java для извлечения классов из запущенного экземпляра JVM.

Или вы можете использовать такие инструменты, как https://github.com/frontfact/jvminspector, чтобы просматривать загруженные классы и сохранять их вручную.

Как только вы восстановите классы, сборка их в банку становится тривиальной.

См. Также: https://reverseengineering.stackexchange.com/questions/14675/extracting-classes-from-running-jvm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...