【问题标题】:Recover Jar from Running Application从正在运行的应用程序中恢复 Jar
【发布时间】:2020-06-24 13:47:38
【问题描述】:

上下文:我有一个 Maven 应用程序正在运行,但已经删除了它正在运行的目录以及所有代码。

问题:是否可以在某处找到正在运行的 .jar?我知道如果我这样做了,我可以通过反编译器运行它并取回我的代码。

编辑:更多上下文。我运行了应用程序。然后,当应用程序运行时,整个目录被删除。运行的命令是 ./mvnw spring-boot:run,所以我在 maven 存储库中找不到包。

【问题讨论】:

  • 您正在运行已删除的 jar 文件?
  • ps -ef 显示什么?
  • 如果您使用mvn install 构建应用程序,您可以在您的maven 本地存储库中检索该jar。
  • 通常在.m2/repository下的用户目录中查找
  • 那你可能从来没跑过mvn install

标签: java linux bash maven jar


【解决方案1】:

我不确定 jar 文件。但是,正在运行的应用程序的各个类别是可恢复的。

我认为选择不多。

您可以转储整个进程内存并使用工具分析其内容。

您还可以编写一个 Java 代理来从正在运行的 JVM 实例中提取类。

或者您可以使用https://github.com/frontfact/jvminspector 之类的工具来浏览加载的类并手动保存它们。

一旦你恢复了类,将它们组装到一个 jar 中是微不足道的。

另见:https://reverseengineering.stackexchange.com/questions/14675/extracting-classes-from-running-jvm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 2012-08-03
    • 2021-11-10
    相关资源
    最近更新 更多