Obtaining a .jar from a .exe



我目前正在处理的是一个包含可执行.jar的Windows.exe。我尝试通过各种.exe运行它,并.jar反编译器无济于事。我的问题是,我将如何获得.jar在被淘汰进入.exe之前的状态?

请注意,我不是要把程序从C++或C#转换为java,而是将打包到.exe中的.jar重新转换为原始.jar。

在不知道它如何打包到 exe 中的任何信息的情况下,一种方法是替换 rt 中的核心ClassLoader.jar并在其 defineClass 方法中将数据写入文件。这样,每当加载类时,它们都会被写入相应的文件。

请注意,这是一个黑客,有很多陷阱。仅举一例,它不会在 jar 文件中包含其他数据,例如资源。您最好的选择是找出它是如何包装的,就像@HovercraftFullOfEels提到的那样。

OpenJDK java.lang.ClassLoader source

最新更新