我只是被包含大部分数据的勒索软件所打击。它是目前未知的勒索软件之一,我没有备份副本。
重点是,我正在使用Eclipse运行Java应用程序,这需要花费几天的时间。勒索软件在“ src”和“ bin”文件夹中都刻有.java文件和.class文件,但是Java应用程序仍然运行良好,因此Java虚拟机似乎可能具有二进制文件的本地副本。您是否知道有某种方法可以从运行的JVM中获取.class文件?然后,我将其反编译以检索我的原始源文件。
非常感谢您!
编辑:非常感谢大家。我检索了.class文件,然后可以将其反编译为非常合理的.java文件。
@valiano的解决方案有效。请注意,jvminspector假定您的类不在默认程序包中,否则DumpAgent.java的第67行会产生异常(当lastIndexOf返回-1时,需要对代码进行少量更改才能恢复)。
@StephaneM的解决方案有时可以工作,但是在某些情况下,运行classdumper.jar会使Eclipse由于EXCEPTION_ACCESS_VIOLATION而终止进程。
我还发现了另外两个解决方案:
a)一个类似的项目,名为dumpclass(https://github.com/hengyunabc/dumpclass)
b)sun.jvm.hotspot.tools.jcore.ClassDump类。使用示例:java -cp“ C:\ Program Files \ Java \ jdk1.8.0_131 \ lib \ sa-jdi.jar” -Dsun.jvm.hotspot.tools.jcore.filter = sun.jvm.hotspot.tools。 jcore.PackageNameFilter -Dsun.jvm.hotspot.tools.jcore.PackageNameFilter.pkgList = sun.jvm.hotspot.tools.jcore.ClassDump