0

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

请注意,我不是试图将程序从 C++ 或 C# 转换为 java,而是将 .jar 打包成 .exe 转换回原始 .jar。

4

1 回答 1

0

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

请注意,这是一个 hack,并且有很多陷阱。举个例子,它不会在 jar 文件中包含其他数据,例如资源。你最好的办法是找出它是如何像@HovercraftFullOfEels 提到的那样打包的。

OpenJDK java.lang.ClassLoader源码

于 2012-10-06T00:47:29.327 回答